首页 > 解决方案 > Azure 数据工厂,如何将 blob 数据增量复制到 sql

问题描述

我有一个 azure blob 容器,其中每 6 小时放置一些带有数据的 json 文件,我想使用 Azure 数据工厂将其复制到 Azure SQL DB。文件的文件模式如下:“customer_year_month_day_hour_min_sec.json.data.json”

Blob 容器还具有其他 json 数据文件,因此我对数据集中的文件进行了过滤。

第一个问题是如何将 blob 数据集上的文件路径设置为仅查找我想要的 json 文件?我尝试使用通配符 *.data.json 但这不起作用。我可以使用的唯一文件名通配符是 *.json

第二个问题是如何仅将位于 blob 存储中的新文件(具有特定文件模式)中的数据复制到 Azure SQL?我无法控制将数据放入 blob 容器的过程,并且无法将文件移动到另一个位置,这使得它变得更加困难。

请帮忙。

标签: azure-data-factoryazure-data-factory-2

解决方案


您可以使用ADF 事件触发器来实现此目的。

将您的事件触发器定义为“blob created”,并根据您的文件名模式指定blobPathBeginsWithblobPathEndsWith属性。

对于第一个问题,当针对特定 blob 触发事件触发器时,该事件会将 blob 的文件夹路径和文件名捕获到属性@triggerBody().folderPath@triggerBody().fileName中。您需要将属性映射到管道参数,并将 @pipeline.parameters.parameterName 表达式传递给复制活动中的文件名。

这也回答了第二个问题,每次触发触发器时,您都会在@triggerBody().folderPath@triggerBody().fileName中获得最新创建的文件的文件名。谢谢。


推荐阅读