Apache Kylin基本原理与常见优化

Apache Kylin是一个开源的分布式OLAP引擎,通过预计算实现高效查询。本文详细介绍了Kylin的基本原理,包括星型模型、预计算、列存储和压缩编码,并探讨了Cube建模优化、HBase存储优化及与其他OLAP引擎如Doris、ES、Druid的对比。重点在于如何通过聚集组、强制维度、层次维度等手段优化Cube建模,减少预计算的cuboid数量,提高查询性能。
摘要由CSDN通过智能技术生成

一、基本原理

Apache Kylin是个开源分布式OLAP引擎,其基本原理是数据立方和预计算

Kylin一般是作为数据仓库的应用层引擎,对业务提供SQL查询分析服务,针对数据维度多、数据基数大的场景,Kylin预计算可以保证在毫秒级时间返回分析结果,查询阶段性能十分出众。

Kylin的相关人员主要分为三种角色:1. 数据用户 2. 数据仓库建模人员 3. 数据平台管理员。数据用户通过BI可视化分析工具或者编写SQL查询Kylin的数据; 数据仓库建模人员维护Kylin元数据,设计如何构建Cube,选择维度、度量;数据平台管理员提供存储和计算平台支持,目前最常见的存储引擎是HBase,计算引擎是Spark。

在这里插入图片描述

1. 基础模型:Star Schema

我们以电商场景为例具体看一下如何设计和构建Kylin Cube。下图是一个典型数据仓库中的星型模型,模型的中心是事实表 fact_sales,模型的周围是五张维度表:dim_date,dim_product, dim_store,dim_promotion,dim_customer,它们通过代理键和事实表相关联;

在这里插入图片描述

在这个星型模型下,有一个需求,“分析电商网站用户在一周的每一天中,更倾向于购买Fresh Fruit还是Candy”;

终端用户用SQL实现如下查询:

SELECT
dim_date.weekday, dim_product.category,
SUM(fact_sales.quantity) AS quantity_sold
FROM fact_sales
JOIN dim_date ON fact_sales.date_key = dim_date.date_key
JOIN dim_product ON fact_sales.product_sk = dim_product.product_sk
WHERE
dim_date.year = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值