Azure data factory Azure数据工厂,如何将blob数据增量复制到sql

Azure data factory Azure数据工厂,如何将blob数据增量复制到sql,azure-data-factory,azure-data-factory-2,Azure Data Factory,Azure Data Factory 2,我有一个azure blob容器,其中一些json文件和数据每6小时放置一次,我想使用azure data Factory将其复制到azure SQL DB。文件的文件模式如下:“customer\u year\u month\u day\u hour\u min\u sec.json.data.json” blob容器也有其他json数据文件,因此我对数据集中的文件进行了筛选 第一个问题是如何设置blob数据集上的文件路径,使其仅查找所需的json文件?我尝试使用通配符*.data.json,

我有一个azure blob容器,其中一些json文件和数据每6小时放置一次,我想使用azure data Factory将其复制到azure SQL DB。文件的文件模式如下:“customer\u year\u month\u day\u hour\u min\u sec.json.data.json”

blob容器也有其他json数据文件,因此我对数据集中的文件进行了筛选

第一个问题是如何设置blob数据集上的文件路径,使其仅查找所需的json文件?我尝试使用通配符*.data.json,但没有效果。我唯一使用的文件名通配符是*.json

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

请提供帮助。

您可以使用来实现这一点

将事件触发器定义为“blob created”,并根据文件名模式指定blobPathBeginsWith和blobPathEndsWith属性

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

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

我理解你的处境。似乎他们使用了一个新的平台来重现一个几十年前的问题

我将首先设置的模式如下所示:

  • 创建一个存储帐户触发器,该触发器将对源容器中的每个新文件触发
  • 在触发的管道中,检查blog名称是否符合您的参数。如果没有,就结束,不采取行动。如果是这样,将blob以二进制方式复制到应用程序拥有的帐户/容器中,保留原始blob
  • 在运行导入管道的容器上创建另一个触发器
  • 运行导入过程
  • 您的管理层必须了解一些注意事项。您可以非常非常可靠,但不能保证遵从性,因为您和源容器之间没有事务/合同。此外,可能存在序列间隙,因为小文件通常可以在处理大文件时进行处理


    如果由于任何原因您确实丢失了一个文件,那么您所需要做的就是将它复制到您的容器中,您的进程将在其中拾取它。您可以以相同的方式加载所有以前的blob。

    “他们使用了一个新平台来重新创建一个几十年前的问题”我喜欢它-Azure中似乎经常发生这种情况。我不得不放弃我可靠、安全、经过充分验证的服务帐户体系结构,回到SQL帐户。