【问题标题】:Azure architecture best suited to save JSON from API to a Data Lake Store?Azure 架构最适合将 JSON 从 API 保存到 Data Lake Store?
【发布时间】:2018-04-05 23:10:13
【问题描述】:

我期待构建一个能够接收 JSON 对象并将其保存到 ADLS 的端点。到目前为止,我已经使用函数、事件中心和流分析尝试了几种不同的组合。问题是:到目前为止,似乎没有任何解决方案是理想的。

TL;DR 在我的场景中,我有几组用户将通过 API 向我发送 JSON 数据,我需要将其保存在 ADLS 中,按用户分隔。这样做的最佳方式是什么?

谁能给我一些启示?提前致谢。

警告:前面有长文本

让我解释一下我目前的发现:

函数

优势

  1. 单一解决方案方法 - 使用单一服务解决方案
  2. 内置授权
  3. 组织 - 将用户的文件保存到 ADLS 内的单独文件夹中
  4. HTTP 端点 - 发送数据只需要一个 POST
  5. 便宜且随用随付 - 按请求收费

缺点

  1. 绑定和依赖项 - 函数没有 ADLS 绑定。要授权和使用 ADLS,我需要安装额外的依赖项并手动管理其凭据。我只能用 C# 做到这一点,但还没有用其他语言测试过。也可能是一个缺点,虽然我无法确认。
  2. 文件管理 - ADLS 不建议每个请求保存 1 个文件。另一种方法是附加到文件并管理其大小。与其他解决方案相比,这意味着更多的代码。

活动中心

优势

  1. 根本不需要代码 - 我只需要启用数据捕获

缺点

  1. 每个用户一个事件中心 - 通过事件中心的捕获功能在 ADLS 中分离数据的唯一方法是每个用户使用一个事件中心
  2. 价格 - 为每位用户捕获一个事件中心会大幅提高价格
  3. 授权 - 发送事件不像 POST 那样简单

函数 + 事件中心

将事件中心与函数结合使用可减轻函数的缺点,但具有与事件中心相同的缺点(身份验证除外)

函数 + 事件中心 + 流分析

虽然我可以在没有捕获的情况下拥有一个事件中心,但使用流分析 SQL 作为过滤器将每个用户的数据定向到其特定文件夹,这将是一个限制因素。我试过了,随着 SQL 变大,它会变慢。

物联网中心

IoT Hub 有路由,但它不像我需要的那样动态。

谁能给我一些启示?提前致谢。

【问题讨论】:

  • 感谢您记录每种方法的优缺点。您是否考虑过构建 .Net Web API?这将是最常见的解决方案。
  • 为什么需要将其存储在 ADLS 中?如果它仅用于查询目的,那么 Blob 存储将执行,因为您可以使用 u-sql 直接查询它。在那种情况下,我会说去一个天蓝色的功能
  • @Nick.McDermaid 绝对是。我考虑过使用 Functions,因为它具有极强的可扩展性且价格低廉。我非常倾向于使用自定义构建的 .net API。现在这是我接收数据的方式,尽管它直接发送到 SQL Server。感谢您的回复!
  • @PeterBons 如果与 ADLA 一起使用,我认为 ADLS 比 Blob 存储更适合?我无法确认,但这对我来说很有意义。也许我错了。
  • 根据我的经验,在 blob 存储数据上运行 u-sql 作业在这里可以正常工作。原生支持,见msdn.microsoft.com/en-us/azure/data-lake-analytics/u-sql/…

标签: azure azure-data-lake azure-iot-hub azure-eventhub


【解决方案1】:

我不太明白仅使用 Azure Functions 将数据写入 ADLS 的缺点。

  • 只要你不写很多小文件,每个请求写 1 个文件应该不是问题
  • 即使没有现有绑定,使用.NET SDK 也应该非常简单
  • 解决身份验证问题:使用托管服务身份 (MSI) 和 KeyVault 将您的客户端机密存储在此处。 SDK 中的 MSI 支持显然在 roadmap 上,然后确实让这变得非常容易。
  • 您为自己节省了事件中心的额外费用,但我看不出它有真正的增值作用

【讨论】:

  • 感谢您的回复。目的确实是为每个请求编写一个文件,但我很可能每天处理数百万个文件。我肯定需要使用文件附加。我将深入了解 MSI。谢谢!
猜你喜欢
  • 2019-04-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 1970-01-01
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多