推广 热搜: 行业  设备    参数  系统  经纪    教师  机械  中国 

36 大数据项目之电商数仓(即席查询之Kylin)

   日期:2024-11-11     作者:caijiyuan    caijiyuan   评论:0    移动:http://mip.riyuangf.com/news/806.html
核心提示:2^n-1各角度 OLAP类型3.1.1 Kylin 定义3.1.2 Kylin 架构3.1.3 Kylin 特点 3.2.1 Kylin 依赖环境 hbase参考文档安装并且不需要分

在这里插入图片描述 2^n-1各角度

36 大数据项目之电商数仓(即席查询之Kylin)

 

在这里插入图片描述

OLAP类型 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3.1.1 Kylin 定义

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

3.1.2 Kylin 架构

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

3.1.3 Kylin 特点

在这里插入图片描述 在这里插入图片描述

3.2.1 Kylin 依赖环境

hbase参考文档安装

在这里插入图片描述 并且不需要分发因为只在dw1上有kylin

3.2.2 Kylin 搭建

1)下载 Kylin 安装包

 

2)解压 apache-kylin-2.5.1-bin-hbase1x.tar.gz 到/opt/module 在这里插入图片描述 3)启动

检验jobhistoryserver:

 

(1)启动 Kylin 之前,需先启动 Hadoop(hdfs,yarn,jobhistoryserver)、Zookeeper、Hbase、hive元数据服务 在这里插入图片描述 (2)启动 Kylin

 

在这里插入图片描述 如果起不来可能是kylin.sh脚本启动时调用check-hive-usability.sh中hive -e查询将时间调大 访问 http://dw1:7070/kylin 在这里插入图片描述

用户名为:ADMIN,密码为:KYLIN

在这里插入图片描述

3.2.1创建工程

在这里插入图片描述 在这里插入图片描述

3.2.2获取数据源

1)点击 DataSource 在这里插入图片描述 2)点击下图按钮导入 Hive 表 在这里插入图片描述 3)选择所需数据表,并点击 Sync 按钮 在这里插入图片描述

3.2.3创建model

1)点击 Models,点击"+New"按钮,点击"★New Model"按钮。 在这里插入图片描述 2)填写 Model 信息,点击 Next 在这里插入图片描述

3)指定事实表 在这里插入图片描述 4)选择维度表,并指定事实表和维度表的关联条件,点击 Ok

在这里插入图片描述 维度表添加完毕之后,点击 Next 在这里插入图片描述 5)指定维度字段,并点击 Next 在这里插入图片描述 6)指定度量字段,并点击 Next 在这里插入图片描述 7)指定事实表分区字段(仅支持时间分区,点击 Save 按钮,model 创建完毕 在这里插入图片描述

3.2.4构建cube

1)点击 new, 并点击 new cube

在这里插入图片描述

2)填写 cube 信息,选择 cube 所依赖的 model,并点击 next 在这里插入图片描述 3)点击 add dimensions (维度表选normal) 在这里插入图片描述

4)选择所需的维度,如下图所示,点击next 在这里插入图片描述 5)选择所需度量值,如下图所示,并点击ok保存 在这里插入图片描述 在这里插入图片描述 6)cube 自动合并设置,cube 需按照日期分区字段每天进行构建,每次构建的结果会保存在 Hbase 中的一张表内,为提高查询效率,需将每日的 cube 进行合并,此处可设置合并周期。

在这里插入图片描述 注意:与hbase合并表不一样的是,kylin是多表合并一张表。hbase是一张大表内部hfile合并

7)Kylin 高级配置(优化相关,暂时跳过在这里插入图片描述 8)Kylin 相关属性配置覆盖(只在当前cube生效在这里插入图片描述 9)Cube 信息总览,点击 Save,Cube 创建完成 在这里插入图片描述 10)构建 Cube(计算,点击对应 Cube 的 action 按钮,选择 build 在这里插入图片描述 11)选择要构建的时间区间,点击 Submit 在这里插入图片描述 12)点击 Monitor 查看构建进度 在这里插入图片描述

3.2.5使用进阶

1)每日全量维度表及拉链维度表重复 Key 问题如何处理

