【问题标题】:In azure datafactory how to copy data from blob to sql without duplication?在 azure 数据工厂中,如何将数据从 blob 复制到 sql 而不重复?
【发布时间】:2015-07-24 09:14:43
【问题描述】:

在 azure datafactory 中,如何在不重复的情况下将数据从 blob 复制到 sql,即如果管道以每 15 分钟的切片运行,那么如何避免获取重复数据

【问题讨论】:

    标签: azure azure-sql-database azure-data-factory


    【解决方案1】:

    该解决方案不是自动的,但您可以使用复制活动,并使用 SQL 接收器中的存储过程来处理可能已经存在的行。也许是 TSQL Merge 语句,或者是里面的 Insert / Update 语句。

    https://azure.microsoft.com/en-us/documentation/articles/data-factory-copy-activity/

    为 SQL Sink 调用存储过程。将数据复制到 SQL Server 或 Azure SQL 数据库时,可以配置和调用用户指定的存储过程。

    谢谢,杰森

    【讨论】:

    【解决方案2】:

    我遇到了同样的问题,我发现您可以将切片开始时间和切片结束时间添加到存储过程中,并使用它们作为任何其他参数过滤查询,这将帮助您按切片加载数据,而不是相同的数据切片数,希望够清楚。

    "typeProperties": {
                         "storedProcedureName": "sp_sample",
                         "storedProcedureParameters": {
                             "DateTime": "$$Text.Format('{0:yyyy-MM-dd HH:mm:ss}', SliceStart)"
                         }
                     }
    

    https://docs.microsoft.com/en-us/azure/data-factory/data-factory-stored-proc-activity

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,发现此链接很有帮助: https://www.mssqltips.com/sqlservertip/6365/incremental-file-load-using-azure-data-factory/

      在我们的例子中,我们只将文件添加到 blob 存储,之后再也不修改它们,因此我们的工作就是简单地选择最近 15 分钟内创建的新文件并将它们添加到 SQL 容器中。到目前为止,链接中描述的增量复制过程似乎效果很好。

      我可以想象,在某些情况下,您可能需要添加一个存储过程以在此之后作用于 SQL 容器,但我们不需要它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-23
        • 2021-07-03
        • 2019-04-20
        • 2021-08-26
        • 2019-10-09
        • 2018-09-20
        • 2016-10-02
        • 2023-03-27
        相关资源
        最近更新 更多