azure-data-factory - 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 容器的过程,并且无法将文件移动到另一个位置,这使得它变得更加困难。
请帮忙。
解决方案
您可以使用ADF 事件触发器来实现此目的。
将您的事件触发器定义为“blob created”,并根据您的文件名模式指定blobPathBeginsWith和blobPathEndsWith属性。
对于第一个问题,当针对特定 blob 触发事件触发器时,该事件会将 blob 的文件夹路径和文件名捕获到属性@triggerBody().folderPath和@triggerBody().fileName中。您需要将属性映射到管道参数,并将 @pipeline.parameters.parameterName 表达式传递给复制活动中的文件名。
这也回答了第二个问题,每次触发触发器时,您都会在@triggerBody().folderPath和@triggerBody().fileName中获得最新创建的文件的文件名。谢谢。
推荐阅读
- android - android kotlin中的其他输入字段更改焦点时键盘消失
- c++ - 用于将向量列表从 vec[0] 返回到 vec[n-1] 的 C 预处理器宏
- css - 如何在媒体查询中使用逻辑表达式?
- sql - 通过以下方式检索组中的多个信息
- spring - Spring状态机有时垃圾邮件重试耗尽错误
- spring-boot - 使用 url 发送多个变量
- c++ - 如何在 C++ 中创建一个可以从 C 代码全局引用的对象?
- bootstrap-4 - 在 Bootstrap 轮播中的第一张幻灯片上滑动不起作用?
- linux - Linux:sched_yield 和 nice 之间的交互
- imagemagick - 有没有办法从 tiff 图像中识别和删除缩略图?