按照上述流程,会发现,在 cube 构建流程中出现以下错误 在这里插入图片描述 原因:事实表根据日期分区与用户拉链表join时,会出现多个有修改过操作的用户,所以导致重复key

重复key解决方案

方案一:在 hive 中创建维度表的临时表,该临时表中只存放维度表最新的一份完整的数据,在 kylin 中创建模型时选择该临时表作为维度表。

方案二:与方案一思路相同,但不使用物理临时表,而选用视图(view)实现相同的功 能。

此处采用方案二: 创建维度表视图

(1)创建维度表视图

 

创建视图完毕后: 1.discard失败的任务并drop => 2.drop cube => 3.drop model => 4.unload table dwd_dim_user_info_his 并重新创建model执行下去

2)历史服务器错误 (方案:修改到今天日期

 
使用kylin进行查询

在这里插入图片描述

 

在这里插入图片描述 注意:第一次可能比较慢,因为与hbase需要建立一次连接需要消耗一些时间

如何实现每日自动构建 cube -->Restful API

http://kylin.apache.org/cn/docs/howto/howto_use_restapi.html

查询 example

curl -X POST -H “Authorization: Basic XXXXX=” -H “Content-Type: application/json” -d ‘{ “sql”:“select count(*) from TEST_KYLIN_FACT”, “project”:“learn_kylin” }’ http://localhost:7070/kylin/api/query

1.需要将登陆的账号密码进行加密

 

在这里插入图片描述 2.改写命令 curl -X POST -H “Authorization: Basic QURNSU46S1lMSU4=” -H “Content-Type: application/json” -d ‘{ “sql”:“select l.region_name, sum(payment_amount) from dwd_fact_payment_info p left join dwd_dim_base_province l on p.province_id = l.id group by l.region_name”, “project”:“gmall” }’ http://dw1:7070/kylin/api/query

构建 cube example

curl -X PUT -H “Authorization: Basic XXXXXXXXX” -H ‘Content-Type: application/json’ -d ‘{“startTime”:‘1423526400000’, “endTime”:‘1423612800000’, “buildType”:“BUILD”}’ http://:/kylin/api/cubes/{cubeName}/build

改写命令并编写成脚本

 

3.4.1Cube 存储原理

在这里插入图片描述 在这里插入图片描述 底层存储16进制,并且有位数约定来表达第几个维度

3.4.2Cube 构建算法

1)逐层构建算法(layer在这里插入图片描述 在这里插入图片描述

2)快速构建算法(inmem在这里插入图片描述 在这里插入图片描述

3.5.1使用衍生维度(derived dimension

在这里插入图片描述 在这里插入图片描述

在这里插入图片描述

3.5.2使用聚合组(Aggregation group

在这里插入图片描述 (1)强制维度(Mandatory 在这里插入图片描述 (2)层级维度(Hierarchy 在这里插入图片描述 (3)联合维度(Joint) 如sku与spu 在这里插入图片描述 在这里插入图片描述

3.5.3Row Key 优化

在这里插入图片描述 在这里插入图片描述 2)基数大的维度放在基数小的维度前边。 在这里插入图片描述 在这里插入图片描述

3.5.4并发粒度优化

在这里插入图片描述

在这里插入图片描述

3.6.1JDBC

1)新建项目并导入依赖

 

2)编码

 

3)结果展示 在这里插入图片描述

3.6.2Zepplin

1)Zepplin 安装与启动 (1)将 zeppelin-0.8.0-bin-all.tgz 上传至 Linux (2)解压 zeppelin-0.8.0-bin-all.tgz 之/opt/module (3)修改名称 (4)启动 bin/zeppelin-daemon.sh start (后台运行) 在这里插入图片描述

可登录网页查看,web 默认端口号为 8080 http://dw1:8080 2)配置 Zepplin 支持 Kylin (1)点击右上角 anonymous 选择 Interpreter 在这里插入图片描述 (2)搜索 Kylin 插件并修改相应的配置 在这里插入图片描述 (3)修改完成点击 Save 完成

本文地址:http://fmiwue.riyuangf.com/news/806.html    迅易网 http://fmiwue.riyuangf.com/ , 查看更多
 
标签: 数据项 电商
 
更多>同类行业资讯
0相关评论

新闻列表
企业新闻
推荐企业新闻
推荐图文
推荐行业资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号