【问题标题】:Looking for an alternative solution to processing tens of thousands of JSONs from Azure Blob to Azure SQL DB寻找一种替代解决方案来处理从 Azure Blob 到 Azure SQL DB 的数万个 JSON
【发布时间】:2020-06-24 19:47:39
【问题描述】:

我目前开发的管道利用 Azure 数据工厂进行编排,利用 Azure DataBricks 进行计算以执行以下操作...我在 Azure Blob 中实时接收数以万计的单记录 json 文件在 15 分钟的基础上,我检查文件夹中是否有任何新文件,一旦发现,我使用 Databricks 将它们加载到数据框中,并将它们加载到 SQL DB 中的单个文件中,然后让其他 ADF 作业触发存储过程,然后将我的数据转换为最终的 SQL 表.... 我们正在寻求远离 Databricks,因为我们不是因为它的真正功能而使用它,但当然要支付 Databricks 成本。寻找其他解决方案的想法,以定期(即 15 分钟)将数以万计的 json 加载到 SQL DB 中(最少或没有转换)。我们是一家微软商店,因此不一定要放弃 Azure 工具。

【问题讨论】:

    标签: azure etl pipeline databricks


    【解决方案1】:

    这里有一些想法:

    • 使用 Azure Functions + Blob Trigger / Event Grid 实时处理 JSON 文件(每次新的 JSON 文件到达时,都会触发您的函数)。然后您可以插入到最终表或临时表中。

    • 另一个想法是结合 Azure Functions + Blob Trigger / Event Grid 将数据下沉到数据湖。您可以使用 ADF 将其下沉到 SQL 最终表中。

    【讨论】:

    • 对于 24 核计算机,SQL Server 并发连接数限制为 2400。这将超出,因为我们每 15 分钟就有数万个文件登陆。
    【解决方案2】:

    就 JSON 而言,Azure SQL DB 实际上非常强大,因此您可以使用 OPENROWSET 直接从 blob 存储导入数据,然后使用 OPENJSON 将其分解。然后,您可以使用按计划运行的逻辑应用程序,例如每 15 分钟调用一次 proc,您甚至不需要 ADF 作为解决方案的一部分。

    我之前已经制定了几个类似的答案,例如 herehere,但是如果您想在这条路线上取得更多进展,请告诉我,我们可以制定更详细的答案。

    【讨论】:

    • 我会考虑这种方式,并且由于映射限制而希望避免使用 ADF。我们的 json 也不一致。它们来自仅发送已填充字段的数据库。并非每条记录的源中都存在所有字段。
    • 我也在考虑使用 Azure Batch。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 2014-07-30
    • 2019-11-11
    • 1970-01-01
    • 2016-06-04
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多