公司选择kylin原因

kylin实现大数据近实时多维度分析

现状
目前大数据存在需要大量行为数据与用户标签数据的多维度的复杂分析统计场景,此场景同时有大量行为数据(事实数据)与多维度分析数据。需要在近实时查询的情况下快速得到结果帮助公司进行分析和决策。

现在猎游大数据的数据架构为:
mysql:
1)核心的用户标签数据(如用户渠道、平台、性别、消费层级、身份等)
2)核心交易明细数据
3)已汇总的统计结果数据
Elasticsearch:
1)一定维度的行为汇聚数据,可实现海量数据毫秒级聚合查询
hive(数据仓库):
1)TB级大数据原始数据
2)各维度汇总结果数据
3)用户画像数据

基于以上数据架构,大数据会根据需求将数据分开存储在适应的服务中。但存在一定缺陷:
1、数据仓库只能做数据源调度,无法近实时查询数据仓库进行分析,仅能作为数据中心进行离线处理,将汇总结果存储在其他架构中。
2、如需要用户行为的去重、累加等数据,将存储在Elasticsearch上但无法进行关联查询,即如果增加分析维度需要将Elasticsearch上数据进行重新设计和重跑计算,不利于数据分析迭代。
3、mysql不适用于多表联合聚合查询,当分析角度较多时性能损耗过大。
4、当同时需要用户行为数据及用户标签数据进行分析时,mysql和Elasticsearch都不能适用于当前场景。

Kylin介绍:
Apche Kylin 是 Hadoop 大数据平台上的一个开源 OLAP 引擎。它采用多维立方体(Cube)预计算技术,可以将某些场景下的大数据 SQL 查询速度提升到亚秒级别。相对于之前的分钟乃至小时级别的查询速度。
该框架依赖于Hive/Spark(目前本公司已使用Hive)、Hbase。以上两个框架大数据平台已有使用。接入成本较低。
原理为通过hive将海量事数据通过统计转化为多维度数据模型表(星型模型、雪花模型等),通过Kylin 使用字典编码(Dictionary-coder)将维度数据进行压缩生成维度字典。然后将事实维度数据转换为Kylin的cube数据模型,实现预计算。并可使用标准 SQL 查询。

选择Kylin的原因:
1)数据转化成本较低,在数据仓库数据转换到Kylin的cube模型的中间依赖服务已有且较为完善。
2)数据平台接入简单,可用标准sql进行调用,对数据平台整体查询介入平滑且易测试。
3)可实现秒级至亚秒级海量数据多维度查询。

目前较为主流的存储引擎如下:
存储引擎
优势
劣势
MySQL

  1. 具有完备的事务功能,可以对数据进行更新。
  2. 支持 SQL,开发成本低。
  3. 横向扩展成本大,存储容易成为瓶颈;
  4. 实时数据的更新和查询频率都很高,线上单个实时应用请求就有 1000+ QPS;使用 MySQL 成本太高。

Elasticsearch

  1. 吞吐量大,单个机器可以支持 2500+ QPS,并且集群可以快速横向扩展。
  2. Term 查询时响应速度很快,单个机器在 2000+ QPS时,查询延迟在 20 ms以内。
  3. 没有原生的 SQL 支持,查询 DSL 有一定的学习门槛;2. 进行聚合运算时性能下降明显。
    3 .无法关联查询

Druid

  1. 支持超大数据量,通过 Kafka 获取实时数据时,单个作业可支持 6W+ QPS;
  2. 可以在数据导入时通过预计算对数据进行汇总,减少的数据存储。提高了实际处理数据的效率;
  3. 有很多开源 OLAP 分析框架。实现如 Superset。
  4. 预聚合导致无法支持明细的查询;
  5. 无法支持 Join 操作;
  6. Append-only 不支持数据的修改。只能以 Segment 为单位进行替换。
    Cellar
  7. 支持超大数据量,采用内存加分布式存储的架构,存储性价比很高;
  8. 吞吐性能好,经测试处理 3W+ QPS 读写请求时,平均延迟在 1ms左右;通过异步读写线上最高支持 10W+ QPS。
  9. 接口仅支持 KV,Map,List 以及原子加减等;
  10. 单个 Key 值不得超过 1KB ,而 Value 的值超过 100KB 时则性能下降明显。

Presto

  1. 可以将多个数据源的数据进行合并,可以跨越整个组织进行分析。
  2. 直接从HDFS读取数据,在使用前不需要大量的ETL操作。
    3.支持标准SQL
    1.纯内存计算,没有容错,一个task失败就整个query fail
    2.查询不保证实时
    Kylin
  3. 用户为百亿以上数据集定义数据模型并构建立方体
  4. 亚秒级的查询速度,同时支持高并发
  5. 为Hadoop提供标准SQL支持大部分查询功能
    1.查询模式比较固定
    2.要避免维度灾难

参考:
https://www.jianshu.com/p/aae410e5a2fe《Apache Kylin在美团数十亿数据OLAP场景下的实践》
https://www.jianshu.com/p/4f4417ef790a《Apache Kylin 概览》

你可能感兴趣的:(Kylin)