比较表格和多维解决方案
适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services (SSAS) 提供了几种用于创建商业智能语义模型的方法或模式:表格和多维。
多维模式仅适用于 SQL Server Analysis Services。 如果希望将模型部署到 Azure Analysis Services 或 Power BI,现在可以停止读取。 Azure Analysis Services或Power BI Premium语义模型中不支持多维模型。 如果需要云中的多维模型,唯一的方法是将多维模式下的SQL Server Analysis Services部署到 Azure VM。
由于多维模型仅在 SQL Server Analysis Services 中受支持,本文不打算比较 Analysis Services 平台 (SQL Server、Azure、Power BI) 。 它旨在完全在SQL Server Analysis Services上下文中提供多维和表格模型构造的高级比较。
SQL Server Analysis Services还包括 Power Pivot for SharePoint 模式,该模式仍受 SharePoint 2016 和 SharePoint 2013 支持,但是,Microsoft 的 BI 策略已从 Excel 与 SharePoint 集成中的 Power Pivot 转移。 Power BI 和 Power BI 报表服务器 现在是使用 Power Pivot 模型托管 Excel 工作簿的建议平台。 因此,本文现在排除了 Power Pivot for SharePoint 比较。
在 SQL Server Analysis Services 中,使用多种方法可实现根据不同的业务和用户要求定制的建模体验。 多维是一项基于开放标准构建的成熟技术,受到众多 BI 软件供应商的欢迎,但实施起来可能很困难。 “表格”提供一种关系建模方法,很多开发人员认为它更加直观。 从长远来看,表格模型更易于开发,也更易于管理。 尽管多维模型在许多 BI 解决方案中仍然很普遍,但表格模型现在被更广泛地接受为 Microsoft 平台上的标准企业级 BI 语义建模解决方案。
所有模型都部署为在 Analysis Services 实例上运行的数据库,或使用表格模型部署为Power BI Premium容量的语义模型。 模型由客户端应用程序或 Power BI 等服务访问。 模型数据通过 Excel、Reporting Services、Power BI 和其他供应商提供的 BI 工具在交互式报表和静态报表中可视化。
使用 Visual Studio 创建的表格和多维解决方案,适用于在本地SQL Server Analysis Services实例上运行的企业 BI 解决方案,以及表格模型、Azure Analysis Services服务器资源或作为Power BI Premium中的语义模型能力。 每个解决方案都会生成高性能分析数据库,这些数据库可轻松与客户端应用程序和数据可视化服务集成。 然而,每个解决方案在创建、使用和部署方式上都存在不同。 本文的大部分内容将比较这两种类型,以便确定适合你的方法。
建模类型概述
下表枚举了不同的模型,总结了方法、初始版本和支持的兼容性级别。
类型 | 建模说明 | 最初发布 | 兼容级别 |
---|---|---|---|
多维 | OLAP 建模构造(多维数据集、维度、度量值)。 | SQL Server 2000 SQL Server 2012 及更高版本 |
1050 1100 |
Power Pivot | 最初是一个外接程序,但现已完全集成到 Excel。 表格模型基础结构。 不支持 API 和脚本。 | SQL Server 2008 R2 | N\A |
表格 | 关系建模构造(模型、表、列)。 在内部,元数据是从 OLAP 建模构造(多维数据集、维、度量值)继承的。 代码和脚本使用 OLAP 元数据。 | SQL Server 2012 SQL Server 2014 |
1050 1103 |
SQL Server 2016 及更高版本中的表格 | 关系建模构造 (模型、表、列) ,在表格 模型脚本语言 (TMSL) 和 表格对象模型 (TOM) 代码中表达的表格元数据对象定义。 | SQL Server 2016 SQL Server 2014 SQL Server 2019 SQL Server 2022 |
1200 1400 1500 1600 |
Azure Analysis Services 1 中的表格 | 关系建模构造 (模型、表、列) ,在表格 模型脚本语言 (TMSL) 和 表格对象模型 (TOM) 代码中表达的表格元数据对象定义。 | 2016 | 1200 及更高 |
Power BI Premium 2 中的表格 | 关系建模构造 (模型、表、列) ,在表格 模型脚本语言 (TMSL) 和 表格对象模型 (TOM) 代码中表达的表格元数据对象定义。 | 2020 | 1500 及更高 |
[1] Azure Analysis Services支持 1200 和更高兼容级别的表格模型。 但是,并非所有本文中所述的表格建模功能都受支持。 虽然创建表格模型并将其部署到Azure Analysis Services与本地模型大致相同,但了解差异很重要。 若要了解详细信息,请参阅什么是Azure Analysis Services?
[2] Power BI Premium容量支持 1500 及更高兼容级别的表格模型。 但是,并非所有本文中所述的表格建模功能都受支持。 虽然创建表格模型并将其部署到Power BI Premium与在本地或 Azure 中大致相同,但了解差异很重要。 若要了解详细信息,请参阅 analysis Services in Power BI Premium
兼容性级别非常重要。 它是指 Analysis Services 引擎中特定于版本的行为。 若要了解详细信息,请参阅 表格模型兼容级别 和 多维模型兼容性级别
模型功能
下表总结了模型级别的功能可用性。 请查看此列表,以确保你想要使用的功能可在你打算生成的模型类型中使用。
功能 | 多维 | 表格 |
---|---|---|
操作 | 是 | 否 |
聚合 | 是 | 否 |
计算列 | 否 | 是 |
计算度量值 | 是 | 是 |
计算表 | 否 | 是3 |
自定义程序集 | 是 | 否 |
自定义汇总 | 是 | 否 |
默认成员 | 是 | 否 |
显示文件夹 | 是 | 是3 |
Distinct Count | 是 | 是(通过 DAX) |
钻取 | 是 | 是 (取决于客户端应用程序) |
层次结构 | 是 | 是 |
KPI | 是 | 是 |
链接对象 | 是 | 是(链接表) |
M 表达式 | 否 | 是3 |
多对多关系 | 是 | 没有 (但 1200 和更高兼容级别的 双向交叉筛选器) |
命名集 | 是 | 否 |
不规则层次结构 | 是 | 是3 |
父子层次结构 | 是 | 是(通过 DAX) |
分区 | 是 | 是 |
透视 | 是 | 是 |
查询交叉 | 否 | 是4 |
行级安全性 | 是 | 是 |
对象级安全性 | 是 | 是3 |
半累加性度量值 | 是 | 是 |
翻译版本 | 是 | 是 |
用户定义的层次结构 | 是 | 是 |
写回 | 是 | 否 |
[3] 有关兼容性级别之间的功能差异的信息,请参阅 Analysis Services 中表格模型的兼容级别。
[4] - SQL Server 2019 及更高版本的 Analysis Services,Azure Analysis Services。
数据注意事项
表格和多维模型使用从外部源导入的数据。 在确定哪种模型类型最适合你的数据时,需要导入的数据量和数据类型是一个主要考虑因素。
压缩
表格解决方案和多维解决方案都使用数据压缩,从而相对于您要从中导入数据的数据仓库来说,降低了 Analysis Services 数据库的大小。 因为实际压缩将基于基础数据的特性而有所不同,所以,无法精确了解在查询中处理和使用数据后解决方案将获取的磁盘和内存量。
许多 Analysis Services 开发人员都是这样估计的,多维数据库的主要存储量大约是原始数据大小的三分之一。 表格数据库有时可以获得更高的压缩率,大约是十分之一的大小,尤其在大多数数据都是从事实数据表导入时。
模型和资源偏差大小(内存中或磁盘)
Analysis Services 数据库的大小仅受可用于运行该数据库的资源的约束。 在数据库可增长到的大小方面,模型类型和存储模式也发挥了重要作用。
表格数据库在内存中运行,或者在 DirectQuery 模式下运行,这种模式可将查询执行卸载到外部数据库。 对于表格内存中分析,数据库完全存储在内存中,这意味着必须有足够的内存,不仅要加载所有数据,还要有为支持查询而创建的其他数据结构。
DirectQuery 在 SQL Server 2016 中进行了改进,其限制比以前更少,性能更好。 为存储和查询执行利用后端关系数据库能比以前更可靠地生成大规模表格模型。
过去,生产中最大的数据库是多维的,处理和查询工作负载在专用硬件上独立运行,每个都针对各自的用途进行了优化。 表格数据库正在快速发展,DirectQuery 中的新改进功能将进一步弥补差距。
对于多维卸载数据存储,可通过 ROLAP 执行查询。 在查询服务器上,可以缓存行集,并将过时行集分页。有效且均衡地使用内存和磁盘资源通常指导客户使用多维解决方案。
如果有一定的负荷压力,针对任一解决方案类型的磁盘和内存要求将随着 Analysis Services 缓存、存储、扫描和查询数据而提高。 有关内存分页选项的详细信息,请参阅 Memory Properties。 有关可伸缩性的详细信息,请参阅 High availability and Scalability in Analysis Services。
支持的数据源
表格模型可以从关系数据源、数据馈送和某些文档格式导入数据。 还可以将 OLE DB for ODBC 提供程序与表格模型配合使用。 兼容级别为 1400 和更高级别的表格模型显著增加了可从中导入的数据源类型。 这是因为在 Visual Studio 中引入了新式获取数据数据查询和导入功能,并利用 M 公式查询语言。
多维解决方案可以使用 OLE DB 本机和托管访问接口从关系数据源导入数据。
若要查看可导入到各模型中的外部数据源的列表,请参阅以下主题:
查询和脚本语言支持
Analysis Services 包括 MDX、DMX、DAX、XML/A、ASSL 和 TMSL。 对这些语言的支持根据模型类型的不同而异。 如果需要考虑查询和脚本语言要求,请查看以下列表。
表格模型数据库支持 DAX 计算、DAX 查询和 MDX 查询。 在所有兼容级别都是如此。 对于兼容级别 1050-1103,脚本语言是基于 XMLA) 的 ASSL (;对于兼容级别 1200 及更高,则通过 XMLA) 使用 TMSL (。
多维模型数据库支持 MDX 计算、MDX 查询、DAX 查询和 ASSL。
表格和多维模型和数据库支持 Analysis Services PowerShell。
所有数据库都支持 XMLA。
安全功能
可在数据库级别保护所有 Analysis Services 解决方案。 更精细的安全选项会随模式的不同而不同。 如果解决方案需要精细的安全设置,则请查看以下列表以确保要生成的解决方案类型中支持所需的安全级别:
设计工具
具有 Analysis Services 项目扩展的 Visual Studio 也称为 SQL Server Data Tools (SSDT) ,是用于创建多维和表格解决方案的主要工具。 此创作环境使用 Visual Studio shell 提供设计器工作区、属性窗格和对象导航。 表格模型还支持通过开源和第三方工具进行模型创作。 若要了解详细信息,请参阅 Analysis Services 工具。
客户端应用程序支持
一般来说,表格和多维解决方案支持使用一个或多个 Analysis Services 客户端库 (MSOLAP、AMOMD、ADOMD) 的客户端应用程序。 例如,Excel、Power BI Desktop和自定义应用程序。 Power BI 等数据可视化和分析服务完全支持表格和多维解决方案。
如果您使用的是 Reporting Services,则报表功能的可用性会随版本和服务器模式的不同而不同。 为此,要生成的报表类型可能会影响您选择安装的服务器模式。
Power View 是一种在 SharePoint 中运行的Reporting Services创作工具,在 SharePoint 2010 场中部署的报表服务器上可用。 可用于此报表的唯一数据源类型是 Analysis Services 表格模型数据库或 Power Pivot 工作簿。 这意味着您必须具有表格模式服务器或 Power Pivot for SharePoint 服务器才能托管此类报表使用的数据源。 不能将多维模型用作 Power View 报表的数据源。 必须创建 Power Pivot BI 语义模型连接或Reporting Services共享数据源,以用作 Power View 报表的数据源。
Report Builder和报表设计器可以使用任何 Analysis Services 数据库,包括 Power Pivot for SharePoint 上托管的 Power Pivot 工作簿。
所有 Analysis Services 数据库都支持 Excel 数据透视表。 无论是使用表格 .database、多维数据库还是 Power Pivot 工作簿,Excel 功能都是相同的,尽管多维数据库仅支持写回。