Azure数据工厂 - 如何仅从blob存储中读取新文件

时间:2017-06-26 11:08:50

标签: azure azure-data-factory azure-blob-storage

我的Application Insights中有一个“持续导出”流程,可以根据我的新见解创建新文件。

除此之外,我还有一个使用Azure数据工厂的进程,使用Blob存储数据加载一个SQL表。

问题: 我无法从A.D.F.读取,只有来自Blob Storage的新文件,我总是处理相同的数据。此时我忽略了SQL存储过程中加载过程后的重复数据,但我想通过从blob存储中只读取新数据来提高此过程的效率,我可以从A.D.F.执行此操作吗? 谁能帮我?哪些是实现这一目标的替代方案?

最诚挚的问候, 瑞费尔南德斯

2 个答案:

答案 0 :(得分:0)

  

实现这一目标的替代方案是什么?

如果WebJob可以接受,我们可以轻松地使用WebJob blob触发器。我们可以从Azure official document.

获取有关WebJob触发器的更多信息

以下是演示代码:

 public static void ProcessBlobTrigger([BlobTrigger("containername/{name}")] TextReader input, TextWriter log)
        {
            // your logic to process data
        }

答案 1 :(得分:0)

我建议您通过将它们重命名为" Archive / oldBlobName"来以编程方式存档旧blob(自定义管道)。执行此操作后,当您在代码中迭代分段blob结果(在数据集中指定的容器中包含的blob列表)时,只需转义名称以" Archive"开头的名称。

        foreach (IListBlobItem listBlobItem in blobList.Results)
        {
            CloudBlockBlob inputBlob = listBlobItem as CloudBlockBlob;

            // Take all blobs from container that are not in "Archive"
            if ((inputBlob == null) || string.IsNullOrEmpty(inputBlob.Name)
                            || inputBlob.Name.ToLower().StartsWith("Archive"))
            {
                continue;
            }
                     ...