| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- -- 创作知识 · 过程库建表 DDL
- -- 目标实例:open_aigc(阿里云 AnalyticDB for PostgreSQL / Greenplum 7.0.0,PG12 内核,新加坡)
- -- 连接:OPEN_AIGC_PG_*(用户 aiddit_aigc 已确认有 CREATE 权限)
- --
- -- Greenplum 注意事项:
- -- 1. 每张表需 DISTRIBUTED BY;主键/唯一键必须包含分布列。
- -- 2. 不依赖外键强约束(Greenplum 不强制 FK),post_id ↔ ck_post.id 的关系由应用维护。
- -- 3. updated_at 由应用在更新时写入(不用触发器,保持简单)。
- -- 4. 本实例无 pgvector;embedding 一期不做,需要时另议(非 pgvector 路线)。
- CREATE SCHEMA IF NOT EXISTS creation_knowledge;
- SET search_path TO creation_knowledge;
- -- 每帖一行:各环节产物存 JSONB,stage 记录处理到哪一步
- CREATE TABLE IF NOT EXISTS ck_post (
- id text NOT NULL, -- xhs_/dy_/ks_/bili_<content_id>,同帖唯一,复用为 ingest source.id
- platform text, -- xiaohongshu/douyin/kuaishou/bilibili
- url text, -- 原始链接
- raw jsonb, -- fetch_post_detail 原始响应
- cards jsonb, -- 统一卡片列表 [{index,kind,url,timestamp,start,end}](图/帧/段)
- extracted jsonb, -- extract_content 多模态产物
- screening jsonb, -- screen_post 结果 {passed,score,reason}
- stage text NOT NULL DEFAULT 'fetched', -- fetched/extracted/screened/split/done/rejected/failed/skipped
- created_at timestamptz NOT NULL DEFAULT now(),
- updated_at timestamptz NOT NULL DEFAULT now(),
- PRIMARY KEY (id)
- ) DISTRIBUTED BY (id);
- CREATE INDEX IF NOT EXISTS idx_ck_post_stage ON ck_post (stage);
- CREATE INDEX IF NOT EXISTS idx_ck_post_platform ON ck_post (platform);
- -- 每条知识片段一行:拆分+解构产物,以及组装好的 ingest payload(开发期的最终落点)
- CREATE TABLE IF NOT EXISTS ck_knowledge_item (
- id bigserial, -- 片段自增 ID
- post_id text NOT NULL, -- → ck_post.id(同帖多片段复用同一 source)
- item jsonb, -- 拆分结果 title/knowledge_types/what/why/how/evidence
- deconstruction jsonb, -- 解构结果 stages/scopes/reason
- ingest_payload jsonb, -- 组装后的 ingest 请求体(开发期最终产物)
- ingest_status text NOT NULL DEFAULT 'pending', -- pending(未发送) / ingested / failed
- knowledge_id text, -- ingest API 返回的知识 ID(上线后才有)
- created_at timestamptz NOT NULL DEFAULT now(),
- updated_at timestamptz NOT NULL DEFAULT now(),
- PRIMARY KEY (id)
- ) DISTRIBUTED BY (id);
- CREATE INDEX IF NOT EXISTS idx_ck_item_post ON ck_knowledge_item (post_id);
- CREATE INDEX IF NOT EXISTS idx_ck_item_status ON ck_knowledge_item (ingest_status);
- -- 迁移(表已存在时补列,幂等):卡片溯源
- ALTER TABLE ck_post ADD COLUMN IF NOT EXISTS cards jsonb;
- -- 回滚:DROP SCHEMA creation_knowledge CASCADE;
|