如何在Azure Data Factory中合并Blob存储不同分隔符文件后写入Azure DB
实现方案
核心结论
不需要提前将两个文件合并生成中间文件再入库,直接通过Azure Data Factory的映射数据流功能即可完成文件关联、字段整理后直接写入目标Azure DB表。
具体操作步骤
- 创建源数据集
分别为Blob Storage中的两个文件创建对应数据集:
- File1数据集:分隔符设置为自定义字符
^,勾选「第一行作为标题」,确认能正确识别ItemId、Name、c1等9个字段。 - File2数据集:分隔符设置为逗号
,,勾选「第一行作为标题」,确认能正确识别ItemId、Num、c2三个字段。
- 配置映射数据流
新建映射数据流,按顺序添加以下节点:
- 两个源节点:分别选择上面创建的File1、File2数据集,预览数据确认字段解析正确。
- Join转换节点:将两个源节点都连接到该节点,关联条件设置为两个源的
ItemId字段相等,关联类型根据业务需求选择:如果只保留两边ItemId都匹配的记录选「内连接」,如果要保留File1的全量记录选「左外连接」。 - 选择转换节点(可选):调整输出字段的顺序,删除重复的ItemId字段,最终输出字段顺序和目标表一致:ItemId、Name、c1、type、count、code、Avail、status、Ready、Num、c2。
- 接收器节点:选择提前创建好的Azure DB目标表数据集,将上游输出的字段和目标表字段一一映射匹配即可。
- 运行管道
在ADF管道中添加「数据流」活动,选择刚才创建的映射数据流,触发管道运行即可直接将关联后的结果写入目标表。
注意事项
- 如果文件数据量较大,可以开启数据流的分区优化配置,提升运行效率。
- 如果两个源的ItemId字段类型不一致,可以在Join转换前添加派生列转换,调整字段类型避免关联出错。
内容的提问来源于stack exchange,提问作者trx
相关产品推荐
相关产品推荐

