Data Fusion中SQL UNION等效功能的实现方法问询
在Data Fusion单管道实现SQL UNION等效功能的方案
一、用现有插件实现UNION等效
- Wrangler插件直接合并:Wrangler内置了
union转换指令,刚好适配你这种schema一致的场景。只要把CSV、关系型表两个数据源的输出都接入同一个Wrangler节点,在Wrangler的规则里添加union指令,就能直接完成数据合并,效果和SQL UNION完全一致。 - BigQuery Execute插件用SQL实现:如果你的数据最终要导入BigQuery,可以在管道里加一个BigQuery Execute节点,写包含
UNION ALL的SQL语句。比如先把CSV数据写入BQ临时表,再和关系型表的数据通过SQL合并,一步到位。
二、无直接选项时的替代方案
- 自定义JavaScript插件:如果上面的插件不符合需求,也可以用JavaScript插件写简单代码合并数据。因为schema一致,只需遍历两个输入流的记录,逐个输出即可,逻辑非常简单。
- 落地暂存后再处理:就是你提到的APPEND模式写入BQ表的方式,这个方案很稳妥,后面不管是在同一个管道加后续转换,还是单独开管道处理都没问题。
三、先暂存BQ再后续转换的可行性
完全可行,具体操作可以这样:
- 分别配置CSV和关系型表的数据源节点。
- 每个数据源都连到同一个BigQuery Sink节点,设置写入模式为
APPEND,指定目标BQ表。 - 后续转换可以在同一管道里加BigQuery Source读取合并后的表,再接转换节点;也可以新建管道单独处理这个表。
这种方式的优势是数据有持久化备份,后续转换的灵活性更高,还能避免管道运行中断导致的数据丢失。
内容的提问来源于stack exchange,提问作者Ravi
相关产品推荐
相关产品推荐

