【问题标题】:Copy n number of files from Azure Datalake to SFTP location using Logic Apps使用逻辑应用将 n 个文件从 Azure Datalake 复制到 SFTP 位置
【发布时间】:2020-10-04 05:18:19
【问题描述】:

我有一个场景-
我在 Azure Datalake 中有一些文件。一项工作正在将这些文件推送到 ADLS 位置。
此文件需要作为输入数据上传到 SFTP 位置。
应用程序将使用此输入文件并执行一些操作,然后将处理后的数据作为输出文件保存在同一 SFTP 位置的输出目录中。

在逻辑应用程序的帮助下,我想将此输出文件上传到 ADLS 位置。

使用此输入文件的应用程序有一些限制 - 它一次不能使用超过 10000 条记录。 即如果我的源文件有超过 10000 条记录,那么我必须将其拆分为多个文件(取决于行数),然后我必须将这些文件复制到 SFTP 位置。 必须以这样的方式执行此复制,而不是在完成一项作业后才应在 SFTP 位置复制另一个文件。

将我想要使用的文件上传到 Azure 逻辑应用。

据我所知,到目前为止,Azure 逻辑应用程序不提供任何触发器来测试“添加或修改的文件”ADLS 位置,但逻辑应用程序具有类似类型的 blob 存储功能,所以我决定使用 blob 容器。
将原始文件上传到 ADLS 位置后,我会将文件上传到 blob 位置, 因为我的逻辑应用程序会不断轮询这个特定目录,所以每当有任何新文件立即到达时,它都会通过逻辑应用程序触发文件复制作业。

现在的问题-
我的 ADLS 目录可能有一个或多个文件。
如何在逻辑应用中创建复制活动以将这些文件复制到 SFTP 位置。 如何确定 ADLS 目录中有多少个 csv 类型文件可用,以便我的逻辑应用决定复制文件的迭代次数。

提前致谢。

【问题讨论】:

    标签: azure azure-logic-apps azure-data-lake azure-cloud-services


    【解决方案1】:

    您可以在 ADLS 上使用 List File Action..

    此操作的输出记录在此处 - https://docs.microsoft.com/en-us/connectors/azuredatalake/#folderresponse

    这基本上是一个 filestatus 类对象的数组。您可以遍历这个数组并从状态对象中提取信息,并使用它将数据复制到您想要的任何位置..

    FileStatus 有信息 -

    表 14 名称 路径类型 描述 文件名路径后缀字符串
    文件或文件夹名称。

    类型类型字符串
    项目类型(目录或文件)。

    块大小 blockSize 整数 文件夹或文件的块大小。

    访问时间 accessTime 整数 项目最后一次访问的 Unix(纪元)时间。

    修改时间 modifyTime 整数 项目最后一次修改的 Unix (Epoch) 时间。

    示例 LA 看起来像 -

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-06
      • 2019-03-21
      • 2018-12-13
      • 2019-10-08
      • 2017-10-17
      • 2020-04-18
      • 2021-02-05
      • 1970-01-01
      相关资源
      最近更新 更多