【问题标题】:Getting data from REST API and storing it in Azure Data Lake从 REST API 获取数据并将其存储在 Azure Data Lake 中
【发布时间】:2021-07-04 09:31:59
【问题描述】:

从 REST API 获取数据并将其作为 JSON 存储在 Azure 数据湖中是否有意义?还是应该将数据直接存储到 Azure SQL 中?

我已经尝试了这两个选项,但不清楚在哪种情况下值得将数据保存到 Azure Data Lake。

【问题讨论】:

  • 不确定有什么方法可以客观地回答这个问题,不知道具体情况。这确实是一个一般性的征求意见问题,没有任何细节。 SQL DB 和 Data Lake 是两种截然不同的服务/存储选项,您使用的内容在很大程度上取决于您的应用程序以及您对数据的处理方式。

标签: azure-data-factory azure-data-lake


【解决方案1】:

是的,这是一种完全正常的模式,特别是在收集大量数据时出现。写入数据库非常棒有(至少)两个方面需要考虑:

  1. schema-on-write - 您必须在写入数据库之前了解架构。这意味着所有列、所有数据类型、可空性、排序规则,甚至在您考虑写入记录之前。例如,您将如何处理 JSON 的架构变化?
  2. 事务日志 - 大多数 Microsoft SQL 数据库都使用预写日志或 WAL,这意味着事务日志必须在事务被视为 ACID 事务的一部分之前完成。在数据库负载重或高并发的情况下会发生什么 - 排队和阻塞。通常这些事情需要几毫秒,但低层等开始发挥作用。如果您需要类似的东西,可以使用其他模式,例如最终一致性(例如与 Cosmos)。

合同中的数据湖是schema-on-read,即你不必知道模式就可以写入湖,所以你可以登陆它并找出其他东西稍后。

这不一定适用于您关于 Synapse 的其他问题,因为您冒着丢失完美 SQL Server 数据类型的风险。请查看migration wizards 之一。

【讨论】:

  • 什么是“完全正常的模式”? OP 正在征求关于在 SQL DB 或 Data Lake 中存储数据的意见。而且没有办法客观地回答这个问题。此外,除了模式和事务日志记录之外,还有许多其他事情需要考虑。但同样:原始问题中没有任何东西可以解决:没有特定需要;没有问题);没有代码;没有用例;没有查询;没有变换;只是一个关于从某个(未知)REST 端点向哪个写入数据的问题:SQL DB 与 Data Lake。
  • @wBob,有人打开灯,感谢您提供有用的见解,现在更清楚如何做出决定了。
  • 我需要从 API 获取数据,我提前知道架构(我只需要几列)并且您的答案很清楚。 Cosmos DB 也是一个值得考虑的有效选项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多