使用 Azure Synapse 在 Azure 数据平台中的 AAS 表格模型或 SSAS 多维之间的最佳方法是啥

Posted

技术标签:

【中文标题】使用 Azure Synapse 在 Azure 数据平台中的 AAS 表格模型或 SSAS 多维之间的最佳方法是啥【英文标题】:What is the best approach between AAS Tabular model or SSAS Multidimensional in Azure Data Platform with Azure Synapse使用 Azure Synapse 在 Azure 数据平台中的 AAS 表格模型或 SSAS 多维之间的最佳方法是什么 【发布时间】:2020-08-17 08:07:05 【问题描述】:

我们拥有本地 SQL Server 分析服务 (SSAS) 多维,其中包含大量自定义复杂计算、大量度量组、具有更多功能的复杂模型。我们每天处理数十亿行,并拥有自定义 Excel 插件来连接自定义数据透视表以及用于创建报告、运行临时查询等的标准数据透视表功能等等。

以下是 Azure 中可能的解决方案

方法 1:Azure Synapse、SSAS 多维 (ROLAP)、Excel 和 Power BI。请注意,SSAS 多维将作为托管在 VM 中的 IaaS 运行。 Desktop excel/excel 365 将能够连接和 Cloud Power BI。

方法 2:Azure Synapse、Azure Analysis Services 表格模型直接查询、Excel 和 Power BI。 Desktop excel/excel 365 将能够连接和 Cloud Power BI。

问题: 基于庞大的数据量、处理、复杂的逻辑、维护和自定义计算,哪一种方式? 用户能否通过桌面 Excel 或 Excel 365 访问这些基于云的数据立方体,特别是 SSAS 多维? 在直接查询模式下,ROLAP 与 DAX 的性能如何? 移动和处理大量数据的成本是多少?

【问题讨论】:

您的数据有多大?你的尺寸有多大? Synapse 中的数据多久更改一次? @GregGalloway - 数据大约超过 12 TB。有20多个维度。很少有维度的行数超过 4 亿行。 Synapse 中每 1 小时数据更改一次。 【参考方案1】:

对于 12TB 的数据,您可能会看到 500 - 1200GB 的压缩表格模型大小,除非您可以通过不保留所有历史记录、从维度中删除未使用的行以及跳过不必要的列来减小模型大小。即使对于仅每周处理一次的表格模型,这也是非常大的。所以我同意进口模型不实用。

我的建议是表格模型。 ROLAP 多维模型仍然需要 MOLAP 维度才能正常执行,而您的维度大小和刷新频率将使这变得不切实际。

因此,Azure Analysis Services 中 DirectQuery 模式下的表格模型应该可以工作。如果您优化 Synapse,您应该有望获得 10-60 秒范围内的查询响应时间。如果你做得很棒,你可能会更快地完成它。但性能在很大程度上取决于 Synapse。因此,物化视图、启用查询结果集缓存、确保正确分布和确保高质量的列存储压缩将很重要。如果您不是 Synapse 和 Azure 分析服务方面的专家,请找人帮忙。

在 Azure 分析服务中,确保将关系标记为 enforce referential integrity,这会将 SQL 查询更改为有助于提高性能的内部联接。由于您的模型太大,因此请尽可能简化模型和计算。

如果您希望为先前预期的可视化提供非常快速的交互式仪表板性能,另一种选择是使用 Power BI Premium 而不是 Azure Analysis Services 并执行复合模型。这允许您创建一些较小的 agg 表,这些表被导入并以预期的粒度快速响应查询。但随后其他查询将“错过” aggs 并针对 Synapse 运行 SQL 查询。 Phil Seamark 在 Power BI 中很好地描述了aggregations。

【讨论】:

以上是关于使用 Azure Synapse 在 Azure 数据平台中的 AAS 表格模型或 SSAS 多维之间的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

Azure Synapse Sql 池未从 Azure Synapse Studio 数据流接收数据

是否可以使用 Azure Synapse 和 Azure 数据工厂将 CSV 转换为 XML?

使用 Azure Synapse 在 Azure 数据平台中的 AAS 表格模型或 SSAS 多维之间的最佳方法是啥

Azure 分析服务与 Synapse 分析

如何使用 Azure Synapse 在 Databricks 上删除表或删除行?

Azure CLI - 无法创建 Azure Synapse 链接服务 - 引用 JSON 文件的问题