Apache kylin概览

Apache kylin概览

一、Apache kylin的核心概念

  1. 表(Table ):表定义在hive中,是数据立方体(Data cube)的数据源,在build cube 之前,必须同步在 kylin中。
  2. 模型(model):模型描述了一个星型模式的数据结构,它定义了一个事实表(Fact Table: Wiki:Fact_table)和多个查找表(Lookup Table:Wiki:Lookup_table)的连接和过滤关系。
  3. 立方体(Cube):它定义了使用的模型、模型中的表的维度(dimension:Wiki:dimension)、度量(measure:Wiki:measure ,一般指聚合函数,如:sum、count、average等)、如何对分区( segments partition)、合并段(segments auto-merge)等的规则。
  4. 立方体段(Cube Segment):它是立方体构建(build)后的数据载体,一个 segment 映射hbase中的一张表,立方体实例构建(build)后,会产生一个新的segment,一旦某个已经构建的立方体的原始数据发生变化,只需刷新(fresh)变化的时间段所关联的segment即可。
  5. 作业(Job):对立方体实例发出构建(build)请求后,会产生一个作业。该作业记录了立方体实例build时的每一步任务信息。作业的状态信息反映构建立方体实例的结果信息。如作业执行的状态信息为RUNNING 时,表明立方体实例正在被构建;若作业状态信息为FINISHED ,表明立方体实例构建成功;若作业状态信息为ERROR ,表明立方体实例构建失败!作业的所有状态如下:
  • NEW – This denotes one job has been just created.
  • PENDING – This denotes one job is paused by job scheduler and waiting for resources.
  • RUNNING – This denotes one job is running in progress.
  • FINISHED – This denotes one job is successfully finished.
  • ERROR – This denotes one job is aborted with errors.
  • DISCARDED – This denotes one job is cancelled by end users.

 

二、Apache kylin的工作机制

Apache kylin 能提供低延迟(sub-second latency)的秘诀就是预计算,即针对一个星型拓扑结构的数据立方体,预计算多个维度组合的度量,然后将结果保存在hbase中,对外暴露JDBC、ODBC、Rest API的查询接口,即可实现实时查询。

数据立方体一般由Hive中的一个事实表,多个查找表组成。预计算的过程在kylin中就是 Cube 的build过程,如下图:

<span>Apache kylin概览</span>当前Apache kylin构建(build)数据立方体,采用逐层算法(By Layer Cubing)。未来的发布中将采用快速立方体算法(Fast Cubing)。下面简单介绍一下逐层算法

一个完整的数据立方体,由N-dimension立方体,N-1 dimension立方体,N-2维立方体,0 dimension立方体这样的层关系组成,除了N-dimension立方体,基于原数据计算,其他层的立方体可基于其父层的立方体计算。所以该算法的核心是N次顺序的MapReduce计算。

在MapReduce模型中,key由维度的组合的构成,value由度量的组合构成,当一个Map读到一个key-value对时,它会计算所有的子立方体(child cuboid),在每个子立方体中,Map从key中移除一个维度,将新key和value输出到reducer中。直到当所有层计算完毕,才完成数据立方体的计算。过程如下图:

<span>Apache kylin概览</span>在数据立方体计算完毕后,有一个任务(Convert Cuboid Data to HFile),其职责是将reduce输出的运算结果(Cuboid Data)转化成Hbase中的存储载体(HFile),最终将HFile 加载到Hbase表中便于查询。其中表的rowkey由维度组合而成,维度组合对应的度量值构成了column family,为了查询减少存储空间,会对RowKey和column family的值进行编码,默认编码是Snappy。<span>Apache kylin概览</span>整个数据立方体的构建流程如下:<span>Apache kylin概览</span>

三、Apache kylin的架构及核心组件

Apache kylin 架构如下:

<span>Apache kylin概览</span>核心组件:

    • 数据立方体构建引擎(Cube Build Engine):当前底层数据计算引擎支持MapReduce1、MapReduce2、Spark等。
    • Rest Server:当前kylin采用的rest API、JDBC、ODBC接口提供web服务。
    • 查询引擎(Query Engine):Rest Server接收查询请求后,解析sql语句,生成执行计划,然后转发查询请求到Hbase中,最后将结构返回给 Rest Server。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119660.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 配置管理系统和总体变更系统有什么差别与联系

    配置管理系统和总体变更系统有什么差别与联系

    2021年12月5日
    60
  • Java–String、StringBuilder及StringBuffer区别及性能对比

    Java–String、StringBuilder及StringBuffer区别及性能对比【学习背景】主要是想通过OpenJDK提供的JMH工具测试下String、StringBuilder及StringBuffer字符串拼接的效率如何~关于JMH的介绍及具体使用,我的这篇博文中有介绍:Java–☀️面试官:LinkedList真的比ArrayList添加元素快?❤️‍本文通过OpenJDKJMH带你揭开真相《⭐建议收藏⭐》当然,除了主要验证三者的字符串拼接效率之外,还会对三者做一些区别分析及常见面试问题总结,希望加深自己对这三者的认知,分享出来,也希望能帮助到有需要的小伙伴~

    2022年6月28日
    22
  • 字典总结二|密码字典、参数字典[通俗易懂]

    字典总结二|密码字典、参数字典[通俗易懂]密码字典pass_kill.txt属于小字典,适用于存在waf等情况。pass.txt是常见密码pass_kill.txtadminadmin168.admin1234hahahaadmin888admin123123456123456789123123aqwe51895100000000000000000000000000000000000000000000011111111111111111111111111111111111111111111

    2022年7月26日
    11
  • MyBatis插件_mybatis插件实际应用

    MyBatis插件_mybatis插件实际应用2018年2月更新2017.3可用,提供一个网上比较多的一个版本V3.21版本,下载资源里面有个已整合版直接解压放入C:\Users\你的用户名\.IntelliJIdea2017.3\config\plugins这个文件夹即可CSDN下载注意:有些人就是不成功!因为你的IDEA版本太老了,不支持3.21这个…

    2022年10月7日
    3
  • python aiohttp_python aiohttp的使用详解

    python aiohttp_python aiohttp的使用详解1.aiohttp的简单使用(配合asyncio模块)importasyncio,aiohttpasyncdeffetch_async(url):print(url)asyncwithaiohttp.request(“GET”,url)asr:reponse=awaitr.text(encoding=”utf-8″)  #或者直接awaitr.read()不编码,直接读取,适…

    2025年6月30日
    4
  • 可靠性测试的基础知识——可靠性的计算方法

    可靠性测试的基础知识——可靠性的计算方法计算机系统的可靠性从它开始运行(t=0)到某时刻t这段时间内能正常运行的概率,用R(t)表示。失效率指单位时间内失效的元件数与元件总数的比例,以λ表示,当λ为常数时,可靠性与失效率的关系为:R

    2022年7月4日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号