什么是 OLAP

Author
Kyligence
2022年 7月 07日

一 、什么是联机分析处理(OLAP)

OLAP(联机分析处理,Online Analytical Processing)是一种快速应答多维分析查询的方法。通过将大型数据集(或独立数据集)上卷可构建一个多维数据库,即 OLAP 模型(Cube)。此 OLAP 模型针对数据分析进行了优化,支持用户从不同视角对数据进行”切片和切块(slicing and dicing)”,从而实现了简洁易用的查询体验。

多年来,OLAP 已广泛应用于商业智能分析,特别是大数据领域。现代 BI 工具和复杂大数据基础架构一直面临着数据处理时间过长、数据查询缓慢的难题。实践证明,通过 OLAP 和 OLAP 模型对数据进行聚合和预计算将能有效解决该难题。

OLAP与OLTP的区别

OLAP 和 OLTP(联机事务处理,Online Transaction Processing)是两个完全不同的概念。

当今的数据处理大致可以分成两大类:OLTP 和 OLAP。OLAP 是数据仓库系统的主要应用,支持复杂的分析操作,侧重于决策支持,能够提供直观易懂的查询结果。

OLAP 技术支持分析人员、管理人员或决策人员从多角度出发,通过快速、一致、交互地获取信息,实现对数据的深入洞察。满足决策支持或多维环境特定的查询和报表需求,其技术核心是 “维度”。(dimensionality)这个概念。

OLTP 主要用于记录某类业务事件的发生,例如购买行为。当行为产生后,系统会记录何人在何时、在何地、做了何事。如需更新数据,可增删改数据库中的一行(或多行)数据,这样的处理操作对实时性和稳定性要求高,才能确保数据及时成功更新。企业中常见的业务系统(例如 ERP、CRM 及 OA 等系统)都属于 OLTP。

OLAP架构

OLAP 架构经优化能够快速计算多维数据。OLAP 数据库通常被称为“模型”,以便帮助理解多维数据。

维度

“维度”(dimension)是人们观察客观世界的视角,是一种高级别的类型分类。“维度”通常包含层级关系,这种层级关系有时可能相当复杂。通过将一个实体的多项重要属性定义为多个维度,用户可以对不同维度上的数据进行比较比较。因此 OLAP 也可以说是多维数据分析工具的集合。

OLAP 模型

OLAP 的目标是通过预计算和预聚合数据来加快数据分析。数据经过预聚合和预计算后,被存储在 OLAP 数据库或 OLAP 模型中。

譬如,您可能希望按照产品类别、时间周期及产品颜色来汇总销售数据,以便比较销售结果并快速获得洞见。此时,模型(从理论上看)的架构如下图所示:

OLAP操作

OLAP 的基本操作包括上钻(drill up)、下钻(drill down)、切片(slice)、切块(dice)及旋转(pivot)等。

  • 钻取:改变维度的层次,变换分析的粒度。它包括上卷(roll up)和下钻操作。上卷是指在某一维上将低层次的细节数据概括到高层次的汇总数据,或者减少维数。而下钻则相反,是指从汇总数据深入到细节数据进行观察或增加新的维度。
  • 切片和切块:在一部分维上选定值后,与度量数据在剩余维上的分布相关。如果剩余的维只有两个,则是切片;如果剩余的结果集是子集,就是切块。
  • 旋转:变换维度的方向,即在表格中重新安排维度的位置,例如行列互换。

OLAP 有多种实现方法,按照存储数据方式的不同,可分为 ROLAP、MOLAP 和 HOLAP 三大类。

OLAP 与其他方法的区别

除 OLAP 之外,下文还列出了其他一些尝试解决大数据痛点的方法,以及这些方法在应对海量数据时的一些局限。

  • 内存

将中间结果放在内存中,以便在后续查询时复用。此方法基于两点:

1)内存读取速度很快,因此查询速度也会很快;2)通过类似于“缓存”的机制复用之前的查询结果来加快相似查询的响应速度。

  • 大规模并行处理(MPP)数据库

