是否有办法按文件大小对数据进行分区?

Are there any way to partition data by filesize?


问题

74291-image.png


只有通过数字来划分数据。

答案1

你好 ,

谢谢你的询问。很遗憾,我们没有按文件大小划分数据的开箱即用功能。我建议你在ADF反馈论坛上记录一个功能请求: https://feedback.azure.com/forums/270578-azure-data-factory 在这个论坛上分享的所有反馈都是由ADF工程团队积极监测和审查的。请在您发布后分享反馈主题,以便其他有类似想法的用户能够对您的建议进行投票和评论。

如果你的源文件是一个文件,那么你可以尝试根据传入的源文件大小对你想要改变的分区数量进行参数化。为了做到这一点,你可以使用Get Metadata活动来获得源文件的大小,并将其作为一个参数传递给Dataflow来计算分区数量。下面是一个例子。

74532-image.png

74562-image.png

如果是数据库表,你可以使用查找功能来根据行数进行分区,如这个堆栈溢出线程中所解释的: Azure Data Factory按文件大小分割文件

另一个选择是你可以用自己的数据移动或转换逻辑创建一个 自定义活动 ,并在管道中使用该活动。


希望这些信息能有所帮助。


我创建了一个快速的小博客文章,其中有一个管道模板的样本,在这里说明这个技术。 https://kromerbigdata.com/2021/03/04/dynamic-data-flow-partitions-in-adf-synapse /