Azure架构最适合将JSON从API保存到Data Lake Store



我期待建立一个能够接收JSON对象并将其保存到ADL中的端点。到目前为止,我已经使用了几种使用功能,事件中心和流分析的不同组合。问题是:到目前为止还没有解决方案。

TL; DR 在我的情况下,我有一些用户可以通过API向我发送JSON数据,并且我需要将其保存在用户隔开的ADL中。最好的方法是什么?

有人可以给我一些灯吗?预先感谢。

警告:长文本

让我解释到目前为止的发现:

功能

优点

  1. 单个解决方案方法 - 使用单个服务解决场景
  2. 内置授权
  3. 组织 - 将用户的文件保存到ADLS内部的文件夹
  4. HTTP端点 - 仅发送数据仅需要一个帖子
  5. 便宜&付费 - 按要求收费

缺点

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

事件中心

优点

  1. 根本没有代码 - 我所需要的只是启用数据捕获

缺点

  1. 每个用户的一个事件中心 - 通过事件中心的捕获功能分离ADL内部数据的唯一方法需要每个用户使用一个事件中心
  2. 价格 - 捕获一个事件枢纽的用户大幅提高价格
  3. 授权 - 发送事件并不像执行职位那样微不足道

功能 事件中心

使用函数的事件中心减轻功能缺点,但具有相同的缺点(AUTH(的事件中心

功能 事件中心 流分析

尽管我可以使用一个事件中心,而无需捕获,但使用Stream Analytics SQL作为过滤器将每个用户的数据引导到其特定文件夹,但这将是一个限制因素。我已经尝试过它,随着SQL变大,它会变慢。

IoT Hub

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

有人可以给我一些灯吗?预先感谢。

我不太了解仅使用Azure函数将数据写入ADL的缺点。

  • 只要您不写很多小文件,每个请求编写1个文件就不应该是一个问题
  • 即使没有现有的绑定,使用.NET SDK也应该很简单
  • 求解身份验证文章:使用托管服务身份(MSI(和KeyVault将客户秘密存储在此处。SDK中的MSI支持显然在路线图上,然后确实使它变得非常容易。
  • 您为自己节省了事件中心的额外费用,我看不到通过它添加的实际价值

最新更新