采用分而治之的策略,在较小的数据块上对数据进行并行处理。这一策略非常有效,Hadoop 也是基于类似的基本概念,但它也有一定的局限性,比如当数据通过网络在系统内部移动,或多名用户试图在同一系统上执行不同的操作时,并发性都会受到影响。

  • 数据虚拟化

这又是一个热门理念,作为一种理想化的解决办法,可以构建一个终极数据平台,但援引纽约一家顶级银行的 CTO 的说法,至今此类技术“都不起作用”。此类技术逃不开这一问题:无法一直从各处仅获取小型聚合数据集,再组合在一个虚拟层上。

  • 云数据仓库

从数据湖中提取数据,然后将其加载到基于关系型数据库(RDBMS)的数据仓库中进行分析。这种方案需要额外的 ETL 和维护工作,成本高昂。由于云上数据集迁移到关系型数据库的成本太高,有些公司甚至还创建了一个“意大利面条式” 的 ETL 流程,从关系型数据库中获取数据,再将数据加载回数据湖上与其他数据集进行关联。这种方法堪称数据运维团队的噩梦。

二、OLAP用例

  • 财务领域:

通过将财务数据与运营、营销和销售数据对齐,用户可以了解影响净利润和亏损的各项因素,驱动决策。OLAP 模型通过存储常用的计算,例如月销售额和日销售额,帮助用户快速分析数据。

  • 营销领域:

营销人员利用可视化分析追踪中央数据平台上关于宣传活动的各项指标。实时追踪宣传活动、衡量每项工作的绩效,以及为当前的宣传活动制定计划。这些数据让营销分析师能够更深刻地了解整体绩效,并提供了可视化数据,方便与股东共享。通过 OLAP 关联不同营销渠道的数据,助力用户从相关分析中得出结论。

  • 销售领域:

销售分析师和运营经理使用 BI 仪表板和关键绩效指标来快速访问复杂信息,例如购物篮分析、客户盈利能力及客户生命周期价值。销售经理使用具备报告和可视化功能的仪表板来观察收入目标、销售代表的业绩以及销售渠道的状态。在销售场景中,通过 OLAP 模型能够实现快速查询并且及时洞察商机。

  • 运营领域:

为节省时间和资源,运营经理可以通过分析供应链指标等数据,找到优化流程的方法。此外,还可以利用 BI 来确保满足服务水平协议(SLA),以及改进配送路线。运营团队使用 OLAP 来实现固有流程的自动化和历史数据的定期刷新,从而达到优化流程和释放生产力的目的。

三、OLAP系统的分类

OLAP 系统可分为 ROLAP、MOLAP 及 HOLAP 三种类型,分别代表关系联机分析处理、多维联机分析处理、混合联机分析处理。

  • ROLAP:将分析用的多维数据存储在关系型数据库中,并根据应用的需要,有选择地定义一批实视图,这些实视图也以表的形式存储在关系型数据库中。不必将每一个 SQL 查询都作为实视图保存,只定义那些应用频率比较高、计算工作量比较大的查询作为实视图。
  • MOLAP:将 OLAP 分析中所用到的多维数据在物理上存储为多维数组的形式,形成“模型”的结构。维度的属性值被映射成多维数组的下标值或下标的范围,而汇总数据作为多维数组的值被存储在数组的单元中。
  • HOLAP:由于 MOLAP 和 ROLAP 各有优缺点,且它们的结构截然不同,这给分析人员设计 OLAP 结构提出了难题。为此,业界提出了一种新型 OLAP 结构 —— HOLAP,将 MOLAP 和 ROLAP 两种结构的优点相结合。

四、OLAP是否仍具有现实意义?

为什么 OLAP 分析在大数据时代依然具有现实意义?就像 SQL 一样,OLAP 基于坚实的理论,而且时间也已经证明了它的通用性。即使今天,OLAP 依然能够满足我们面临的日益严苛的环境需求。 人们真正抱怨的是老一代的 OLAP 技术,例如 Cognos 和 SSAS 等。这是因为老一代技术需要严格的手动建模,运维工作繁重,数据模型的大小有限制,对架构扩展的支持不太友好。

Apache Kylin™ 的 OLAP 架构

