|
@@ -198,12 +198,13 @@ L3 SparkSQL(...) 显式传参 + extra_spark_config + 命令行 -sc
|
|
|
|
|
|
|
|
**高优先级**(正式 raw 库上线前需要):
|
|
**高优先级**(正式 raw 库上线前需要):
|
|
|
|
|
|
|
|
-- **DataX 字段级变换(raw 层脱敏)**:支持 ini 里声明列变换规则(如 `cert_birthday` 脱敏到月、身份证号哈希、手机号掩码等),满足公司"敏感字段不出业务库"合规要求。当前项目只支持字段筛选(`column` 不列就不查),不支持字段值转换。候选方案:(a) ini 里用 `querySql` 写 SQL 表达式(技术上已支持但耦合业务逻辑进 ini)、(b) 扩展 reader plugin 支持声明式 `transform =` 配置(项目原生、不依赖 DataX 框架)、(c) 引入 DataX 原生 transformer 机制(`job.content[].transformer` 节点)
|
|
|
|
|
|
|
+- **DataX 字段级脱敏(合规硬约束:敏感值必须不出业务库)**:规范做法 = ini 里 `querySql` 写 SQL 表达式(如 `TO_CHAR(cert_birthday, 'YYYY-MM')`),PG 端执行后返回已脱敏值,敏感原值从未离开业务库。当前已生产可用,`tests/integration/datax/hive_import/app_user_cert_info.ini` 就是该模式。痛点:`querySql` 把列名、WHERE、脱敏规则揉一起,可读性差;改造见低优先级"ini 配置化脱敏"项。**不走** DataX 层 transformer / reader `transform =` 方案——这些路径是原值先进 DataX JVM 再变换,等同"已出业务库再脱",合规退步,本项目不采纳
|
|
|
|
|
|
|
|
**低优先级**(有明确批量回刷场景再做):
|
|
**低优先级**(有明确批量回刷场景再做):
|
|
|
|
|
|
|
|
- 日期范围自动按日展开 + N 个 json 分发多 worker(`-start-date 20260401 -stop-date 20260410` → 自动切 10 份 json,每份独立选 worker)
|
|
- 日期范围自动按日展开 + N 个 json 分发多 worker(`-start-date 20260401 -stop-date 20260410` → 自动切 10 份 json,每份独立选 worker)
|
|
|
- **`plugin_factory` 解耦**:当前工厂模块顶层 eager import 所有 reader/writer(mysql/pg/mongo/hdfs/es/kafka/hbase/ch/...),任一 plugin 的 top-level import 破损就连累整个 DataX 链路(2026-04-23 已踩:`dw_base/database/` 删除后 `mysql_reader` 的 `MySQLColumn` import 挂,挂一扯一串)。改造方向二选一:(a) lazy import:`importlib.import_module(f"dw_base.datax.plugins.reader.{db_type}_reader")` 按需加载;(b) registry pattern:每个 reader 用 `@register("postgresql")` 装饰器自注册,工厂解耦于具体 plugin 列表
|
|
- **`plugin_factory` 解耦**:当前工厂模块顶层 eager import 所有 reader/writer(mysql/pg/mongo/hdfs/es/kafka/hbase/ch/...),任一 plugin 的 top-level import 破损就连累整个 DataX 链路(2026-04-23 已踩:`dw_base/database/` 删除后 `mysql_reader` 的 `MySQLColumn` import 挂,挂一扯一串)。改造方向二选一:(a) lazy import:`importlib.import_module(f"dw_base.datax.plugins.reader.{db_type}_reader")` 按需加载;(b) registry pattern:每个 reader 用 `@register("postgresql")` 装饰器自注册,工厂解耦于具体 plugin 列表
|
|
|
|
|
+- **ini 配置化脱敏(querySql 自动生成)**:ini 层加声明式 `[mask]` 段(`cert_birthday = month_trunc` / `phone = mask_middle` / `id_card = md5` 等),代码侧把声明翻译为 PG `querySql` 里的 SQL 表达式下发,仍走高优先级那条的"PG 端完成脱敏"合规路径(敏感不出库约束不变),开发者免手写冗长 querySql。解决现有 querySql 模式的可读性痛点
|
|
|
|
|
|
|
|
**第三条命令 `datax-gc-generator`(ini 元生成器)独立保留**:用户已确认。职责是"从 PG 扫 schema 生成 ini 参考模板",和"执行 ini"不是一回事,不收口到上面两条里。详见 §2.7。
|
|
**第三条命令 `datax-gc-generator`(ini 元生成器)独立保留**:用户已确认。职责是"从 PG 扫 schema 生成 ini 参考模板",和"执行 ini"不是一回事,不收口到上面两条里。详见 §2.7。
|
|
|
|
|
|