繁体   English   中英

Azure 数据工厂 - 使用带有文件路径的 CSV 复制文件

[英]Azure Data Factory - Copy files using a CSV with filepaths

我正在尝试创建一个执行以下操作的 ADF 管道:

接受 2 列的 csv,例如:Source、Destination test_container/test.txt、test_container/test_subfolder/test.txt

本质上,我想将文件路径从源目录复制/移动到目标目录(这两个目录都在 Azure blob 存储中)。

我认为有一种方法可以使用查找来做到这一点,但查找仅限于 5000 行,我的 CSV 会比这更大。 关于如何实现这一点的任何建议?

提前致谢,

这是 Azure 数据工厂的复杂方案。 此外,正如您提到的,您的 CSV 文件中有超过 5000 条文件路径记录,这也意味着相同数量的源路径和目标路径。 因此,现在如果您在 ADF 中创建此架构,它将如下所示:

  1. 您将使用Lookup activity来读取 Source 和 Destination 路径。 由于查找活动限制,您也无法读取所有路径。

  2. 稍后您将使用ForEach activity遍历记录。

  3. 现在您还需要拆分路径,以便分别获取容器、目录和文件名,以将详细信息传递给为源和目标位置创建的Datasets 拆分路径后,您需要使用Set variable活动来存储 Source 和 Destination 容器、目录和文件名。 然后这些变量将动态传递给Datasets 这是一个棘手的部分,因为即使单个记录无法正确拆分,您的管道也会失败。

  4. 如果上述步骤成功完成,那么您无需担心copy activity 如果所有参数在复制活动中的源和目标选项卡下都获得了预期值,它将正常工作。

我的建议是为此使用编程方法。 例如,使用 python 读取使用pandas模块的 CSV 文件并遍历每个路径并复制文件。 即使您有 5000 多条记录,这也能正常工作。

您可以参考这个SO 线程,这将帮助您以编程方式实现相同的功能。

首先,如果您想在数据中维护分层模式,我建议使用ADLS (Azure Data Lake Storage),这将保证您的数据具有一定的结构。

其次,如果您在 Blob 存储中有一个文件夹,并且想要将文件复制到其中,请使用Copy Activity ,您应该定义 2 个数据集,一个用于源,一个用于接收器。

检查此链接: https ://docs.microsoft.com/en-us/azure/data-factory/copy-activity-overview

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM