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

Posted

技术标签:

【中文标题】使用 Azure 数据工厂从 blob 存储中仅读取一个文件并加载到数据库中【英文标题】:Using Azure Data Factory to read only one file from blob storage and load into a DB 【发布时间】:2020-09-08 07:35:18 【问题描述】:

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

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

有没有人知道在一个文件到达我的 blob 存储后如何读取它?

编辑: 澄清一下,我希望自动读取最新的文件。无需硬编码文件名。

【问题讨论】:

【参考方案1】:

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

如果您需要在创建/更新新 blob 时运行此过程,您可以使用事件触发器:

编辑

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

但是 - 如果您考虑我上面提到的事件触发器,每次它触发文件 (blob) 时都是文件夹中最新的一个。如果你想在一段时间内合并它,这样的事情可能会起作用:

    事件触发器上的逻辑应用程序 1:将 blob 名称存储在日志中 [blob、SQL,任何适合您的]。 Lo​​gic App 2 OR ADF 管道在重复触发时:读取日志以获取“最新”的 blob 名称。

【讨论】:

谢谢,但是怎么能指向最新的文件而不是硬编码文件名呢? 这绝对是与您最初提出的问题不同的问题,所以我在回答中添加了一些额外的想法。

以上是关于使用 Azure 数据工厂从 blob 存储中仅读取一个文件并加载到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用数据工厂将数据从 Azure Blob 存储增量加载到 Azure SQL 数据库?

将 Azure 数据工厂上的数据管道从 SQL Server 复制到 Blob 存储

将最新的文件夹从 azure blob 存储加载到 azure 数据工厂

如何从 azure blob 存储中获取 json 数据并使用 azure 数据工厂将其发送到 power apps dataverse

使用 azure 数据工厂管道将 json 对象存储到 azure 表存储实体

Azure 数据工厂到 Azure Blob 存储权限