Skip to content

Commit ff822ed

Browse files
committed
finalize multi steps
1 parent ff799f4 commit ff822ed

4 files changed

Lines changed: 43 additions & 12 deletions

File tree

tis-incr/tis-flink-extends/scp.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#scp ./target/tis-flink-extends-dist-3.6.0.jar root@192.168.28.201:/tmp/release/tis/flink/lib/
22
#scp ./target/tis-flink-extends-dist-4.1.0-SNAPSHOT.jar root@192.168.28.201:/tmp/release/tis/flink/lib/
33

4-
scp ./target/tis-flink-extends-dist-4.3.0-SNAPSHOT.jar root@192.168.28.201:/tmp/release/tis/flink/lib/
4+
scp ./target/tis-flink-extends-dist-5.0.0.jar root@192.168.28.201:/tmp/release/tis/flink/lib/
55

tis-transformer/src/main/java/com/qlangtech/tis/plugin/datax/transformer/impl/JoinerUDF.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ public List<UDFDesc> getLiteria() {
351351
// Add cache status
352352
// isOn() ? "enable" : "disabled"
353353
literia.add(new UDFDesc("Cache", (selectTable.cache.getUDFDesc())));
354+
literia.add(new UDFDesc("SkipError", String.valueOf(conditionAndCols.skipError)));
354355

355356
return literia;
356357
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# JoinerUDF 插件简介
2+
3+
## 插件概述
4+
5+
JoinerUDF是TIS数据同步过程中的表关联转换插件,用于在数据传输过程中实现主表与维度表的实时关联查询。当数据从源端流向目标端时,该插件能够根据指定的关联条件自动从维度表中查询补充数据,并将查询结果附加到主表记录中,从而实现数据的实时宽表化处理。
6+
7+
这个插件解决了传统ETL流程中需要预先进行表关联的痛点,让用户可以在数据同步的同时完成维度数据的补充,大幅简化了数据处理流程。
8+
9+
## 核心作用
10+
11+
- **实时维度关联**:在数据同步过程中动态关联维度表,无需预先生成宽表,提升数据处理的灵活性
12+
- **智能缓存加速**:支持维度数据缓存机制,对于重复查询的维度数据直接从缓存获取,显著提升关联性能
13+
- **灵活的关联配置**:支持多条件关联匹配和过滤条件设置,可以精确控制数据关联逻辑
14+
- **容错处理机制**:提供错误跳过选项,当维度表查询失败时可以选择跳过错误继续处理,保证数据流的稳定性
15+
16+
## 适用场景
17+
18+
- **订单数据补充**:在同步订单流水数据时,实时关联商品表、用户表等维度信息,生成包含完整业务信息的订单宽表
19+
- **日志数据增强**:处理应用日志时,根据用户ID关联用户基础信息表,补充用户属性数据用于后续分析
20+
- **实时数仓构建**:在构建实时数据仓库时,将事实表与多个维度表进行关联,生成面向分析的宽表模型
21+
- **数据质量提升**:通过关联主数据表验证和补充业务数据,提升数据的完整性和准确性
22+
23+
## 工作机制
24+
25+
JoinerUDF采用三步向导式配置流程:
26+
27+
**第一步**:选择维度表所在的数据源,插件会连接到指定的数据库
28+
29+
**第二步**:从数据源中选择需要关联的目标维度表,并配置是否启用缓存。启用缓存后,相同关联条件的查询结果会被缓存,避免重复查询数据库
30+
31+
**第三步**:设置关联条件和输出列。用户需要指定主表与维度表之间的关联字段(如主表的order_id对应维度表的id),可以设置多个关联条件实现复合主键关联。同时选择需要从维度表中提取哪些列附加到主表记录中
32+
33+
在数据同步执行阶段,每当一条主表记录流经该插件时,插件会根据配置的关联条件构造SQL查询语句,从维度表中查询匹配的记录。如果启用了缓存且缓存命中,则直接使用缓存数据;否则执行数据库查询并将结果加入缓存。查询到的维度列数据会按照配置的列前缀添加到主表记录中,避免与主表原有列名冲突。
34+
35+
## 使用建议
36+
37+
- **合理使用缓存**:对于数据量较小且相对稳定的维度表建议开启缓存,可以大幅提升性能;对于频繁变化的维度表则需要谨慎使用缓存
38+
- **设置列前缀**:建议为维度表输出列设置有意义的前缀(如"dim_product_"),这样可以清晰区分主表列和维度表列,避免命名冲突
39+
- **关联条件优化**:确保维度表的关联字段上建有索引,这样可以加快查询速度,特别是在未启用缓存的情况下
40+
- **错误处理策略**:对于允许维度数据缺失的场景,可以开启skipError选项;对于必须保证数据完整性的场景,应关闭该选项以便及时发现数据问题

tis-transformer/src/main/resources/com/qlangtech/tis/plugin/datax/transformer/impl/joiner/JoinerSelectDataSource.json

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
11
{
22
"dbName": {
33
"label": "数据库名",
4-
"enum": "com.qlangtech.tis.util.PluginItems.getExistDbs(\"MySQL-V5\",\"MySQL-V8\")",
4+
"enum": "com.qlangtech.tis.util.PluginItems.getExistDbs(\"all\")",
55
"creator": {
66
"routerLink": "/offline/ds",
77
"label": "配置",
88
"assistType": "dbQuickManager",
99
"plugin": [
10-
{
11-
"descName": "MySQL-V5",
12-
"hetero": "datasource",
13-
"extraParam": "type_detailed,update_false,disableBizStore_true"
14-
},
15-
{
16-
"descName": "MySQL-V8",
17-
"hetero": "datasource",
18-
"extraParam": "type_detailed,update_false,disableBizStore_true"
19-
}
2010
]
2111
}
2212
}

0 commit comments

Comments
 (0)