关于使用Azure Data Factory原生功能创建D365 Finance and Operations DMF Package API压缩包的技术问询
使用Azure Data Factory原生功能创建D365 Finance and Operations DMF Package API压缩包的技术问询
嘿,太懂你这种想尽量靠ADF原生功能搞定需求的心态了——毕竟多引入外部工具就多一层要维护的东西,能省则省嘛!
先明确下你的核心需求:
- 通过ADF数据流在Blob存储中生成新的Excel或CSV文件
- 将XML包头和清单XML文件复制到Blob的同一目录下
- 把这些文件打包成一个Zip压缩包,存放在相同目录里
你已经注意到ADF的压缩能力有很大局限:目前只有在使用Delimited Text Sink(分隔符文本接收器)时能开启Deflate压缩,但这仅针对单个输出的文本文件,没法把多个不同类型的独立文件(比如你的Excel/CSV+XML文件组)打包成一个标准的Zip包。而且二进制接收器(Binary Sink)完全没有压缩相关的配置,做不到通用的多文件打包。
很遗憾地说,你真的没漏看任何ADF原生功能——截至目前,ADF的原生组件里确实没有直接支持将多个独立文件打包成Zip压缩包的能力。
我也帮你捋了下有没有什么勉强能用的折衷方案,但都不太现实:
- 比如能不能把所有文件内容合并成一个大文本文件再压缩?但这完全不符合D365 DMF包的格式要求,DMF包需要特定的独立文件结构,合并后根本没法被识别。
- 或者用Lookup活动读取所有文件内容,再用数据流拼接成Zip格式的二进制数据?这更是天方夜谭,Zip格式有复杂的目录结构、校验信息和编码规则,ADF根本没有原生组件能处理这种二进制结构,手动拼接完全不可行。
所以结论就是:如果一定要实现这个需求,目前必须借助外部组件,比如Azure Function、Azure Logic Apps(里面有现成的Zip操作),甚至Azure Batch。但如果团队坚持只使用ADF核心功能,那这个需求暂时确实没法实现。
备注:内容来源于stack exchange,提问作者donald.nairn
相关产品推荐
相关产品推荐

