|
@@ -288,15 +288,22 @@ python datax.py generated.json (DataX 框架执行数据同步)
|
|
|
|
|
|
|
|
**HDFS 数据检查**(`check_data_exists()`):当 JSON 配置路径包含 `hdfs-` 时,会自动检查 HDFS reader 路径是否存在且有数据,无数据则跳过执行。
|
|
**HDFS 数据检查**(`check_data_exists()`):当 JSON 配置路径包含 `hdfs-` 时,会自动检查 HDFS reader 路径是否存在且有数据,无数据则跳过执行。
|
|
|
|
|
|
|
|
-**示例**:
|
|
|
|
|
|
|
+**示例**(目标态,用 `-env` 切环境;命名见 `21-命名规范.md` §3.9):
|
|
|
```bash
|
|
```bash
|
|
|
-# 使用 ini 配置(自动生成 JSON 后执行)
|
|
|
|
|
-bin/datax-single-job-starter.sh -gc conf/datax/config/mysql-hdfs/prod/mysql-hdfs-hobby-orders.ini -start-date 20260415
|
|
|
|
|
|
|
+# 采集任务(raw 层 ini)
|
|
|
|
|
+bin/datax-single-job-starter.sh -gc jobs/raw/trd/raw_trd_order_pay_inc_d.ini -start-date 20260415 -env prod
|
|
|
|
|
+
|
|
|
|
|
+# 导出任务(ads 层 ini)
|
|
|
|
|
+bin/datax-single-job-starter.sh -gc jobs/ads/trd/ads_trd_gmv_d_export.ini -start-date 20260415 -env prod
|
|
|
|
|
|
|
|
-# 使用已生成的 JSON(跳过生成步骤)
|
|
|
|
|
-bin/datax-single-job-starter.sh -c /abs/path/to/generated.json -start-date 20260415
|
|
|
|
|
|
|
+# 使用已生成的 JSON(跳过生成,env 已嵌入 JSON)
|
|
|
|
|
+bin/datax-single-job-starter.sh -c /abs/path/to/generated.json
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+> **待重构项**(见 `90-重构路线.md` §2.1 DataX 条目):
|
|
|
|
|
+> - `-env` 参数目前**尚未实现**,现阶段切环境靠改 `datasource/` 下的实际文件或 `conf/env.sh`(待新建)
|
|
|
|
|
+> - `bin/` 下几个 DataX 启动脚本 / 生成器里还残留 `conf/datax/config/` 前缀剥离逻辑(老项目遗留;该目录已迁至 `conf/bak/` 并忽略入库),新项目 ini 放在 `jobs/raw/` / `jobs/ads/` / `manual/`,这段逻辑要清理掉
|
|
|
|
|
+
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
#### 4.3.2 `datax-multiple-job-starter.sh` —— 通用批量启动
|
|
#### 4.3.2 `datax-multiple-job-starter.sh` —— 通用批量启动
|
|
@@ -324,30 +331,32 @@ bin/datax-single-job-starter.sh -c /abs/path/to/generated.json -start-date 20260
|
|
|
|
|
|
|
|
**日志路径**:`${LOG_ROOT_DIR}/datax/${src-dst}/${project_layer_env}/${START_DATE}/${START_DATE}-${JOB_NAME}.log`
|
|
**日志路径**:`${LOG_ROOT_DIR}/datax/${src-dst}/${project_layer_env}/${START_DATE}/${START_DATE}-${JOB_NAME}.log`
|
|
|
|
|
|
|
|
-**示例**:
|
|
|
|
|
|
|
+**示例**(目标态):
|
|
|
```bash
|
|
```bash
|
|
|
-# 批量执行整个目录下的 ini 配置
|
|
|
|
|
-bin/datax-multiple-job-starter.sh -gcd conf/datax/config/mysql-hdfs/prod -start-date 20260415 -parallel
|
|
|
|
|
|
|
+# 批量执行整个业务域下的 raw 采集 ini
|
|
|
|
|
+bin/datax-multiple-job-starter.sh -gcd jobs/raw/trd -start-date 20260415 -env prod -parallel
|
|
|
|
|
|
|
|
# 指定多个 ini 文件串行执行
|
|
# 指定多个 ini 文件串行执行
|
|
|
bin/datax-multiple-job-starter.sh \
|
|
bin/datax-multiple-job-starter.sh \
|
|
|
- -gc conf/datax/config/mysql-hdfs/prod/mysql-hdfs-hobby-orders.ini \
|
|
|
|
|
- -gc conf/datax/config/mysql-hdfs/prod/mysql-hdfs-hobby-users.ini \
|
|
|
|
|
- -start-date 20260415
|
|
|
|
|
|
|
+ -gc jobs/raw/trd/raw_trd_order_pay_inc_d.ini \
|
|
|
|
|
+ -gc jobs/raw/usr/raw_usr_user_info_inc_d.ini \
|
|
|
|
|
+ -start-date 20260415 -env prod
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
---
|
|
---
|
|
|
|
|
|
|
|
-#### 4.3.3 `datax-multiple-hive-job-starter.sh` —— MySQL→Hive 专用批量启动
|
|
|
|
|
|
|
+#### 4.3.3 `datax-multiple-hive-job-starter.sh` —— 带 Hive 分区自动管理的批量启动
|
|
|
|
|
|
|
|
-**用途**:在 `datax-multiple-job-starter.sh` 之上封装了 **Hive 分区自动管理**。MySQL→Hive 采集场景的推荐入口。
|
|
|
|
|
|
|
+**用途**:在 `datax-multiple-job-starter.sh` 之上封装了 **Hive 分区自动管理**。任何写入 Hive 分区表的 DataX 同步作业(不限于 MySQL→Hive)都可以用它,脚本头注释里"MySQL-Hive 作业"只是历史命名。**日常采集作业的主力入口**。
|
|
|
|
|
|
|
|
**与 multiple-job-starter 的区别**:
|
|
**与 multiple-job-starter 的区别**:
|
|
|
-1. 自动从 ini 配置中解析 Hive 表名和分区路径(`parse_ddl()` 函数)
|
|
|
|
|
|
|
+1. 自动从 ini 配置中解析 Hive 表名和分区路径(`parse_ddl()` 函数,`grep "path =" <ini>`)
|
|
|
2. 在执行 DataX 前自动执行 `ALTER TABLE ... ADD IF NOT EXISTS PARTITION(dt=...)`
|
|
2. 在执行 DataX 前自动执行 `ALTER TABLE ... ADD IF NOT EXISTS PARTITION(dt=...)`
|
|
|
3. 支持在脚本内硬编码配置列表(`partitioned_tables`、`generator_config_array` 等数组),适合固定调度场景
|
|
3. 支持在脚本内硬编码配置列表(`partitioned_tables`、`generator_config_array` 等数组),适合固定调度场景
|
|
|
4. 支持 `--override` 参数临时覆盖脚本内硬编码配置
|
|
4. 支持 `--override` 参数临时覆盖脚本内硬编码配置
|
|
|
|
|
|
|
|
|
|
+> **自动建分区只对 ini 输入生效**:`parse_ddl()` 读的是 ini 里的 `path = ...` 行。如果走 `-jc` / `-jcd` 传已生成的 JSON,脚本没有 ini 可解析,自动建分区**不触发**,此时要么改用 `-t db.table` 显式声明分区、要么把分区记录在脚本内 `partitioned_tables` 数组。
|
|
|
|
|
+
|
|
|
**额外参数**:
|
|
**额外参数**:
|
|
|
|
|
|
|
|
| 参数 | 说明 |
|
|
| 参数 | 说明 |
|
|
@@ -364,17 +373,17 @@ bin/datax-multiple-job-starter.sh \
|
|
|
2. 检查路径是否包含 `/dt=${dt}`(分区标识)
|
|
2. 检查路径是否包含 `/dt=${dt}`(分区标识)
|
|
|
3. 从 HDFS 路径中提取 `{db}.db/{table_name}` → 拼接 `ALTER TABLE {db}.{table} ADD IF NOT EXISTS PARTITION(dt={START_DATE})`
|
|
3. 从 HDFS 路径中提取 `{db}.db/{table_name}` → 拼接 `ALTER TABLE {db}.{table} ADD IF NOT EXISTS PARTITION(dt={START_DATE})`
|
|
|
|
|
|
|
|
-**示例**:
|
|
|
|
|
|
|
+**示例**(目标态):
|
|
|
```bash
|
|
```bash
|
|
|
-# 执行整个目录 + 自动建分区
|
|
|
|
|
|
|
+# 执行某业务域下所有 raw 采集 ini + 自动建 Hive 分区
|
|
|
bin/datax-multiple-hive-job-starter.sh \
|
|
bin/datax-multiple-hive-job-starter.sh \
|
|
|
- -gcd conf/datax/config/mysql-hdfs/prod \
|
|
|
|
|
- -start-date 20260415 -parallel
|
|
|
|
|
|
|
+ -gcd jobs/raw/trd \
|
|
|
|
|
+ -start-date 20260415 -env prod -parallel
|
|
|
|
|
|
|
|
-# 覆盖脚本内配置,只跑指定的失败任务
|
|
|
|
|
|
|
+# 覆盖脚本内硬编码配置,只跑指定的失败任务
|
|
|
bin/datax-multiple-hive-job-starter.sh --override \
|
|
bin/datax-multiple-hive-job-starter.sh --override \
|
|
|
- -gc conf/datax/config/mysql-hdfs/prod/mysql-hdfs-hobby-orders.ini \
|
|
|
|
|
- -start-date 20260415
|
|
|
|
|
|
|
+ -gc jobs/raw/trd/raw_trd_order_pay_inc_d.ini \
|
|
|
|
|
+ -start-date 20260415 -env prod
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
---
|
|
---
|
|
@@ -394,22 +403,21 @@ bin/datax-multiple-hive-job-starter.sh --override \
|
|
|
| `-stop-date` | 结束日期,默认今天 |
|
|
| `-stop-date` | 结束日期,默认今天 |
|
|
|
| `-o <dir>` | 输出目录(默认 `conf/datax/generated/`) |
|
|
| `-o <dir>` | 输出目录(默认 `conf/datax/generated/`) |
|
|
|
|
|
|
|
|
-**生成路径规则**:输出文件保持 ini 的目录层级,例如:
|
|
|
|
|
-```
|
|
|
|
|
-输入:conf/datax/config/mysql-hdfs/prod/mysql-hdfs-hobby-orders.ini
|
|
|
|
|
-输出:conf/datax/generated/mysql-hdfs/prod/mysql-hdfs-hobby-orders.json
|
|
|
|
|
-```
|
|
|
|
|
|
|
+**生成路径规则**(**当前脚本残留老逻辑,待清理**):脚本里仍保留 `temp = os.path.dirname(gcf).replace(project_root_dir, '').replace('conf/datax/config/', '').split('/')` 这段——老项目的 ini 放在 `conf/datax/config/{src-dst}/{env}/` 下,前缀剥离后能派生出 `src_dst` / `project_layer_env` 拼接输出路径。新项目 ini 已经不走这条路径(`conf/datax/config/` 整体挪到 `conf/bak/` 并 gitignore),但脚本里的 replace 语句仍在执行一次无效剥离,输出会落到 `conf/datax/generated/jobs/raw/trd/xxx.json`——能跑但路径形态不符合新约定。
|
|
|
|
|
|
|
|
-**示例**:
|
|
|
|
|
|
|
+重构目标:去掉路径前缀剥离逻辑,输出统一扁平为 `conf/datax/generated/{env}/{目标表名}.json`。登记为硬编码待重构项,见 `90-重构路线.md` §2.1。
|
|
|
|
|
+
|
|
|
|
|
+**示例**(目标态):
|
|
|
```bash
|
|
```bash
|
|
|
# 生成单个 ini 对应的 JSON
|
|
# 生成单个 ini 对应的 JSON
|
|
|
-python3 bin/datax-job-config-generator.py -c conf/datax/config/mysql-hdfs/prod/mysql-hdfs-hobby-orders.ini
|
|
|
|
|
|
|
+python3 bin/datax-job-config-generator.py -c jobs/raw/trd/raw_trd_order_pay_inc_d.ini -env prod
|
|
|
|
|
|
|
|
-# 批量生成整个目录(递归)
|
|
|
|
|
-python3 bin/datax-job-config-generator.py -d conf/datax/config/mysql-hdfs/prod -r
|
|
|
|
|
|
|
+# 批量生成某业务域下所有 ini(递归)
|
|
|
|
|
+python3 bin/datax-job-config-generator.py -d jobs/raw/trd -r -env prod
|
|
|
|
|
|
|
|
# 指定日期和输出路径
|
|
# 指定日期和输出路径
|
|
|
-python3 bin/datax-job-config-generator.py -c some.ini -start-date 20260415 -stop-date 20260416 -o /tmp/datax-out
|
|
|
|
|
|
|
+python3 bin/datax-job-config-generator.py -c jobs/raw/trd/raw_trd_order_pay_inc_d.ini \
|
|
|
|
|
+ -start-date 20260415 -stop-date 20260416 -env prod -o /tmp/datax-out
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
---
|
|
---
|
|
@@ -444,16 +452,16 @@ python3 bin/datax-job-config-generator.py -c some.ini -start-date 20260415 -stop
|
|
|
|
|
|
|
|
**示例**:
|
|
**示例**:
|
|
|
```bash
|
|
```bash
|
|
|
-# 为 MySQL 库中所有表生成 mysql→hdfs 的 ini 配置
|
|
|
|
|
|
|
+# 为 MySQL 库中所有表生成 mysql→hdfs 的 ini 配置,输出到 raw/trd 业务域
|
|
|
python3 bin/datax-gc-generator.py --from mysql --to hdfs \
|
|
python3 bin/datax-gc-generator.py --from mysql --to hdfs \
|
|
|
-h 10.0.0.1 -u reader -p xxx -D hobby_prod \
|
|
-h 10.0.0.1 -u reader -p xxx -D hobby_prod \
|
|
|
- --output conf/datax/config/mysql-hdfs/prod
|
|
|
|
|
|
|
+ --output jobs/raw/trd
|
|
|
|
|
|
|
|
# 只为指定表生成,排除临时表
|
|
# 只为指定表生成,排除临时表
|
|
|
python3 bin/datax-gc-generator.py --from mysql --to hdfs \
|
|
python3 bin/datax-gc-generator.py --from mysql --to hdfs \
|
|
|
-h 10.0.0.1 -u reader -p xxx -D hobby_prod \
|
|
-h 10.0.0.1 -u reader -p xxx -D hobby_prod \
|
|
|
-tr "^order" -er "^tmp_" \
|
|
-tr "^order" -er "^tmp_" \
|
|
|
- --output conf/datax/config/mysql-hdfs/prod
|
|
|
|
|
|
|
+ --output jobs/raw/trd
|
|
|
|
|
|
|
|
# 为 Hive 表生成 hdfs→elasticsearch 的 ini 配置
|
|
# 为 Hive 表生成 hdfs→elasticsearch 的 ini 配置
|
|
|
python3 bin/datax-gc-generator.py --from hdfs --to elasticsearch \
|
|
python3 bin/datax-gc-generator.py --from hdfs --to elasticsearch \
|
|
@@ -535,7 +543,7 @@ jobs/
|
|
|
|
|
|
|
|
| 配置类型 | 存放位置 | 是否入仓库 | 维护角色 |
|
|
| 配置类型 | 存放位置 | 是否入仓库 | 维护角色 |
|
|
|
|----------|---------|-----------|------|
|
|
|----------|---------|-----------|------|
|
|
|
-| 数据源连接(含账密) | `../datasource/{类型}/` | 否 | 运维 |
|
|
|
|
|
|
|
+| 数据源连接(含账密) | `../datasource/{db_type}/{env}/{instance}.ini` | 否 | 运维 |
|
|
|
| DataX 同步任务定义 | `jobs/raw/` (采集) 和 `jobs/ads/` (导出) | 是 | 开发 |
|
|
| DataX 同步任务定义 | `jobs/raw/` (采集) 和 `jobs/ads/` (导出) | 是 | 开发 |
|
|
|
| Spark 默认参数 | `conf/spark-defaults.yaml`(目标态) / `spark_sql.py` 构造函数(现状) | 是 | 开发 |
|
|
| Spark 默认参数 | `conf/spark-defaults.yaml`(目标态) / `spark_sql.py` 构造函数(现状) | 是 | 开发 |
|
|
|
| Spark 单作业覆盖 | 对应 `jobs/*.sql` 文件内 `SET spark.x.y=z` | 是 | 开发 |
|
|
| Spark 单作业覆盖 | 对应 `jobs/*.sql` 文件内 `SET spark.x.y=z` | 是 | 开发 |
|
|
@@ -569,10 +577,10 @@ userPassword = xxx
|
|
|
defaultFS = hdfs://nameservice1 # HDFS
|
|
defaultFS = hdfs://nameservice1 # HDFS
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-**同步任务定义(jobs/raw/*/*.ini):**
|
|
|
|
|
|
|
+**同步任务定义(jobs/raw/{domain}/{目标表名}.ini):**
|
|
|
```ini
|
|
```ini
|
|
|
[reader]
|
|
[reader]
|
|
|
-dataSource = pg-hobby-prod # 引用 datasource/pg/hobby-prod.ini
|
|
|
|
|
|
|
+dataSource = pg/hobby # 引用 datasource/pg/${env}/hobby.ini,${env} 运行时注入
|
|
|
dbName = xxx
|
|
dbName = xxx
|
|
|
schemaName = public
|
|
schemaName = public
|
|
|
tableName = orders
|
|
tableName = orders
|
|
@@ -581,7 +589,7 @@ columnType = col1:bigint,col2:date
|
|
|
where = update_time >= '${start_date}' AND update_time < '${stop_date}'
|
|
where = update_time >= '${start_date}' AND update_time < '${stop_date}'
|
|
|
|
|
|
|
|
[writer]
|
|
[writer]
|
|
|
-dataSource = hdfs-prod
|
|
|
|
|
|
|
+dataSource = hdfs/default # 引用 datasource/hdfs/${env}/default.ini
|
|
|
column = col1,col2,...
|
|
column = col1,col2,...
|
|
|
columnType = col1:bigint,col2:date
|
|
columnType = col1:bigint,col2:date
|
|
|
path = /user/hive/warehouse/raw.db/raw_trd_order_pay_inc_d/dt=${dt}
|
|
path = /user/hive/warehouse/raw.db/raw_trd_order_pay_inc_d/dt=${dt}
|
|
@@ -589,10 +597,79 @@ fileType = orc
|
|
|
writeMode = truncate
|
|
writeMode = truncate
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+**关键约定**:
|
|
|
|
|
+- `dataSource` 字段只写 `{db_type}/{instance}`,**不含环境**。环境由启动脚本的 `-env` 参数注入
|
|
|
|
|
+- 新项目推荐规范见 §6.4;老项目里 `dataSource = pg-hobby-prod` 这种把环境拼进字符串的写法是历史遗留,重构中统一改为上述新形式
|
|
|
|
|
+
|
|
|
**增量/全量区分:**
|
|
**增量/全量区分:**
|
|
|
- `dt=19700101` 或 `query={}` → 全量
|
|
- `dt=19700101` 或 `query={}` → 全量
|
|
|
- `query` 中含 `${start_date}`/`${stop_date}` → 增量
|
|
- `query` 中含 `${start_date}`/`${stop_date}` → 增量
|
|
|
|
|
|
|
|
|
|
+### 6.4 多环境机制与 env 注入
|
|
|
|
|
+
|
|
|
|
|
+**原则:业务代码一套,环境差异收敛在 `datasource/` 和 `conf/env.sh`,运行时注入。**
|
|
|
|
|
+
|
|
|
|
|
+**环境集合**:`dev` / `test` / `prod`(由运维在 `datasource/` 下分别维护一套实例配置)。
|
|
|
|
|
+
|
|
|
|
|
+**注入链路**:
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+启动脚本(-env prod)
|
|
|
|
|
+ │
|
|
|
|
|
+ ▼
|
|
|
|
|
+ini 里 dataSource = pg/hobby
|
|
|
|
|
+ │
|
|
|
|
|
+ │ 脚本拼接
|
|
|
|
|
+ ▼
|
|
|
|
|
+实际路径 datasource/pg/prod/hobby.ini
|
|
|
|
|
+ │
|
|
|
|
|
+ ▼
|
|
|
|
|
+DataX Reader/Writer 建立连接
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**env 判定优先级**(两级,不引入环境变量,避免污染 shell 历史和 CI 环境):
|
|
|
|
|
+
|
|
|
|
|
+| 级别 | 来源 | 用途 |
|
|
|
|
|
+|------|------|------|
|
|
|
|
|
+| L1(最高) | 命令行 `-env <name>` | 调试 / 跨环境临时切换 |
|
|
|
|
|
+| L2 | `conf/env.sh` 里的 `DW_ENV` 默认值 | **入仓库**的一份配置,由开发者维护。默认值通常锁死为 `dev`(服务本地调试方便)。DolphinScheduler / 生产脚本总是命令行显式挂 `-env prod` 覆盖。不做任何"按用户/目录"的自动派生 |
|
|
|
|
|
+
|
|
|
|
|
+**目录示例**:
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+datasource/ # 运维维护,不入仓库
|
|
|
|
|
+├── pg/
|
|
|
|
|
+│ ├── prod/
|
|
|
|
|
+│ │ ├── hobby.ini # 生产 PG 实例
|
|
|
|
|
+│ │ └── crm.ini
|
|
|
|
|
+│ ├── test/
|
|
|
|
|
+│ │ └── hobby.ini
|
|
|
|
|
+│ └── dev/
|
|
|
|
|
+│ └── hobby.ini
|
|
|
|
|
+├── mysql/
|
|
|
|
|
+│ ├── prod/
|
|
|
|
|
+│ └── dev/
|
|
|
|
|
+├── mongo/
|
|
|
|
|
+│ └── ...
|
|
|
|
|
+└── hdfs/
|
|
|
|
|
+ └── ...
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**执行示例**:
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# 跑生产环境
|
|
|
|
|
+bin/datax-multiple-hive-job-starter.sh -gcd jobs/raw/trd -start-date 20260415 -env prod -parallel
|
|
|
|
|
+
|
|
|
|
|
+# 本地调试(通常省略 -env,走 conf/env.sh 默认值 dev)
|
|
|
|
|
+bin/datax-single-job-starter.sh -gc jobs/raw/trd/raw_trd_order_pay_inc_d.ini -start-date 20260415
|
|
|
|
|
+
|
|
|
|
|
+# 跑测试环境(测试 Hive 集群 + 测试后端库 + 测试服务库都在 datasource/*/test/ 下)
|
|
|
|
|
+bin/datax-multiple-hive-job-starter.sh -gcd jobs/raw/trd -start-date 20260415 -env test -parallel
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**当前状态**:`-env` 参数、`conf/env.sh`、`datasource/` 的环境子目录**都尚未落地**,是目标态。改造清单见 `90-重构路线.md` §2.1。
|
|
|
|
|
+
|
|
|
## 7. 部署架构
|
|
## 7. 部署架构
|
|
|
|
|
|
|
|
```
|
|
```
|
|
@@ -918,7 +995,7 @@ jobs/ads/trd/
|
|
|
| `manual/ddl/` | `.sql` | `{目标表名}.sql`(首次) 或 `{yyyymmdd}_{表名}_{change}.sql`(ALTER) | DDL 唯一来源;首次建表用 `CREATE TABLE IF NOT EXISTS`,后续 ALTER 带日期前缀,执行后归档 |
|
|
| `manual/ddl/` | `.sql` | `{目标表名}.sql`(首次) 或 `{yyyymmdd}_{表名}_{change}.sql`(ALTER) | DDL 唯一来源;首次建表用 `CREATE TABLE IF NOT EXISTS`,后续 ALTER 带日期前缀,执行后归档 |
|
|
|
| `jobs/raw/{domain}/` | `.ini`(DataX)或 `.sql`(CSV 导入) | `{目标表名}.ini` 或 `{目标表名}.sql` | DataX 采集或 CSV 导入任务定义 |
|
|
| `jobs/raw/{domain}/` | `.ini`(DataX)或 `.sql`(CSV 导入) | `{目标表名}.ini` 或 `{目标表名}.sql` | DataX 采集或 CSV 导入任务定义 |
|
|
|
| `jobs/{ods\|dwd\|dws\|tdm}/{domain}/` | `.sql` | `{目标表名}.sql` | 每日 `INSERT OVERWRITE` 计算 |
|
|
| `jobs/{ods\|dwd\|dws\|tdm}/{domain}/` | `.sql` | `{目标表名}.sql` | 每日 `INSERT OVERWRITE` 计算 |
|
|
|
-| `jobs/ads/{domain}/` | `.sql` + `.ini` | `{ads 表名}.sql` + `{ads 表名}_export.ini` | 产出 + 导出 |
|
|
|
|
|
|
|
+| `jobs/ads/{domain}/` | `.sql` + `.ini` | `{ads 表名}.sql` + `{ads 表名}__{db_type}_{instance}.ini` | 产出 + 导出;同一张 ads 表扇出多下游时各一份 ini(见 `21-命名规范.md` §3.9) |
|
|
|
| `manual/backfill/` | `.sql` | `{yyyymmdd}_{表名}_history.sql` | 一次性历史回刷脚本 |
|
|
| `manual/backfill/` | `.sql` | `{yyyymmdd}_{表名}_history.sql` | 一次性历史回刷脚本 |
|
|
|
|
|
|
|
|
### 9.6 表结构变更流程(migration 模式)
|
|
### 9.6 表结构变更流程(migration 模式)
|