|
|
@@ -0,0 +1,57 @@
|
|
|
+# DataX hdfs-export 集成测试
|
|
|
+
|
|
|
+端到端验证 Hive `test.raw_usr_app_user_cert_info_inc_d`(dt=20260422 分区)→ PG `test.ads_usr_app_user_cert_info_export` 回写。
|
|
|
+
|
|
|
+闭环:先前 hive-import 冒烟把 PG `public.app_user_cert_info` 同步到 Hive raw 分区;本冒烟再把 Hive raw 分区数据回写到 PG 另一张表,验证 `datax-hdfs-export-starter` 端到端。
|
|
|
+
|
|
|
+## 前置条件
|
|
|
+
|
|
|
+- hive-import 冒烟已通过,Hive `test.raw_usr_app_user_cert_info_inc_d` 表 `dt=20260422` 分区里有数据
|
|
|
+- PG `dev-poyee-xiaoxu` 实例对 `hs_sync_data` 库 `test` schema 有**写权限**
|
|
|
+- 项目代码 + `datasource/` + `/opt/datax` 同步到 cdhmaster02 / cdhnode01-03
|
|
|
+- bigdata 用户、发布目录下执行(`-random` 生效所需)
|
|
|
+
|
|
|
+## 执行步骤
|
|
|
+
|
|
|
+1. 在 PG 执行 `ddl/pg_target.sql` 建目标表(含 `CREATE SCHEMA IF NOT EXISTS test` + 建表)
|
|
|
+2. 跑 DataX:
|
|
|
+
|
|
|
+ ```bash
|
|
|
+ bin/datax-hdfs-export-starter.sh \
|
|
|
+ -ini tests/integration/datax/hdfs_export/export_user_cert_info.ini \
|
|
|
+ -start-date 20260422 -stop-date 20260423 \
|
|
|
+ -random
|
|
|
+ ```
|
|
|
+
|
|
|
+ (start-date 用作 hdfsreader 的 `${dt}` 占位符替换,读 Hive 分区 `dt=20260422`)
|
|
|
+
|
|
|
+## 预期
|
|
|
+
|
|
|
+- PG `test.ads_usr_app_user_cert_info_export` 表被 `TRUNCATE` 后插入数据
|
|
|
+- 行数 = Hive `test.raw_usr_app_user_cert_info_inc_d` 的 `dt=20260422` 分区行数
|
|
|
+- `cert_birthday` 字段值形如 `"1990-05"`(Hive raw 层已脱敏到月)
|
|
|
+- 不存在 `user_cert_data` / `cert_no` / `cert_real_name` 三个敏感字段(原本就没同步进 Hive)
|
|
|
+
|
|
|
+## 验证 SQL
|
|
|
+
|
|
|
+PG 侧:
|
|
|
+
|
|
|
+```sql
|
|
|
+SELECT COUNT(*) FROM test.ads_usr_app_user_cert_info_export;
|
|
|
+SELECT id, user_id, cert_birthday, create_time
|
|
|
+FROM test.ads_usr_app_user_cert_info_export
|
|
|
+LIMIT 5;
|
|
|
+```
|
|
|
+
|
|
|
+Hive 侧对比:
|
|
|
+
|
|
|
+```sql
|
|
|
+SELECT COUNT(*) FROM test.raw_usr_app_user_cert_info_inc_d WHERE dt='20260422';
|
|
|
+```
|
|
|
+
|
|
|
+两边 COUNT 一致 = 冒烟通过。
|
|
|
+
|
|
|
+## 相关文件
|
|
|
+
|
|
|
+- `ddl/pg_target.sql`:PG 目标表建表 SQL
|
|
|
+- `export_user_cert_info.ini`:DataX ini
|