栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数据仓库之电商数仓-- 5、即席查询Kylin

数据仓库之电商数仓-- 5、即席查询Kylin

目录
  • 一、Kylin
    • 1.1 Kylin简介
      • 1.1.1 Kylin定义
      • 1.1.2 Kylin相关术语
      • 1.1.3Kylin架构
      • 1.1.4 Kylin特点
    • 1.2 Kylin安装
      • 1.2.1 Kylin依赖环境
      • 1.2.2 Kylin搭建
      • 1.2.3 Kylin兼容性问题
      • 1.2.4 Kylin启动
    • 1.3 Kylin启动
      • 1.3.1 创建工程
      • 1.3.2 获取数据源

-----------------------------------------------------分隔符-----------------------------------------------------
数据仓库之电商数仓-- 1、用户行为数据采集==>
数据仓库之电商数仓-- 2、业务数据采集平台==>
数据仓库之电商数仓-- 3.1、电商数据仓库系统(DIM层、ODS层、DWD层)>
数据仓库之电商数仓-- 3.2、电商数据仓库系统(DWS层)>
数据仓库之电商数仓-- 3.3、电商数据仓库系统(DWT层)>
数据仓库之电商数仓-- 3.4、电商数据仓库系统(ADS层)>
数据仓库之电商数仓-- 4、可视化报表Superset==>
数据仓库之电商数仓-- 5、即席查询Kylin==>

一、Kylin 1.1 Kylin简介 1.1.1 Kylin定义

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

1.1.2 Kylin相关术语
  • Data Warehouse (数据仓库)
    数据仓库是一个各种数据(包括历史数据和当前数据)的中心存储系统,是BI(business intelligence, 商业智能)的核心部件;

此处的数据包括企业业务系统的订单、库存、交易账目、客户和供应商等来自企业所处行业和竞争对手的数据以及来自企业所处的其他外部环境中的各种数据。

  • Business Intelligence(商业智能)
    商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具;

为了将数据转化为知识,需要利用数据仓库、联机分析处理(OLAP)工具和数据挖掘等技术。

  • OLAP(online analytical processing)
    OLAP(online analytical processing)是一种软件技术,它能使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。
    从各方面观察信息,也就是从不同的维度分析数据,因此OLAP也称为多维分析。


排列组合7种不同的角度,需7个Cuboid,一个Cube。

  • OLAP类型
    ROLAP(Relational OLAP):基于关系型数据库,不需要预计算;
    MOLAP(Mutidimensional OLAP):基于多维数据集,需要预计算。
  • OLAP Cube
    MOLAP基于多维数据集,一个多维数据集称为一个OLAP Cube。

七种角度:

注⚠️:一个Cube可以包含多个Cuboid!

1.1.3Kylin架构

  • REST Server

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

  • 查询引擎(Query Engine)

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

  • 路由器(Routing)

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

  • 元数据管理工具(metadata)

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

  • 任务引擎(Cube Build Engine)

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

1.1.4 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服务。
1.2 Kylin安装 1.2.1 Kylin依赖环境

安装Kylin前需先部署好Hadoop、Hive、Zookeeper、Hbase,并且需要在/etc/profile中配置以下环境变量HADOOP_HOME,HIVE_HOME,Hbase_HOME,记得source使其生效。

1.2.2 Kylin搭建
  1. 上传Kylin安装包apache-kylin-3.0.2-bin.tar.gz到/opt/software目录;
  2. 解压apache-kylin-3.0.2-bin.tar.gz到/opt/module:
(base) [xiaobai@hadoop102 kylin]$ tar -zxvf apache-kylin-3.0.2-bin.tar.gz -C /opt/module/
(base) [xiaobai@hadoop102 module]$ mv apache-kylin-3.0.2-bin/ kylin
1.2.3 Kylin兼容性问题

修改/opt/module/kylin/bin/find-spark-dependency.sh,排除冲突的jar包
需要增加的内容:! -name '*jackson*' ! -name '*metastore*'

(base) [xiaobai@hadoop102 bin]$ vim find-spark-dependency.sh 

1.2.4 Kylin启动
  1. 启动Kylin之前,需先启动Hadoop(hdfs,yarn,jobhistoryserver)、Zookeeper、Hbase;⭐️
  2. 启动Kylin:
(base) [xiaobai@hadoop102 kylin]$ bin/kylin.sh start


查看各个节点进程:

(base) [xiaobai@hadoop102 logs]$ jps
17056 QuorumPeerMain
20928 RunJar
67456 HRegionServer
77760 RunJar
16883 JobHistoryServer
16277 DataNode
16662 NodeManager
16126 NameNode
67103 HMaster
78110 Jps
[xiaobai@hadoop103 ~]$ jps
111509 NodeManager
116933 HRegionServer
118357 Jps
10325 Kafka
111924 QuorumPeerMain
111371 ResourceManager
111151 DataNode
[xiaobai@hadoop104 module]$ jps
82260 NodeManager
82153 SecondaryNameNode
82440 QuorumPeerMain
86856 Jps
85836 HRegionServer

停止kylin:

(base) [xiaobai@hadoop102 kylin]$ bin/kylin.sh stop
  1. 在 http://hadoop102:7070/kylin 查看Web页面:


kylin成功启动,访问页面404戳这里==>

1.3 Kylin启动

以gmall数据仓库中的dwd_order_detail作为事实表,dim_user_info、dim_sku_info、dim_base_province作为维度表,构建星型模型,并演示如何使用Kylin进行OLAP分析。

1.3.1 创建工程

点击加号,创建工程,填写项目名称和描述信息,submit提交。

1.3.2 获取数据源
  1. 点击第二个小按钮导入hive表

  1. 选择下面的表格并点击sync:
    dwd_order_detail
    dim_sku_info
    dim_user_info
    dim_base_province

注⚠️:
Kylin不能处理Hive表中的复杂数据类型(Array,Map,Struct),即便复杂类型的字段并未参与到计算之中。故在加载Hive数据源时,不能直接加载带有复杂数据类型字段的表。而在dim_sku_info表中存在两个复杂数据类型的字段(平台属性和销售属性),故dim_sku_info不能直接加载,需对其进行以下处理。

  1. 在hive客户端创建一个视图,如下;该视图已经将dim_sku_info表中的复杂数据类型的字段去掉,在后续的计算中,不再使用dim_sku_info,而使用dim_sku_info_view。
hive (gmall)>
create view dim_sku_info_view
as
select
    id,
    price,
    sku_name,
    sku_desc,
    weight,
    is_sale,
    spu_id,
    spu_name,
    category3_id,
    category3_name,
    category2_id,
    category2_name,
    category1_id,
    category1_name,
    tm_id,
    tm_name,
    create_time
from dim_sku_info;
  1. 在kylin中重新导入dim_sku_info_view视图。

虚拟机承受不起了 创建model/ 创建Cube略 后续有机会再搞;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/355049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号