使用 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,任何适合您的]。
Logic 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