联机分析处理(OLAP)是一种组织大型业务数据库以执行复杂计算和趋势分析的技术。 此方法支持复杂的查询,而不会中断事务系统。
业务事务和记录存储在称为 联机事务处理(OLTP)数据库的数据库中,这些数据库针对单个记录条目进行了优化。 这些数据库保存有价值的信息,但它们不是用于分析的,因此数据检索非常耗时且困难。
为了解决此问题,OLAP 系统有效地从数据中提取商业智能。 OLAP 数据库针对大量读取和低写入任务进行了优化。 它们经过建模和清理,以便进行有效的分析。 OLAP 数据库通常会保留历史数据以供时序分析。
OLAP 系统传统上使用多维数据集来组织数据,以支持复杂查询和分析。 下图显示了传统的 OLAP 系统体系结构。
随着技术进步,数据和计算规模的增加,OLAP 系统将转换为 Microsoft Fabric 支持的大规模并行处理(MPP)体系结构。 有关详细信息,请参阅 Fabric 分析数据存储。
下图显示了新式 OLAP 系统体系结构。
语义建模
语义数据模型是一个概念模型,用于描述它包含的数据元素的含义。 组织通常有自己的项术语,有时这些术语具有同义词。 组织可能也对同一术语有不同的含义。 例如,库存数据库可能会使用资产 ID 和序列号跟踪一段设备。 但销售数据库可能会将序列号称为资产 ID。 没有描述关系的模型,就没有简单的方法来关联这些值。
语义建模提供数据库架构的抽象级别,以便用户不需要知道基础数据结构。 最终用户无需对基础架构执行聚合和联接即可轻松查询数据。 列通常重命名为更易用的名称,以使数据的上下文和含义更加明显。
语义建模主要适用于读取密集型方案,例如分析和商业智能(OLAP),而不是写入密集型事务数据处理(OLTP)。 语义建模适用于读写频繁的场景,因为语义层通常具有以下特征:
- 设置了聚合行为,以便报告工具可以正确显示它们。
- 定义了业务逻辑和计算。
- 包括了面向时间的计算。
- 数据通常是从多个源集成的。
- 支持实时分析。
传统上,由于这些原因,语义层放置在数据仓库之上。
有两种主要类型的语义模型:
表格模型 使用关系建模构造,例如模型、表和列。 在内部,元数据继承自 OLAP 建模构造,例如多维数据集、维度和度量值。 代码和脚本使用 OLAP 元数据。
多维模型 使用传统的 OLAP 建模构造,例如多维数据集、维度和度量值。
Analysis Services 和 Fabric 提供必要的基础结构和工具来有效实现语义建模。
示例用例
组织将数据存储在大型数据库中。 它希望使此数据可供业务用户和客户创建自己的报表并进行分析。
他们可以为这些用户直接访问数据库,但此选项有缺点,包括安全管理和访问控制。 用户可能难以理解数据库的设计,包括表和列的名称。 此选项要求用户知道要查询哪些表、应如何联接这些表以及如何应用其他业务逻辑来获取正确的结果。 用户还需要知道查询语言(如 SQL)。 通常,此选项会导致多个用户报告相同的指标,但结果不同。
更好的选择是将用户所需的所有信息封装到语义模型中。 用户可以使用所选的报告工具更轻松地查询语义模型。 语义模型提供的数据来自数据仓库,可确保所有用户都查看单一事实来源。 语义模型还提供用户友好的表和列名称,定义表之间的关系,包括说明和计算,并强制实施行级别安全性。
语义建模的典型特征
语义建模和分析处理往往具有以下特征。
要求 | DESCRIPTION |
---|---|
图式 | 写入时架构,强制实施 |
使用事务 | 否 |
锁定策略 | 没有 |
可更新 | 否,通常需要重新计算多维数据集 |
可追加 | 否,通常需要重新计算多维数据集 |
工作量 | 高频读取,只读的 |
索引 | 多维索引 |
基准大小 | 从较小到非常大 |
型号 | 表格或多维 |
数据形状 | 立方体、星形或雪花架构 |
查询灵活性 | 高度灵活 |
规模 | 大型,数百 GB 到数 PB |
何时使用此解决方案
请考虑对以下方案使用 OLAP:
需要快速运行复杂的分析和按需查询,而不会对 OLTP 系统产生负面影响。
你想要为业务用户提供一种从数据生成报表的简单方法。
你希望提供多个聚合,使用户能够快速、一致地获得结果。
OLAP 对于针对大量数据应用聚合计算特别有用。 OLAP 系统针对读取密集型方案进行了优化。 OLAP 还允许用户将多维数据分段成可在两个维度(例如数据透视表)中查看的切片。 或者,他们可以按特定值筛选数据。 无论数据是否跨多个数据源分区,用户都可以执行这些过程,这称为对数据进行切片和切块。 用户无需了解传统数据分析的详细信息即可轻松浏览数据。
语义模型可以帮助业务用户抽象关系复杂性,并且更轻松地快速分析数据。
挑战
OLAP 系统还会产生挑战:
从各种源流入的事务会不断更新 OLTP 系统中的数据。 OLAP 数据存储通常以较慢的时间间隔刷新,具体取决于业务需求。 OLAP 系统适合战略业务决策,而不是立即响应更改。 还必须规划一定级别的数据清理和业务流程来使 OLAP 数据存储保持最新。
与 OLTP 系统中的传统规范化关系表不同,OLAP 数据模型往往具有多维性。 因此,很难或不可能将它们直接映射到实体关系或面向对象的模型,其中每个属性对应于一列。 相反,OLAP 系统通常使用星型或雪花型架构,而不是传统的规范化。
Azure 中的 OLAP
在 Azure 中,OLTP 系统(如 Azure SQL 数据库)中的数据将复制到 OLAP 系统(如 Fabric 或 Analysis Services) 中。 数据浏览和可视化工具(如 Power BI、Excel 和非Microsoft选项)连接到 Analysis Services 服务器,为用户提供对建模数据的高度交互和视觉丰富的见解。 可以使用 SQL Server Integration Services 协调从 OLTP 系统到 OLAP 系统的数据流。 若要实现 SQL Server Integration Services,请使用 Azure 数据工厂。
以下 Azure 数据存储满足 OLAP 的核心要求:
SQL Server Analysis Services 为商业智能应用程序提供 OLAP 和数据挖掘功能。 可以在本地服务器上安装 SQL Server Analysis Services,也可以在 Azure 中的虚拟机(VM)中托管它。 Analysis Services 是一种完全托管的服务,提供与 SQL Server Analysis Services 相同的主要功能。 Analysis Services 支持连接到云中和组织中的 本地的各种数据源 。
群集列存储索引在 SQL Server 2014 及更高版本以及 SQL 数据库中可用。 这些索引非常适合 OLAP 工作负荷。 从 SQL Server 2016(包括 SQL 数据库)开始,可以通过可更新的非聚集列存储索引利用混合事务和分析处理(HTAP)。 使用 HTAP 在同一平台上执行 OLTP 和 OLAP 处理。 此方法无需多个数据副本以及单独的 OLTP 和 OLAP 系统。 有关详细信息,请参阅 列存储技术在实时操作分析中的应用。
关键选择条件
若要缩小选择范围,请回答以下问题:
是否想要托管服务而不是管理自己的服务器?
是否需要Microsoft Entra ID 进行安全身份验证?
是否需要将来自多个源的数据集成到 OLTP 数据存储之外?
是否要进行实时分析?
Fabric Real-Time Intelligence 是 Fabric 中的一项强大服务,可用于提取见解并动态可视化数据。 它为事件驱动方案、流数据和数据日志提供端到端解决方案。 无论是管理 GB 级还是 PB 级数据,所有正在流动的组织数据都聚合在实时中心。
是否需要使用预先聚合的数据,例如提供语义模型,以便更轻松地为业务用户进行分析?
如果是,请选择一个支持多维数据集或表格语义模型的选项。
提供聚合以帮助用户一致地计算数据聚合。 如果有多个列跨多个行,预聚合数据还可以提供显著的性能提升。 可以在多维多维数据集或表格语义模型中预先聚合数据。
功能矩阵
下表总结了这些服务之间功能的主要差异:
- 织物
- 分析服务
- SQL Server Analysis Services
- 包含列存储索引的 SQL Server
- 具有列存储索引的 SQL 数据库
常规功能
能力 | 织物 | 分析服务 | SQL Server Analysis Services | 包含列存储索引的 SQL Server | 具有列存储索引的 SQL 数据库 |
---|---|---|---|---|---|
是托管服务 | 是的 | 是的 | 否 | 否 | 是的 |
MPP | 是的 | 否 | 否 | 否 | 否 |
支持多维数据集 | 否 | 否 | 是的 | 否 | 否 |
支持表格语义模型 | 是的 | 是的 | 是的 | 否 | 否 |
轻松集成多个数据源 | 是的 | 是的 | 是的 | 否 1 | 否 1 |
支持实时分析 | 是的 | 否 | 否 | 是的 | 是的 |
需要一个从源复制数据的过程 | 可选 3 | 是的 | 是的 | 否 | 否 |
Microsoft Entra 集成 | 是的 | 是的 | 否 | 否 2 | 是的 |
[1] SQL Server 和 SQL 数据库无法从多个外部数据源进行查询和集成,但可以使用 SQL Server Integration Services 或 Azure 数据工厂生成管道来执行这些函数。 Azure VM 托管的 SQL Server 具有更多选项,例如链接服务器和 PolyBase。 有关详细信息,请参阅 选择数据管道编排技术。
[2] Microsoft Entra 帐户不支持连接到 Azure VM 托管的 SQL Server。 请转而使用 Windows Server Active Directory 帐户。
[3] Fabric 通过 Azure 数据工厂管道或镜像将数据移动到 OneLake,从而灵活地集成数据源。 还可以创建快捷方式或对数据流执行实时分析,而无需移动数据。
可伸缩性功能
能力 | 织物 | 分析服务 | SQL Server Analysis Services | 包含列存储索引的 SQL Server | 具有列存储索引的 SQL 数据库 |
---|---|---|---|---|---|
用于实现高可用性的的冗余区域服务器 | 是的 | 是的 | 否 | 是的 | 是的 |
支持查询横向扩展 | 是的 | 是的 | 否 | 是的 | 是的 |
动态扩展性,提升规模 | 是的 | 是的 | 否 | 是的 | 是的 |