如何验证 Azure 数据工厂中的传入文件
How to validate incoming files in Azure data factory
有没有办法创建一个模板来验证传入的文件,包括空文件检查、格式、数据类型、记录计数等检查,如果任何检查失败,将停止工作流。此需求的解决方案应考虑多种文件格式并减少 ETL 处理和检查的负担以实现扩展。
通过触发器或数据货币规则进行文件传输
数据工厂更专注于数据传输,而不是文件过滤器。
我们可以使用get metadata and if-condition来实现其中的一些功能,例如验证文件格式、大小、文件名。您可以使用 Get Metadata 获取文件属性,If-condition 可以帮助您过滤文件。
但这对于数据工厂来说太复杂了,无法帮助您实现所需的所有功能。
更新:
例如,我们可以在source中参数一个文件,:
创建数据集参数 filename
和管道参数 name
:
使用Get metadata
获取其属性:Item type
、Exists
、Size
、Item name
。
输出:
例如我们可以在if-condition
中构建expression判断是否为empyt(size=0):
@equals(activity('Get Metadata1').output.size,0)
如果Ture表示它是空的,False则不是空的。然后我们可以在 True 或 False active 中构建工作流。
希望这对您有所帮助。
我演示了类似的技术来验证源文件并根据这些值在您的管道中采取适当的下游操作 in this video。
有没有办法创建一个模板来验证传入的文件,包括空文件检查、格式、数据类型、记录计数等检查,如果任何检查失败,将停止工作流。此需求的解决方案应考虑多种文件格式并减少 ETL 处理和检查的负担以实现扩展。
通过触发器或数据货币规则进行文件传输
数据工厂更专注于数据传输,而不是文件过滤器。
我们可以使用get metadata and if-condition来实现其中的一些功能,例如验证文件格式、大小、文件名。您可以使用 Get Metadata 获取文件属性,If-condition 可以帮助您过滤文件。
但这对于数据工厂来说太复杂了,无法帮助您实现所需的所有功能。
更新:
例如,我们可以在source中参数一个文件,:
创建数据集参数 filename
和管道参数 name
:
使用Get metadata
获取其属性:Item type
、Exists
、Size
、Item name
。
输出:
例如我们可以在if-condition
中构建expression判断是否为empyt(size=0):
@equals(activity('Get Metadata1').output.size,0)
如果Ture表示它是空的,False则不是空的。然后我们可以在 True 或 False active 中构建工作流。
希望这对您有所帮助。
我演示了类似的技术来验证源文件并根据这些值在您的管道中采取适当的下游操作 in this video。