如何在Azure中高效执行大型数据集转换?

时间:2019-03-01 11:26:33

标签: performance azure bigdata batch-processing

目标/问题

自3周以来,我们一直试图在Azure中找到最佳的高性能解决方案,以便在暂存区域中加载1000万条记录(甚至更多!),请根据暂存记录,最后将更新再次实际存储在商店中。

为实现这一目标,我们进行了大量研究,并尝试了不同的方法以在相当长的时间内(最长1分钟以下)获得结果,但我们完全陷入了困境!我们可以节省的每一秒钟对我们的客户都是巨大的利益!

注意:我们有巨大的预算来解决此问题,因此可以忽略成本因素。

输入模式示例

+------+--------+----------+
|  Id  |  Year  |  Amount  |
+------+--------+----------+
|  1   |  1900  |     1000 |
|  2   |  1900  |     2000 |
|  3   |  1901  |     4000 |
|  4   |  1902  |     8000 |
|  ... |  ...   |      ... |
|  1M  |  9999  |     1000 |
+------+--------+----------+

转化

转换过程分为不同的步骤。每个步骤都必须临时存储其结果,直到我们将数据持久存储到物理存储中为止。必须能够以不同的顺序重新排列步骤,或者只是跳过创建某种工作流程的步骤。

步骤可以是以下之一:

  • Amount
  • 加倍
  • Amount中减去1k
  • Amount的上限设为5k
  • Amount的上限设置为零
  • Year的总和上限为100k

Azure中有很多可能的解决方案和机会,很难知道哪种方法最好,所以我们需要您的帮助。

我们已经考虑过哪些数据存储

  • Azure SQL数据库
  • Azure CosmosDB

我们已经考虑过的服务

  • Azure数据工厂
  • 具有自我实现的扇出/扇形体系结构的天蓝色函数(针对ServiceBus队列和Redis缓存)
  • 持久功能
  • Azure Databricks

问题

是否有人需要解决类似的问题并可以为我们提供有关体系结构的建议或建议?我们将非常感激。

编辑#1:添加了转换过程的说明

0 个答案:

没有答案