通过 Azure 数据工厂从 ftp 站点获取压缩和非压缩文件 - 解压缩



我通过 Azure 数据工厂成功从 ftp 站点获取文件,并在此过程中解压缩它们。我正在为 ZipDeflate 设置源数据集。但是,现在我有一个类似的管道,我必须从 ftp 站点获取文件,其中混合了.zip文件和其他文件类型,如 .csv 和 .xls。

当我尝试对该复制活动执行 ZipCalm 时,它希望"压缩"所有文件(而不仅仅是.zip(。我有点期待.我认为唯一想只解压缩.zip文件而不解压缩.xls和.csv文件是在单独的复制活动中执行它们(一个用于需要解压缩的文件,一个用于所有其他文件(....这是对的还是有另一种方法可以在一个活动中完成所有操作?

谢谢!! J

嗯,是的。您需要有两个复制活动。但在这种情况下,我猜您将有两个具有不同文件过滤器的源数据集。(一个用于.zip,秒用于所有其他( 我想到的是使用元数据活动来获取文件名。之后,在 IF 条件下,您检查文件名是否包含".zip",您继续活动以进行解压缩,如果为 false,则继续活动而不解压缩。这样,您只使用一个将收集所有文件的数据集,而不是单独使用。 希望这可以工作并帮助您。:)

https://learn.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity

目前,您可以使用 GetMetadata+Filter 活动按类型拆分文件,并为它们创建单独的复制活动。或者您可以参数化数据集,并根据文件的扩展名将 Zip 方法(如"ZipDeflate"或"None"(传递给那里。

如果我们不仅在谈论本机机制,则可以创建自定义 .Net 活动并创建所需的任何内容。

最新更新