博客
关于我
[整理] kylin(麒麟)分析型数据仓库
阅读量:420 次
发布时间:2019-03-06

本文共 1560 字,大约阅读时间需要 5 分钟。

Apache Kylin 入门指南:高效多维分析引擎

Apache Kylin 介绍

Apache Kylin 是一个由中国开发者主导并贡献给 Apache 基础的开源项目。作为专注于高效多维数据分析的开源引擎,Kylin 提供了基于 Hadoop/Spark 的 SQL 查询和 OLAP 能力,支持对海量数据进行亚秒级查询。最初由 eBay 开发并开源,其独特的预聚合技术使其在大数据场景中脱颖而出。

OLTP 与 OLAP 的区别

在数据处理领域,OLTP(On-Line Transaction Processing)和 OLAP(On-Line Analytical Processing)是两个常见的概念。

  • OLTP:侧重于实时交易处理,适用于高事务性业务系统,如电商下单、银行转账等。
  • OLAP:关注复杂的数据分析,主要用于数据仓库,支持决策支持和数据可视化。

从应用角度看,OLTP 对事务的要求更高,而 OLAP 则注重数据的综合分析能力。


Kylin 入门

Kylin 的核心优势在于其高效的多维分析能力。通过预聚合技术,Kylin 能够显著提升数据查询速度,使大规模数据的复杂分析成为现实。

Kylin 的预聚合机制

预聚合的核心思想是对常用查询的维度和度量进行提前计算和存储。当用户进行查询时,Kylin 只需从预聚合结果中快速获取所需数据,而无需重新计算。

例如,假设从 MySQL 中查询“日期大于 2020-10-20”且“用户消费金额”等信息,单独处理会非常耗时。但如果我们提前按日期维度对用户消费数据进行每日聚合,并将结果存储在 Kylin 中,查询时只需从预处理好的数据中获取,响应时间大大缩短。


使用 Kylin 的步骤

1. 数据准备

  • 数据源可以是 Hive、Kafka 等。
  • 在 Kylin 中定义数据模型,包括事实表和维度表。

2. 构建 Cube

  • 星形模型:所有维度表直接连接到事实表。
  • 雪花模型:部分维度表通过其他维度表连接到事实表。
  • Cube:由多个维度和度量组成的多维数据集,用于支持复杂查询。

3. 查询

  • 通过 ODBC、JDBC 或 RESTful API 调用 Kylin 进行查询,响应时间可达亚秒级。

Kylin 的优势

1. 预聚合带来的速度提升

  • 预聚合将大规模数据转换为更小的聚合表,减少查询时间。
  • 例如,Hive 查询通常需要几分钟,Kylin 只需几秒即可完成。

2. 支持实时分析

  • Kylin 的实时 OLAP 功能结合 HBase 存储,将实时数据与预聚合结果合并,支持动态分析。

3. 高效的 Cube 构建优化

  • Kylin 采用聚合组和强制维度等技术,显著减少 Cube 的物理维度数量。
  • 建议最多使用 30 个维度,避免维度灾难。

常见问题与优化

1. Cube 构建速度慢

  • Kylin 的 Cube 构建通常需要 10-30 分钟,具体时间取决于数据量和复杂度。
  • 建议通过定时任务(如 crontab 或 Airflow)定期构建 Cube,确保数据的时效性。

2. 如何优化 Cube

  • 强制维度:指定必须包含的字段,减少无效的组合。
  • 聚合组:通过配置聚合组,减少不必要的维度组合。
  • 层级维度:定义层级关系,提升查询效率。

3. 数据存储

  • Kylin 的预聚合结果存储在 HBase 中,支持快速查询。
  • 结合实时数据和预聚合结果,实现实时 OLAP。

结论

Apache Kylin 是一个高效的多维分析引擎,适合大规模数据场景。通过预聚合技术和优化 Cube 构建,Kylin 能够显著提升分析速度,支持实时查询需求。对于需要快速决策支持的业务场景,Kylin 是一个理想的选择。

更多信息,请访问 Apache Kylin 官方文档。

转载地址:http://vhcuz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现max_difference_pair最大差异对算法(附完整源码)
查看>>
Objective-C实现max_heap最大堆算法(附完整源码)
查看>>
Objective-C实现MD5 (附完整源码)
查看>>
Objective-C实现md5算法(附完整源码)
查看>>
Objective-C实现MeanSquareError均方误差算法 (附完整源码)
查看>>
Objective-C实现median filter中值滤波器算法(附完整源码)
查看>>
Objective-C实现memcmp函数功能(附完整源码)
查看>>
Objective-C实现memcpy函数功能(附完整源码)
查看>>
Objective-C实现memoization优化技术算法(附完整源码)
查看>>
Objective-C实现memset函数功能(附完整源码)
查看>>
Objective-C实现merge insertion sort合并插入排序算法(附完整源码)
查看>>
Objective-C实现merge sort归并排序算法(附完整源码)
查看>>
Objective-C实现mergesort归并排序算法(附完整源码)
查看>>
Objective-C实现MidpointIntegration中点积分算法 (附完整源码)
查看>>