在通过 Azure 数据工厂将数据复制到 Azure 数据湖之前进行文件检查
file checks before copying data to Azure data lake through Azure data factory
目前我正在构建一个数据管道,我想通过 Azure 数据工厂将数据从一个 blob 存储复制到 Azure 数据湖,但在创建数据管道之前,我想进行文件检查之类的事情,即它应该检查目录是否找到文件,例如:如果文件存在,我有一个 csv 文件,然后开始复制到 adls,否则通过错误文件未找到。我知道我们可以在 python 中执行此操作,但在 adf 中如何将其添加到管道中。任何帮助将不胜感激。
我会使用元数据 activity 来获取您的 blob 存储中所有项目的列表(select 您的 blob 作为数据集):
https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity
然后您可能需要检查某个项目是否是文件,而不是文件夹。为此,您可以添加 "ForEach" 和 "If condition" 活动的组合。在这种情况下,您可以使用 @activity('GetMetadata').output.childitems
表达式和 @equals(item().type, 'File')
表达式来引用元数据步骤中的每个项目,以检查它是否是一个文件。
目前我正在构建一个数据管道,我想通过 Azure 数据工厂将数据从一个 blob 存储复制到 Azure 数据湖,但在创建数据管道之前,我想进行文件检查之类的事情,即它应该检查目录是否找到文件,例如:如果文件存在,我有一个 csv 文件,然后开始复制到 adls,否则通过错误文件未找到。我知道我们可以在 python 中执行此操作,但在 adf 中如何将其添加到管道中。任何帮助将不胜感激。
我会使用元数据 activity 来获取您的 blob 存储中所有项目的列表(select 您的 blob 作为数据集): https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity
然后您可能需要检查某个项目是否是文件,而不是文件夹。为此,您可以添加 "ForEach" 和 "If condition" 活动的组合。在这种情况下,您可以使用 @activity('GetMetadata').output.childitems
表达式和 @equals(item().type, 'File')
表达式来引用元数据步骤中的每个项目,以检查它是否是一个文件。