而开源技术(例如 Apache Kylin 及其 商业企业版 Kyligence)将经过验证的经典预计算理论与新型大数据和人工智能技术有机结合起来,创造了增强型 OLAP 的功能。这种现代化的 终极 OLAP 引擎仍然需要数据建模,并引入了 AI 增强引擎来进行模型的创建和维护工作。

五、OLAP的发展方向

我们可以将数据虚拟化、MPP 数据库及云数据仓库解决方法理解为按查询次数付费或“按用量计费”模式,而增强型 OLAP 则可视为按固定费率收费。对于任何需要处理大中型数据量,拥有十个以上用户群的企业而言,固定费率计划的总成本实际上更低。

原因何在?这是因为通过 OLAP 预计算结果集会将您的查询结果保存在模型中,方便后续复用。相比每次相同查询都要单独付费的场景,使用 Kylin/Kyligence 可以反复复用第一次的查询结果,其中带来的成本效益,不言而喻。

随着您数据量的增加,再加上按量计费、其他各种隐性费用(例如割裂的指标、决策被延误/误导等带来的成本)以及这背后复杂的技术实现(例如“性能基于整个集群上的单个用户”),即用即付的模式会导致更高的成本。

这不是说我们应该固步自封或因循守旧,尝试新事物往往是发现更好的运营方式的唯一途径。但另一方面,像 OLAP 这种历经考验的技术,依然有非常强大的潜力待挖掘。

云数据湖上的智能 OLAP 平台

尽管近年来数据湖风头正劲,但由于并发性、延迟性、工作负载管理等问题,数据湖很难满足生产级交付需求,无法达到基于关系型数据库构建的数据仓库所需的程度。

为解决这些问题,建议使用分析查询加速。Kyligence 分布式 OLAP,满足生产级别的查询延迟和并发性需求,并支持直接在数据湖上进行数据分析处理。Kyligence 具备以下优势:

  • 数据湖之上的云原生SQL:专为云对象存储平台优化的云原生架构,支持 AWS S3、Azure Data Lake Storage Gen 2、Google Cloud Storage、华为云对象存储服务等云上数据湖服务。
  • 弹性分布式OLAP:弹性分布式预计算不仅传承了传统 OLAP 的所有优点,同时还受益于分布式计算,具备可扩展性。
  • 统一数据服务:对于模型或明细索引未覆盖的查询,Kyligence 智能查询下压使 OLAP 引擎能将查询下压到源数据所在的 SQL 引擎。通过查询明细数据迅速获取查询结果,满足探索式分析需求。
  • 无缝集成 BI:Kyligence 提供的 SQL 接口支持无缝集成主流 BI,业务人员可使用他们熟悉的 BI 工具进行交互式自助分析。

Kyligence 支持全场景 OLAP(All-Inclusive OLAP),通过有机融合 Apache Kylin 与 ClickHouse,全面覆盖各类分析场景,用户无需维护复杂的数据平台,即可获得统一的查询分析体验。

此外,使用 Kyligence 统一语义层来管理数据,无缝对接主流商业 BI 工具和 Excel 的能力,赋能业务分析人员进行自助式分析。

参考文献

关于 Kyligence

上海跬智信息技术有限公司 (Kyligence) 由 Apache Kylin 创始团队于 2016 年创办,致力于打造下一代企业级智能多维数据库,为企业简化数据湖上的多维数据分析(OLAP)。通过 AI 增强的高性能分析引擎、统一 SQL 服务接口、业务语义层等功能,Kyligence 提供成本最优的多维数据分析能力,支撑企业商务智能(BI)分析、灵活查询和互联网级数据服务等多类应用场景,助力企业构建更可靠的指标体系,释放业务自助分析潜力。

Kyligence 已服务中国、美国、欧洲及亚太的多个银行、证券、保险、制造、零售等行业客户,包括建设银行、浦发银行、招商银行、平安银行、宁波银行、太平洋保险、中国银联、上汽、Costa、UBS、MetLife 等全球知名企业,并和微软、亚马逊、华为、Tableau 等技术领导者达成全球合作伙伴关系。目前公司已经在上海、北京、深圳、厦门、武汉及美国的硅谷、纽约、西雅图等开设分公司或办事机构。

申请试用
关注我们