精华内容
下载资源
问答
  • Kylin

    2020-11-18 15:17:44
    Kylin 1Kylin前世今生Apache Kylin背景应用场景Kylin前奏事实表和维度表星型模型和雪花模型维度和度量OLAPData Cube(数据立方体)Apache Kylin的工作原理和体系架构Kylin的工作原理Kylin的体系架构Kylin cube构建流程...

    Kylin前世今生

    Apache Kylin背景

    Apache Kylin(麒麟)是一个开源的分布式存储引擎,最初由ebay开发贡献置开源社区,它提供Hadoop智商的sql查询接口以及多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的hive表,并支持高并发。

    值得一题的是Apache Kylin 于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,2015年9月与spark、hbase、kafka并列荣获info World 2015年Bossie最佳开源大数据工具奖,这是国人项目第一次获得该国际大奖,与2015年11月毕业,成为Apache顶级项目,是首个完全由中国团队设计开发的Apache顶级项目。

    应用场景

    1. 假如你的数据存在hadoop的HDFS分布式文件系统中,并且你使用hive来基于HDFS构建数据仓库系统,并进行分析数据,但是数据量巨大,比如PB级别。
    2. 同时你的haoop平台也使用Hbase进行数据存储和利用Hbase的行健实现数据的快速查询等。
    3. 你的hadoop平台的数据量逐日累增。
    4. 对于数据分析的维度大概10个左右。
      Apache Kylin的核心思想是利用空间换时间,将计算好的多为数据结果存在Hbase ,实现数据的快速查询。同时,由于Apache Kylin在查询方面制定了多种灵活的策略,进一步提高空间的利用率,使得这样的平衡策略在应用中值得采用

    Kylin前奏

    为了更好的了解kylin我们可以先普及如下概念

    事实表和维度表

    FactTable(事实表):事实表是用来记录具体的事件的,包含了每个事件的具体要素,以及具体发生的事情。
    DimensionTable(维度表):维度表则是对事实表中事件要素的描述信息。
    例如:订单表是事实表,地区表、时间表、品类表这些相对于订单表就是维度表。

    星型模型和雪花模型

    星型模型:星型模型是一种多维的数据关系,它是由一个或多个事实表和一组维表组成,所有的维表都直接连接在事实表上,每个维表都有一个维作为主键,所有维表的主键组合成事实表的主键。
    雪花模型:雪花模型当有一个或多个维表没有直接连接到事实表中,而是通过其它的维表连接到事实表中,这个时候图多得就像雪花连在一起,故称雪花模型。

    1. 雪花模型是对星型模型的扩展,例如存在A国B省C市和A国B省D市的俩条记录相对于A国B省的信息存储了俩次星型模型存在冗余,雪花模型则极大的减少了冗余
    2. 同时也不难理解,雪花模型结构去除了数据冗余,但是在进行事实表和维度表之间的连接查询的时候其效率就比星型模型低了。所以在冗余可以接收的情况下,实际运用中还是星型模型的使用更多,也更有效率。

    维度和度量

    维度就是事实表和维表中的属性比如时间、产品类别、产品名这种,度量则一般会记录事件的相应数值比如销售数量、销售额等。

    OLAP

    • ROLAP(Relational on-Line Analysis Processing) 基于关系型数据库到关系型数据库的多维分析统计,不需要预计算
    • MOLAP(Multidimensional on-Line Analysis Processing) 基于多维数据集(即cube数据立方体)到多为数据集的,需要预计算
    • HOLAP (Hybrid n-Line Analysis Processing)基于关系型数据库到多维数据集的。
      kylin 属于MOLAP

    Data Cube(数据立方体)

    Cube数据立方体只是对多维模型的形象说法,从表面上看数据立方体是三维的,但是多维模型不仅仅限于三维模型,可以组合更多的模型,比如四维、五维等。
    在Kylin中在生成Cube的过程中,将所有维度组合即dimensions的不同组合,在Apache Kylin中成为cuboid,比如包含n个dimensions的cube有2^n次方和cuboid

    Apache Kylin的工作原理和体系架构

    Kylin的工作原理

    简单来说Kylin的核心思想是预计算,即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube并存在Hbase当中,供查询时直接访问,并把高复杂度的聚合运算、多表链接等操作转换撑对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发的能力

    • cuboid:Kylin中将维度任意组合成为一个Cuboid
    • cube: Kylin中将所有维度的组合成为一个cube,即包含所有cuboid。

    假设我们有4个Dimension,这个cube中每个节点都是这个4个Dimension的不同组合,每个组合定义了一组分析的Dimension,measure的聚合结果就保存在这每个cuboid上,查询时根据sql找到对应的cuboid,读取measure的值即可返回。

    Kylin的体系架构

    kylin的架构图

    • 模块一 hadoop/hive Kylin是一个MOLAP系统,其将hive中的数据进行预计算,利用Hadoop中的MapReduce分布式计算框架来实现。
    • 模块二 HBase HBase是Kylin中用来存储OLAP分析cube数据的地方,实现多为数据集的交互式查询。
    • 模块三 Kylin的核心模块
    1. Rest Server
      提供Restful接口,可以通过该接口来创建cube、构建cube、刷新cube、合并cube等相关操作。另外还有Kylin的Projects、Tables等元数据管理,用户访问权限控制,系统参数动态配置或修改等。
    2. Query Engine
      目前的Kylin使用开元的Calcite框架试下SQL解析可以理解为SQL引擎层。
    3. Routing
      负责将解析SQL生成的执行计划转换撑cube缓存的查询,cube是通过预计算缓存在HBase中,这部分查询是可以在秒级甚至毫秒级完成,还有操作查询过原始存在HDFS上的数据(使用hive查询),这部分查询的延迟比较高。
    4. Metadata
      Kylin中有大量的元数据信息,包括cube的定义、星型模型的定义、job和执行job的输出信息、模型的维度信息等。Kylin的元数据和cube都存储在HBase中,存储的格式是json字符串。
    5. Cube Build Engine
      这个模块比较重要,它是所有模块的基础,主要负责Kylin预计算中创建cube,创建的过程首先通过读取hive中的原始数据,然后通过一些MR或Spark计算生成Htable,最后将数据load到HBase表中
    • 模块四 Kylin提供的接口
      这部分模块主要是提供了Restful API和JDBC/ODBC接口,方便第三方Web APP产品和基于SQL的BI工具的接入,比如Apache Zeppelin、Tableau、Power BI等。
      Kylin提供的JDBC驱动的classname为org.apache.kylin.jdbc.Driver,使用的URL的前缀jdbc:kylin:,使用JDBC接口的查询走的流程和使用RESTFul接口查询走的内部流程是相同的。这类接口也使得Kylin很好地兼容tebleau甚至mondrian。

    Kylin cube构建流程

    1. 第一步创建中间表:原始表中有事实表和维度表,将其维度和度量分别提出,作成一张宽表为中间表
      例如
    address catogory date price
    北京 电子 2010-01-01 169
    上海 交通 2010-01-02 170
    1. 第二步将中间表的数据均匀分配到不同的文件(解决第一步的MR倾斜,后面具体讲)
    • 首先计算出中间表的总行数
    • per mapper=100w 注:为什么100w 引用官网上的一句话

    1 millions data size small than HDFS block size

    • 计算出reduce的个数
    select * from kylin_intermediate_airline_cube Distribute by RNAD();
    

    说下对这个sql的理解by RAND指的是随机分区,如果指定字段,则相同的字段会在同一分区。

    1. 第三步 创建维度字典表(全部改为数字对应)
    address value catogory value date value
    北京 0 电子 0 2010-01-01 0
    上海 1 交通 1 2010-01-02 1

    要创建字典表每个维度的distinct取出来,存字典表(中间表)节省空间。

    1. 第四步 构建cube
      预聚合表
    address catogory date price
    0 0 0 100
    1 × 0 500
    1 1 0 600
    1. 创建hbase的k-v
    rowkey value
    111+000 100
    101+10 500
    111+11 600

    111+000 前半部分111代表三个维度都存在,000代表维度值为000

    1. 第六步 将cube data转成HFile 并导入hbase(转换文件格式就好)
      cube data (sequence File)-> HTable (HFile)
    展开全文
  • kylin

    2020-09-13 10:00:19
    kylin 1、概念 Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表 Kylin...

    kylin

    1、概念

    Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表
    
    Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成
    
    

    2、kylin安装

    1、安装前环境准备:Hadoop、Hive、Zookeeper、HBase需要提前准备好,环境变量配置好
    
    2、解压:tar -zxvf apache-kylin-3.0.2-bin.tar.gz -C /opt/module/
    
    3、改名:mv /opt/module/apache-kylin-3.0.2-bin /opt/module/kylin
    
    4、启动准备:需先启动Hadoop(hdfs,yarn,jobhistoryserver)、Zookeeper、Hbase
    
    5、启动Kylin: /opt/module/kylin/bin/kylin.sh start
    
    6、web查看http://hadoop102:7070/kylin
    
    7、登录:用户名为:ADMIN,密码为:KYLIN
    
    8、关闭kylin: /opt/module/kylin/bin/kylin.sh stop
    

    3、kylin的简单实用

    4、原理理解

    5、java程序

    1、依赖:
        <dependencies>
            <dependency>
                <groupId>org.apache.kylin</groupId>
                <artifactId>kylin-jdbc</artifactId>
                <version>2.5.1</version>
            </dependency>
        </dependencies>
    
    2、程序编写:
    public class TestKylin {
    
        public static void main(String[] args) throws Exception {
    
            //Kylin_JDBC 驱动
            String KYLIN_DRIVER = "org.apache.kylin.jdbc.Driver";
    
            //Kylin_URL
            String KYLIN_URL = "jdbc:kylin://hadoop102:7070/FirstProject";
    
            //Kylin的用户名
            String KYLIN_USER = "ADMIN";
    
            //Kylin的密码
            String KYLIN_PASSWD = "KYLIN";
    
            //添加驱动信息
            Class.forName(KYLIN_DRIVER);
    
            //获取连接
            Connection connection = DriverManager.getConnection(KYLIN_URL, KYLIN_USER, KYLIN_PASSWD);
    
            //预编译SQL
            PreparedStatement ps = connection.prepareStatement("SELECT sum(sal) FROM emp group by deptno");
    
            //执行查询
            ResultSet resultSet = ps.executeQuery();
    
            //遍历打印
            while (resultSet.next()) {
                System.out.println(resultSet.getInt(1));
            }
        }
    }
    
    
    展开全文
  • VMware安装Ubuntu Kylin系统

    万次阅读 2020-12-21 16:51:04
    一、Ubuntu Kylin系统简介 二、创建新的虚拟机 三、安装系统 一、Ubuntu Kylin系统简介 官网地址:https://www.ubuntukylin.com/ 镜像下载地址:https://www.ubuntukylin.com/downloads/ 二、创建新的虚拟机 1....

    目录

    一、Ubuntu Kylin系统简介

    二、创建新的虚拟机

    三、安装系统


    一、Ubuntu Kylin系统简介

    官网地址: https://www.ubuntukylin.com/

    镜像下载地址: https://www.ubuntukylin.com/downloads/

    二、创建新的虚拟机

    1.点击创建新的虚拟机

    2.选择操作系统 

    3.设置名称及保存位置

    4.指定磁盘容量

    5.创建完成

    6.关联镜像文件

    三、安装系统

    1.选择安装 Ubuntu Kylin系统

    2.进行检查

    3.选择安装Ubuntu Kylin

    4.选择中文

    5.选择正常安装

    6.清除整个磁盘并安装

    7.等待安装完成

    8.安装完成后,进入系统页面

     

     

     

    展开全文
  • kylin_modify:kylin源码修改
  • <div><p>This modification mainly solves the problem of aw glue catalog supported by kylin, and the associated jira is <a href="https://issues.apache.org/jira/browse/KYLIN-4206">... 1.First you need to ...
  • 修改 资料配置文件\kylin.properties 中HDFS的路径,然后上传到 Linux的 Kylin/conf文件夹中
  • 概述Kylin定义Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。Kylin架构1)...

    概述

    Kylin定义

    Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。

    Kylin架构

    df52b4941c70eabf4230476aeeb2977d.png

    1)REST Server

    REST Server是一套面向应用程序开发的入口点,旨在实现针对Kylin平台的应用开发工作。 此类应用程序可以提供查询、获取结果、触发cube构建任务、获取元数据以及获取用户权限等等。另外可以通过Restful接口实现SQL查询。

    2)查询引擎(Query Engine)

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

    3)路由器(Routing)

    在最初设计时曾考虑过将Kylin不能执行的查询引导去Hive中继续执行,但在实践后发现Hive与Kylin的速度差异过大,导致用户无法对查询的速度有一致的期望,很可能大多数查询几秒内就返回结果了,而有些查询则要等几分钟到几十分钟,因此体验非常糟糕。最后这个路由功能在发行版中默认关闭。

    4)元数据管理工具(Metadata)

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

    5)任务引擎(Cube Build Engine)

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

    Kylin特点

    Kylin的主要特点包括支持SQL接口、支持超大规模数据集、亚秒级响应、可伸缩性、高吞吐率、BI工具集成等。

    1)标准SQL接口:Kylin是以标准的SQL作为对外服务的接口。

    2)支持超大数据集:Kylin对于大数据的支撑能力可能是目前所有技术中最为领先的。早在2015年eBay的生产环境中就能支持百亿记录的秒级查询,之后在移动的应用场景中又有了千亿记录秒级查询的案例。

    3)亚秒级响应:Kylin拥有优异的查询响应速度,这点得益于预计算,很多复杂的计算,比如连接、聚合,在离线的预计算过程中就已经完成,这大大降低了查询时刻所需的计算量,提高了响应速度。

    4)可伸缩性和高吞吐率:单节点Kylin可实现每秒70个查询,还可以搭建Kylin的集群。

    5)BI工具集成

    Kylin可以与现有的BI工具集成,具体包括如下内容。

    ODBC:与Tableau、Excel、PowerBI等工具集成

    JDBC:与Saiku、BIRT等Java工具集成

    RestAPI:与JavaScript、Web网页集成

    Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。

    Kylin环境搭建

    安装地址

    1)官网地址

    http://kylin.apache.org/cn/

    2)官方文档

    http://kylin.apache.org/cn/docs/

    3)下载地址

    http://kylin.apache.org/cn/download/

    安装部署

    1)将apache-kylin-2.5.1-bin-hbase1x.tar.gz上传到Linux

    2)解压apache-kylin-2.5.1-bin-hbase1x.tar.gz到/opt/module

    tar -zxvf apache-kylin-2.5.1-bin-hbase1x.tar.gz -C /opt/module/

    注意:需要在/etc/profile文件中配置HADOOP_HOME,HIVE_HOME,HBASE_HOME并source使其生效。

    3)启动

    bin/kylin.sh start

    启动之后查看各个节点进程

    --------------------- hadoop102 ----------------3360 JobHistoryServer31425 HMaster3282 NodeManager3026 DataNode53283 Jps2886 NameNode44007 RunJar2728 QuorumPeerMain31566 HRegionServer--------------------- hadoop103 ----------------5040 HMaster2864 ResourceManager9729 Jps2657 QuorumPeerMain4946 HRegionServer2979 NodeManager2727 DataNode--------------------- hadoop104 ----------------4688 HRegionServer2900 NodeManager9848 Jps2636 QuorumPeerMain2700 DataNode2815 SecondaryNameNode

    注意:启动Kylin之前要保证HDFS,YARN,ZK,HBASE相关进程是正常运行的。

    http://hadoop102:7070/kylin查看Web页面

    22bb872ba93d21293e88f02021ba53df.png

    用户名为:ADMIN,密码为:KYLIN(系统已填)

    4)关闭

     bin/kylin.sh stop

    快速入门

    需求:实现按照维度(工作地点)统计员工信息

    数据准备

    在Hive中创建数据,分别创建部门和员工外部表,并向表中导入数据。

    (1)原始数据

    dept.txt

    10ACCOUNTING170020RESEARCH180030SALES190040OPERATIONS1700

    emp.txt

    7369SMITHCLERK79021980-12-17800.00207499ALLENSALESMAN76981981-2-201600.00300.00307521WARDSALESMAN76981981-2-221250.00500.00307566JONESMANAGER78391981-4-22975.00207654MARTINSALESMAN76981981-9-281250.001400.00307698BLAKEMANAGER78391981-5-12850.00307782CLARKMANAGER78391981-6-92450.00107788SCOTTANALYST75661987-4-193000.00207839KINGPRESIDENT1981-11-175000.00107844TURNERSALESMAN76981981-9-81500.000.00307876ADAMSCLERK77881987-5-231100.00207900JAMESCLERK76981981-12-3950.00307902FORDANALYST75661981-12-33000.00207934MILLERCLERK77821982-1-231300.0010

    (2)建表语句

    创建部门表

    create external table if not exists default.dept(deptno int,dname string,loc int)row format delimited fields terminated by '';

    创建员工表

    create external table if not exists default.emp(empno int,ename string,job string,mgr int,hiredate string, sal double, comm double,deptno int)row format delimited fields terminated by '';

    (3)查看创建的表

    hive (default)> show tables;OKtab_namedeptemp

    (4)向外部表中导入数据

    hive (default)> load data local inpath '/opt/module/datas/dept.txt' into table default.dept;hive (default)> load data local inpath '/opt/module/datas/emp.txt' into table default.emp;

    查询结果

    hive (default)> select * from emp;hive (default)> select * from dept;

    创建项目

    登录系统

    b9fbffec08179ba1b4e0f68fcf31b82c.png

    创建工程

    1)点击图上所示“+”号

    b0c1980b18dc314fe076e4be10a25bb1.png

    2)填入项目名及描述点击Submit

    1d53d3ebf91b63cc6a009141eaf23bd6.png

    选择数据源

    1)选择加载数据源方式

    05eeefa00a6a2d50a9be01bd8a44e1f3.png

    2)输入要作为数据源的表

    01477d7a5154ccbf7f637e39619c7cd4.png

    3)查看数据源

    a0dfeb49e21f7978007865764cbc0298.png

    创建Model

    1)回到Models页面

    2c0f3e676c6468272480a8babcf450a7.png

    2)点击New按钮后点击New Model

    70a911a263a548e172ac101006792e05.png

    3)填写Model名称及描述后Next

    2ca92e329aef2ca3ce4265206805cbed.png

    4)选择事实表

    229fe5147e117ac79605acf51f63474e.png

    5)添加维度表

    fba5dbe884775a2c6c625f611ee9030e.png

    6)选择添加的维度表及join字段

    340c9e792c7744fe3a1e12191d0bbb6e.png
    69fc4828161d21b1aceba9c75a2e9a68.png

    7)选择维度信息

    19ba15ef3f852342b6656d9258c36ef7.png

    8)选择度量信息

    ba52d92023be62f788621c91b864b79b.png

    9)添加分区信息及过滤条件之后“Save”

    19ad37146aed83b4062f3de857d0472a.png

    10)创建Model完成

    efb98683521d1da1c7fd210a6354f661.png

    创建Cube

    1)点击New按钮然后选择New Cube

    037bc3e0dfae28ecf6e1a231ae18044f.png

    2)选择Model及填写Cube Name

    8dab8b7b19c3e8ceb8f042394d8e4a91.png

    3)添加维度

    9e0fb7a7b381b9f5950a11083f0dcc6d.png
    3eb710fb60ca7e372a0cd6741b4f5874.png

    4)添加需要做预计算的内容

    5dd5307bf0c7871a86509f891c06cfd5.png
    4dfcef9161ab22b04f0ba951c7873919.png

    5)动态更新相关(默认)

    f09564d57622879b481073dc05d07c65.png

    6)高阶模块(默认)

    b8400dcf0c3629474ba1616a355fa799.png

    7)需要修改的配置

    99b2e4bf0a57303f21476cda2f20611b.png

    8)Cube信息展示

    e6fd142fb2c4cf3ca16a957367657f34.png

    9)Cube配置完成

    a816fc4bc3e6d2b6dbe0c51f59fadfef.png

    10)触发预计算

    9f83a1c3e9d66bb0c67d7dd5f55a0fc5.png

    11)查看Build进度

    8adc1c0111507f1b24f7061ae79f9b9c.png

    12)构建Cube完成

    4d8ba4ca37a9599e6c9b2d011eb5f099.png

    Hive和Kylin性能对比

    需求:根据部门名称[dname]统计员工薪资总数[sum(sal)]

    Hive查询

    select dname,sum(sal) from emp e join dept d on e.deptno = d.deptno group by dname;

    Time taken: 23.893 seconds, Fetched: 3 row(s)

    Kylin查询

    1)进入Insight页面

    5fca4fad8dc1a9112644165e0304424b.png

    2)在New Query中输入查询语句并Submit

    00eef00e1b04aa8155c718ff26102180.png

    3)图表展示之条形图

    c09b5bfdb7794b687f376b9ef55d397c.png

    4)图表展示之饼图

    b680d949c19ca6918c3085a9ed184e88.png
    展开全文
  • kylin 测试数据

    2019-08-20 18:16:50
    kylin 测试数据
  • Kylin安装

    2021-02-14 16:27:16
    文章目录Kylin安装1 Kylin依赖环境2 Kylin搭建3 Kylin兼容性问题4 Kylin启动 Kylin安装 1 Kylin依赖环境 安装Kylin前需先部署好Hadoop、Hive、Zookeeper、HBase,并且需要在/etc/profile中配置以下环境变量HADOOP_...
  • 为了让用户方便的试用 Kylin,以及方便开发者在修改了源码后进行验证及调试。我们提供了 Kylin 的 docker 镜像。该镜像中,Kylin 依赖的各个服务均已正确的安装及部署,包括:JDK 1.8Hadoop 2.7.0Hive 1.2.1Hbase ...
  • <div><p>该提问来源于开源项目:apache/kylin</p></div>
  • kylin.properties

    2020-05-13 11:02:46
    kylin.properties配置文件
  • Kylin: Kylin源码下载

    2020-04-20 00:03:16
    Kylin官方源码下载 地址:http://kylin.apache.org/cn/download/ 导入本地 IDEA 指向解压后的 pom.xml 文件 如果依赖加载速度慢,可以用国内的 maven 镜像

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,167
精华内容 3,666
热门标签
关键字:

kylin