如何将文件夹从数据湖存储作为参数传递给管道?

how to pass a folder from a data lake store as a parameter to a pipeline?

在数据工厂中,我知道您可以在管道的开头传递参数,然后使用@pipeline() 访问它。如果我在数据湖存储中有一个文件夹,我如何将其作为参数传递并稍后访问它(假设我想在其中的每个文件上循环一个 for-each。)我是否将路径传递给文件夹?我是否将它作为对象传递?

以下是您可以使用的步骤 -

  1. 您可以使用传递文件夹路径作为管道的参数(字符串)。

  2. 使用路径和"Get Metadata"activity与"Child Items"。这将 return JSON 格式

    的文件列表

    Get Metadata Selection

  3. 循环使用 "Foreach" activity 并执行任何操作。

    使用元数据 activity 的输出作为 Foreach 中的项目 activity(示例如下)

@activity('Get List of Files').output

希望对您有所帮助

  1. 首先,您需要创建一个数据湖存储链接服务。它将包含 Azure Data Lake Store 的路径。您可以使用 Azure 数据工厂 UI 创建链接服务
  2. 然后您需要创建一个数据湖存储数据集引用,该引用在步骤 2 中链接了服务。

  3. 然后在步骤 2 中创建一个 getMetaData activity 参考数据集。

  4. 然后按照summit提供的步骤。

所有这些都可以在 UI 中完成。https://docs.microsoft.com/en-us/azure/data-factory/quickstart-create-data-factory-portal#create-a-pipeline