使用Azure数据工厂从Blob存储中仅读取一个文件并加载到数据库中

时间:2020-05-21 15:50:56

标签: csv azure-sql-database azure-pipelines azure-storage-blobs azure-data-factory

在文件到达触发触发器之后,我只想从Blob存储容器中读取一个文件,并将其加载到DB的复制操作中。

使用Microsoft文档,我似乎做得最接近的是按修改日期的顺序读取所有文件。

在那里有人会知道如何在我的Blob存储中读取一个文件吗?

编辑: 为了澄清,我希望自动读取最新文件。无需对文件名进行硬编码。

1 个答案:

答案 0 :(得分:0)

您可以在数据集中指定一个Blob。此值可以是硬编码或变量(使用数据集参数):

enter image description here

enter image description here

如果每次创建/更新新Blob时都需要运行此过程,则可以使用事件触发器:

enter image description here

编辑

基于您添加的“仅最新”,我没有直接的解决方案。通常,您可以使用Lookup或GetMetadata活动,但是它们或表达式语言都不支持排序或排序。一种选择是使用Azure函数来确定要处理的文件。

但是-如果您想到我上面提到的事件触发器,则每次触发文件(blob)时,它都是文件夹中的最新文件。如果您想在一定时间内合并,则可能会发生以下情况:

  1. 事件触发器上的Logic App 1:将blob名称存储在日志中(blob,SQL,任何适合您的方法)。
  2. 重复触发时使用Logic App 2或ADF管道:读取日志以获取“最新” blob名称。