Apache Kylin™ Learn

Chap 1 认识 Kylin

Apache Kylin 是来自 eBay 的中国人韩卿 @lukehq 领导的团队开发的一个 OLAP 分析引擎,这是 ebay 历史上第一次开源并贡献给 apache 基金会的项目。该项目于 2015年成为 Apache 顶级项目。Kylin 的性能奇高,是 Hive 的 N 倍!

Kylin(http://kylin.io

作为一套旨在对Hadoop环境下分析流程进行加速、且能够与SQL兼容性工具顺利协作的解决方案,Kylin 成功将 SQL接口与多维分析机制(OLAP) 引入Hadoop,旨在对规模极为庞大的数据集加以支持。

On-Line Analytical Processing

图片好好描述kylin

Cube构建引擎(Cube Build Engine)是如何以离线处理方式将关系型数据转化成键-值型数据的。
其中的黄线部分还表现出在线分析数据的处理流程。数据请求可以利用基于SQL的工具由SQL提交而产生,或者利用第三方应用程序通过Kylin的RESTful服务来实现。

RESTful服务会调用Query Engine,后者则检测对应的目标数据集是否真实存在。如果确实存在,该引擎会直接访问目标数据并以次秒级延迟返回结果。如果目标数据集并不存在,该引擎则会根据设计将无匹配数据集的查询路由至Hadoop上的SQL处、即交由Hive等Hadoop集群负责处理。

1-1 Kylin Background

我们的用户——比如在分析与业务部门当中希望能在保持最低延迟水平的前提下继续使用自己所熟悉的工具方案,例如Tableau与Excel。

有鉴于此,勾勒出eBay构成产品的基本要求:

  1. 数百亿数据行的查询延迟需要保持在次秒级别。

  2. 能够为使用SQL兼容性工具的用户提供ANSI SQL。

  3. 完整的OLAP方案以实现各类高级功能。

  4. 拥有对高基数与超大规模业务体系的支持能力。

  5. 面向成千上万用户的高并发性处理能力。

  6. 能够处理TB乃至PB级别分析任务的分布式横向扩展架构。

1-2 Kylin What

  1. 可扩展超快OLAP引擎

  2. Hadoop ANSI SQL 接口

  3. 交互式查询能力: (与Hadoop数据进行亚秒级交互)

  4. 多维立方体(MOLAP Cube) (能为百亿数据集定义数据模型并构建Cube)

  5. 与BI工具无缝整合 (如Tableau)

其他特性:

  • Job管理与监控

  • 压缩与编码

  • 增量更新

  • 利用HBase Coprocessor

  • 基于HyperLogLog的Dinstinc Count近似算法

  • 友好的web界面以管理,监控和使用立方体

  • 项目及立方体级别的访问控制安全

  • 支持LDAP

1-3 Kylin EcoSys

    1. Kylin 核心

    2. 扩展

    3. 整合

    4. 用户界面

    5. 驱动

    • Kylin OLAP引擎基础框架,包括元数据(Metadata)引擎,查询引擎,Job引擎及存储引擎等,同时包括REST服务器以响应客户端请求

    • 整合 : 与调度系统,ETL,监控等生命周期管理系统的整合

    • 驱动 : ODBC 和 JDBC 驱动以支持不同的工具和产品,比如Tableau

    1-4 Kylin 组件

    1. 元数据管理工具(Metadata Manager)

    2. 任务引擎 (Job Engine)

    3. 存储引擎 (Storage Engine)

    4. REST Server

    5. ODBC驱动程序

    6. 查询引擎(Query Engine)

    元数据管理工具(Metadata Manager)

    Kylin是一款元数据驱动型应用程序。元数据管理工具是一大关键性组件,用于对保存在Kylin当中的所有元数据进行管理,其中包括最为重要的cube元数据。其它全部组件的正常运作都需以元数据管理工具为基础。

    任务引擎(Job Engine)

    这套引擎的设计目的在于处理所有离线任务,其中包括shell脚本、Java API以及Map Reduce任务等等。任务引擎对Kylin当中的全部任务加以管理与协调,从而确保每一项任务都能得到切实执行并解决其间出现的故障。

    存储引擎(Storage Engine)

    这套引擎负责管理底层存储——特别是cuboid,其以键-值对的形式进行保存。存储引擎使用的是HBase——这是目前Hadoop生态系统当中最理想的键-值系统使用方案。Kylin还能够通过扩展实现对其它键-值系统的支持,例如Redis。
    •REST Server: REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。

    ODBC驱动程序

    为了支持第三方工具与应用程序——例如Tableau——我们构建起了一套ODBC驱动程序并对其进行了开源。我们的目标是让用户能够更为顺畅地采用这套Kylin平台。

    查询引擎(Query Engine)

    当cube准备就绪后,查询引擎就能够获取并解析用户查询。它随后会与系统中的其它组件进行交互,从而向用户返回对应的结果。

    在Kylin当中,我们使用一套名为Apache Calcite的开源动态数据管理框架对代码内的SQL以及其它插入内容进行解析。

    1-5 京东云海 的实践

    京东云海 : http://www.csdn.net/article/2015-11-27/2826343?utm_source=tuicool&utm_medium=referral

    1-6 Kylin Cube 算法介绍

    http://www.linuxeden.com/html/news/20150910/162787.html

    1-7 参考链接

    CSDN : http://www.csdn.net/article/2014-10-25/2822286

    你可能感兴趣的:(kylin)