init: 项目初始提交 - NeoZQYY Monorepo 完整代码
This commit is contained in:
107
db/scripts/migrate_test_data.sql
Normal file
107
db/scripts/migrate_test_data.sql
Normal file
@@ -0,0 +1,107 @@
|
||||
-- =============================================================================
|
||||
-- 从 LLZQ-test 迁移测试数据到新结构
|
||||
-- 源数据库:LLZQ-test(旧测试库,包含 billiards_ods/billiards_dwd/billiards_dws/etl_admin)
|
||||
-- 目标数据库:test_etl_feiqiu(新六层 schema)+ test_zqyy_app(业务应用库)
|
||||
--
|
||||
-- 前置条件:
|
||||
-- 1. 已执行 db/etl_feiqiu/scripts/create_test_db.sql 创建 test_etl_feiqiu
|
||||
-- 2. 已执行 db/zqyy_app/scripts/create_test_db.sql 创建 test_zqyy_app
|
||||
-- 3. 当前用户对 LLZQ-test 有 SELECT 权限,对目标库有 INSERT 权限
|
||||
--
|
||||
-- 执行方式:
|
||||
-- psql -h <host> -U <user> -f migrate_test_data.sql
|
||||
--
|
||||
-- 注意:需要根据实际表映射关系调整,以下为参考模板
|
||||
-- =============================================================================
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 第一部分:etl_admin → meta(调度/游标/运行记录)
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- 迁移运行记录
|
||||
INSERT INTO test_etl_feiqiu.meta.etl_run_log
|
||||
SELECT * FROM dblink(
|
||||
'dbname=LLZQ-test',
|
||||
'SELECT * FROM etl_admin.etl_run_log'
|
||||
) AS t(
|
||||
-- 根据 meta.sql 中 etl_run_log 的实际列定义填充
|
||||
-- 示例:run_id bigint, task_code text, started_at timestamptz, ...
|
||||
);
|
||||
|
||||
-- 迁移游标状态
|
||||
INSERT INTO test_etl_feiqiu.meta.etl_cursor_state
|
||||
SELECT * FROM dblink(
|
||||
'dbname=LLZQ-test',
|
||||
'SELECT * FROM etl_admin.etl_cursor_state'
|
||||
) AS t(
|
||||
-- 根据 meta.sql 中 etl_cursor_state 的实际列定义填充
|
||||
);
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 第二部分:billiards_ods → ods(ODS 原始数据)
|
||||
-- schema 名从 billiards_ods 改为 ods,表结构不变
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- 会员档案
|
||||
INSERT INTO test_etl_feiqiu.ods.member_profiles
|
||||
SELECT * FROM dblink(
|
||||
'dbname=LLZQ-test',
|
||||
'SELECT * FROM billiards_ods.member_profiles'
|
||||
) AS t(
|
||||
-- 根据 ods.sql 中 member_profiles 的实际列定义填充
|
||||
);
|
||||
|
||||
-- 会员余额变动
|
||||
INSERT INTO test_etl_feiqiu.ods.member_balance_changes
|
||||
SELECT * FROM dblink(
|
||||
'dbname=LLZQ-test',
|
||||
'SELECT * FROM billiards_ods.member_balance_changes'
|
||||
) AS t(
|
||||
-- 根据 ods.sql 中 member_balance_changes 的实际列定义填充
|
||||
);
|
||||
|
||||
-- ... 对 ods schema 中的每张表重复上述模式 ...
|
||||
-- 完整表清单参见 db/etl_feiqiu/schemas/ods.sql 中的 CREATE TABLE 语句
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 第三部分:billiards_dwd → dwd(DWD 明细数据)
|
||||
-- schema 名从 billiards_dwd 改为 dwd,保留 main+EX 拆分
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- ... 对 dwd schema 中的每张表执行类似迁移 ...
|
||||
-- 完整表清单参见 db/etl_feiqiu/schemas/dwd.sql 中的 CREATE TABLE 语句
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 第四部分:billiards_dws → dws(DWS 汇总数据)
|
||||
-- schema 名从 billiards_dws 改为 dws,表结构不变
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- ... 对 dws schema 中的每张表执行类似迁移 ...
|
||||
-- 完整表清单参见 db/etl_feiqiu/schemas/dws.sql 中的 CREATE TABLE 语句
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 第五部分:core schema(新增层,无历史数据可迁移)
|
||||
-- core 层为新增的统一最小字段集层,需从 dwd 数据重新生成
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- 如需填充 core 层测试数据,可从已迁移的 dwd 数据中提取:
|
||||
-- INSERT INTO test_etl_feiqiu.core.dim_member (member_id, name, mobile, status, site_id)
|
||||
-- SELECT member_id, name, mobile, status, site_id
|
||||
-- FROM test_etl_feiqiu.dwd.dim_member_main;
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 第六部分:app schema(视图层,无需迁移数据)
|
||||
-- app 层仅包含视图和 RLS 策略,数据来自底层 schema
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- 无需数据迁移,视图会自动引用底层表数据
|
||||
|
||||
-- ---------------------------------------------------------------------------
|
||||
-- 迁移完成后验证
|
||||
-- ---------------------------------------------------------------------------
|
||||
|
||||
-- 验证各 schema 表行数是否与源库一致
|
||||
-- SELECT schemaname, relname, n_live_tup
|
||||
-- FROM pg_stat_user_tables
|
||||
-- WHERE schemaname IN ('meta', 'ods', 'dwd', 'dws', 'core')
|
||||
-- ORDER BY schemaname, relname;
|
||||
Reference in New Issue
Block a user