Performance 如何在Azure中高性能执行大数据集转换? 目标/问题

Performance 如何在Azure中高性能执行大数据集转换? 目标/问题,performance,azure,bigdata,batch-processing,Performance,Azure,Bigdata,Batch Processing,自3周以来,我们一直在尝试在Azure中找到最好的高性能解决方案,以便在暂存区域中加载1000万条记录(可能更多!),根据暂存记录执行不同的转换,最后再次将更新物理存储在存储中 为了实现这一点,我们做了大量的研究,并尝试了不同的方法以在相当长的时间内(最长不到1分钟)获得结果,但我们完全陷入了困境!我们所能节省的每一秒对我们的客户都是巨大的好处 注:我们有一个庞大的预算来解决这个问题,所以成本因素可以忽略不计 输入模式的示例 转型 转换过程分为不同的步骤。每个步骤都必须临时存储其结果,直到我们将

自3周以来,我们一直在尝试在Azure中找到最好的高性能解决方案,以便在暂存区域中加载1000万条记录(可能更多!),根据暂存记录执行不同的转换,最后再次将更新物理存储在存储中

为了实现这一点,我们做了大量的研究,并尝试了不同的方法以在相当长的时间内(最长不到1分钟)获得结果,但我们完全陷入了困境!我们所能节省的每一秒对我们的客户都是巨大的好处

注:我们有一个庞大的预算来解决这个问题,所以成本因素可以忽略不计

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

步骤可以是以下步骤之一:

  • 金额加倍
  • 金额中减去1k
  • 金额
    上限设置为最多5k
  • 金额
    限制为最小值为零
  • 年的总和
    限制为最多10万
Azure中有太多可能的解决方案和机会,因此很难知道哪条路是最好的,所以我们需要您的帮助

我们已经考虑了哪些数据存储
  • Azure SQL数据库
  • 蓝色宇宙空间数据库
我们已经考虑了哪些服务
  • Azure数据工厂
  • Azure功能具有自我实现的扇出/扇入体系结构(vis ServiceBus队列和Redis缓存)
  • 持久功能
  • Azure数据块
问题: 有没有人有类似的问题需要解决,可以给我们一些关于架构的建议?我们会非常感激的


编辑#1:添加了转换过程描述

什么是“转换”?它们可以用SQL或自定义代码来完成/表达吗?它们是否会随着时间的推移而“持久化”,还是你每次都会做出新的“转变”?可能您不需要将数据上传到Azure,而是在本地使用某种csv文件操作,使用自行编写的程序/代码?1000万条记录采用何种格式?也许azure data lake analytics非常适合。或者azure数据工厂。但是,是的,请发布我们正在讨论的转换类型。我添加了一些转换示例。输入和输出数据应存储在SQL Server表中。对于这两者之间的任何东西,我们都可以自由选择任何有意义的东西作为中间存储器,以提高处理速度。不幸的是,这个问题非常广泛。还有很多变量在起作用:你的数据是如何(以及在哪里)加载到Azure的,数据需要在哪里结束,当前需要多长时间,当前的瓶颈在哪里。。。此外,还可以选择在数据到达时以流式方式修改数据(通过Spark、流分析、Azure功能…)。这么多不同的方法,根本没有“正确”的方法。并声明您希望在一分钟内转换100万条以上的记录…在您进行基准测试之前无法知道。感谢您的回复。我知道我的问题不是很清楚,因为我们在选择存储数据的位置(sql表、csv等)和计算的技术/平台(hadoop、databricks/sparks、sql DWH)方面没有限制。当我们为自己找到了一个好的解决方案时,我会留下这个问题,并给出反馈。
+------+--------+----------+
|  Id  |  Year  |  Amount  |
+------+--------+----------+
|  1   |  1900  |     1000 |
|  2   |  1900  |     2000 |
|  3   |  1901  |     4000 |
|  4   |  1902  |     8000 |
|  ... |  ...   |      ... |
|  1M  |  9999  |     1000 |
+------+--------+----------+