主页
topics
什么是 OLAP?
大多数业务数据都具有多个维度,即数据被分解为多个类别,以便进行呈现、跟踪或分析。例如,销售数据可能有几个维度,分别与地点(大区、国家/地区、州/省、商店)、时间(年、月、周、日)、商品(服装、男装/女装/童装、品牌、类型)等相关。
但在数据仓库或数据湖中,数据集存储在表中,每个表一次只能将数据组织到其中的两个维度中。OLAP 从多个关系数据集中提取数据并将其重组为多维格式,从而实现非常快速的处理并进行深入透彻的分析。
浏览免费的 O'Reilly 电子书,以了解如何开始使用 Presto,一款用于数据分析的开源 SQL 引擎。
作为大多数 OLAP 系统的核心,OLAP 多维数据集是一种基于数组的多维数据库,它可以比传统的关系数据库更快、更高效地处理和分析多个数据维度。
关系数据库表的结构类似电子表格,以二维逐行逐列的格式存储单条记录。数据库中的每个数据“事实”都位于两个维度(行和列)的交叉点上,例如区域和总销售额。
当然,SQL 和关系数据库报告工具可以查询、报告和分析表中存储的多维数据,但其性能会随着数据量的增加而下降。而且,需要进行大量的工作来重新组织结果以关注不同的维度。
这就是 OLAP 多维数据集的用武之地。OLAP 多维数据集通过附加层扩展了单个表,每层都添加了附加维度 – 通常是维度“概念层次结构”中的下一个级别。例如,多维数据集的顶层可以按地区组织销售数据;其他层可以是按国家/地区、州/省、城市,甚至是具体的商店来组织。
理论上,一个多维数据集可以包含无限多个层。(表示三个以上维度的 OLAP 多维数据集有时称为超多维数据集)。这些层中也可以有更小的多维数据集。例如,每个商店层都可以包含按销售人员和产品排列销售额的多维数据集。在实践中,数据分析师会创建只包含所需层数的 OLAP 多维数据集,以实现最佳分析和性能。
向下钻取操作通过以下两种方法之一将不太详细的数据转换为更详细的数据:在概念层次结构中向下移动,或向多维数据集添加新维度。例如,如果您查看组织日历或财政季度的销售数据,则可以向下钻取以查看每个月的销售额,并在“时间”维度的概念层次结构中向下移动。
累积与向下钻取功能相反,它通过在概念层次结构中向上移动或减少维数来聚合 OLAP 多维数据集上的数据。例如,您可以通过查看每个国家或地区(而不是每个城市)的数据在“位置”维度的概念层次结构中向上移动。
切片操作通过从主 OLAP 多维数据集中选择一个维度来创建子多维数据集。例如,您可以通过突出显示组织的第一个财政季度或日历季度(时间维度)的所有数据来执行切片。
切块操作通过选择 OLAP 主多维数据集中的几个维度来隔离一个子多维数据集。例如,您可以按组织的日历或财政季度(时间维度)以及美国和加拿大(地点维度)突出显示所有数据,从而执行切块操作。
透视功能可以旋转当前的多维数据集视图,显示全新的数据表示形式 – 启用数据的动态多维视图。OLAP 数据透视功能可与电子表格软件(如 Microsoft Excel)中的数据透视表功能相媲美,但 Excel 中的数据透视表可能有一些难度,OLAP 数据透视相对更易于使用(需要较少的专业知识),并且具有更快的响应时间和查询性能。
直接使用多维 OLAP 多维数据集的 OLAP 被称为多维 OLAP 或 MOLAP。同样,就大多数用途而言,MOLAP 是最快、最实用的多维数据分析类型。
但是,在某些情况下,有两种其他类型的 OLAP 可能更可取:
ROLAP 即关系 OLAP,是一种多维数据分析方法,可直接对关系表上的数据进行操作,而无需先将数据重新组织到多维数据集中。
如前所述,SQL 是一种用于多维查询、报表和分析的完美工具。但是,所需的 SQL 查询很复杂,性能会受到拖累,并且生成的数据视图是静态的,无法通过透视来表示不同的数据视图。当直接处理大量数据的能力比性能和灵活性更重要时,ROLAP 是最佳选择。
HOLAP 即混合 OLAP,试图在单个 OLAP 架构内的关系数据库和多维数据库之间创建最佳分工。关系表包含大量数据,而 OLAP 多维数据集则用于聚合和推测处理。HOLAP 需要同时支持 MOLAP 和 ROLAP 的 OLAP 服务器。
HOLAP工具可以“钻取”多维数据集,深入到关系表,这为快速处理数据和灵活访问铺平了道路。这种混合系统可以提供更好的可扩展性,但在访问关系数据源时不可避免地会减慢速度。此外,其复杂的架构通常需要更频繁的更新和维护,因为它必须存储和处理来自关系数据库和多维数据库的所有数据。出于这个原因,HOLAP 最终可能会变得更加昂贵。
联机事务处理 (OLTP) 是指专注于面向事务的数据和应用程序的数据处理方法和软件。
OLAP 和 OLTP 之间的主要区别在于名称:OLAP 本质上是分析性的,而 OLTP 是事务性的。
OLAP 工具旨在对数据仓库中的数据(其中包含事务数据和历史数据)进行多维分析。事实上,OLAP 服务器通常是数据仓库解决方案的中间分析层。OLAP 的常见用途包括数据挖掘和其他商业智能应用程序、复杂的分析计算和预测场景,以及业务报告功能(如财务分析、预算编制和预测规划)。
OLTP 旨在通过尽可能快速准确地处理最近的事务来支持面向事务的应用程序。OLTP 的常见用途包括 ATM、电子商务软件、信用卡支付处理、在线预订、预订系统和记录保存工具。
要深入了解这些方法之间的区别,请查看“OLAP vs. OLTP: What's the Difference?”
OLAP 可将企业数据转换为最实用的多维分析格式,使公司能够最大限度地发挥其企业数据的潜力。反过来,这也更便于识别有价值的业务洞察分析。但是,如果这些系统都在内部运行,其扩展潜力就会受到限制。
基于云的 OLAP 服务成本更低且更易于设置,对于预算有限的小型企业或初创公司更具吸引力。大型企业可以利用基于云的数据仓库的巨大潜力,这些数据仓库使用大规模并行处理 (MPP),能够以无与伦比的速度执行复杂的分析。因此,公司能够以云的速度和规模使用 OLAP,分析大量数据,而无需将其从云数据仓库中移出。
康斯丹酒店集团是一家豪华酒店集团,在印度洋的岛屿上拥有九家酒店。然而,由于岛与岛之间通信不畅,因而产生了一个个组织孤岛,每个度假村的业务数据都是孤立的。该组织构建了一个云数据仓库和分析架构,将所有本地部署的系统和工具与一个基于云的中央数据存储库连接起来。在此过程中,该公司在整个集团范围内获得了必要的洞察分析,从而能够利用高级预测性分析技术并实施 OLAP 系统。
云架构中的 OLAP 是为未来构建的快速且经济高效的解决方案。制作多维数据集后,团队可以使用现有的商业智能工具立即连接 OLAP 模型,并从云数据中获取交互式实时洞察分析。