基于Apache Kylin的分析案例
· 案例4测试成功
o 3、定义模型
o 4、定义cube
o 5、构建cube
o 6、查询数据
· 案例5测试成功
o 1、数据准备
目前找到下面一些案例,还没有在我们的环境进行测试,主要问题是案例中的数据源找不到。
1、在github上找到一个项目,一样的
https://github.com/albertoRamon/Kylin/tree/master/KylinAmazon
2、基于 Apache Kylin 的航班准点率分析
3、基于Apache Kylin 的销售分析示例
4、Twitter热词分析:基于Apache Kylin的Streaming建模示例
http://cn.kyligence.io/2016/11/24/kylin-twitter-streaming/
5、Apache Kylin1.5.2.1之订单案例详细构建流程
http://www.cnblogs.com/sh425/p/5778992.html
6、kylin mondrian saiku interaction
http://gree2.github.io/bi/2016/01/20/kylin-mondrian-saiku-interaction
案例4测试成功
这个例子是kylin与kafka的stream数据对接,构建cube的过程。目前不支持Lookup 表,在定义模型时,只能选择fact表。因此不能通过 Mondrian 制作schema再与saiku集成。
案例中用到的Twitter数据获取不到,就参考官网给的例子进行测试( http://kylin.apache.org/docs20/tutorial/cube_streaming.html)。
1、准备kafka数据
a) 新建一个 topic “kylindemo”,指定3个partitions
export KAFKA_HOME=/usr/hdp/2.6.0.3-8/kafka
export KYLIN_HOME=/home/hdfs/raw/apache-kylin-2.2.0-SNAPSHOT-bin
cd $KAFKA_HOME
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic kylindemo
b)放数据到新建的topic中; Kylin有一个工具类可以完成
cd $KYLIN_HOME
/bin/kylin.sh org.apache.kylin.source.kafka.util.KafkaSampleProducer --topic kylindemo --broker master:6667
c)这个工具每秒发送100条数据到kafka,在进行下面的操作过程中保持工具类是运行状态。你可以使用 kafka-console-consumer.sh 查看样例数据
cd $KAFKA_HOME
bin/kafka-console-consumer.sh --zookeeper master:2181 --topic kylindemo --from-beginning
2、从streaming定义一个表
a)选择添加streaming表
b)在弹出框左侧输入一个样例数据,点击中间的按钮,kylin会解析样例数据中的属性,输入表名后点下一步
c)设置kafka配置信息
d)加载成功后查看表
3、定义模型
a)只能选择fact表
b)模型维度
c)模型度量
d)模型分区
4、定义cube
a)选择cube维度
b)cube度量
c)cube聚合
5、构建cube
a)直接在界面上build
b)使用命令build
curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '
{ "sourceOffsetStart": 0, "sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' http://master:7070/kylin/api/cubes/kylindemo/build2
6、查询数据
a)在insight界面查询
b)查询结果
7、定时自动构建cube
使用Linux自带的cron定时用命令构建cube
crontab -e
*/5 * * * * curl -X PUT --user ADMIN:KYLIN -H "Content-Type: application/json;charset=utf-8" -d '
{ "sourceOffsetStart": 0, "sourceOffsetEnd": 9223372036854775807, "buildType": "BUILD"}' http://master:7070/kylin/api/cubes/kylindemo/build2
案例5测试成功
1、数据准备
拷贝文档中的每张表的数据,放到master主机上的hive用户目录下,/home/hive/kylinsample
2、数据导入hive
Expand source
create table default.fact_order (
time_key string,
product_key string,
salesperson_key string,
custom_key string,
quantity_ordered bigint,
order_dollars bigint,
cost_dollars bigint
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
load data local inpath 'kylinsample/fact_order.txt' into table default.fact_order;
DROP TABLE IF EXISTS default.dim_day ;
create table default.dim_day (
day_key string,
full_day string,
month_name string,
quarter string,
year string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
load data local inpath 'kylinsample/dim_day.txt' overwrite into table default.dim_day;
create table default.dim_salesperson (
salesperson_key string,
salesperson string,
salesperson_id string,
region string,
region_code string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
load data local inpath 'kylinsample/dim_salesperson.txt' overwrite into table default.dim_salesperson;
create table default.dim_custom (
custom_key string,
custom_name string,
custorm_id string,
headquarter_states string,
billing_address string,
billing_city string,
billing_state string,
industry_name string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
load data local inpath 'kylinsample/dim_custom.txt' overwrite into table default.dim_custom;
create table default.dim_product (
product_key string,
product_name string,
product_id string,
product_desc string,
sku string,
brand string,
brand_code string,
brand_manager string,
category string,
category_code string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
load data local inpath 'kylinsample/dim_product.txt' overwrite into table default.dim_product;
3、构建kylin model
名称为 WareHouse_01_Model
详细构建过程参考Kylin cube创建
a)模型结构
b) 维度
c)度量
4、构建kylin cube
a)维度
b)度量
c)聚合
构建成功之后,可以在insight界面查询数据。
5、构建Schema
使用Mondrian Schema Workbench来做,详细步骤参考schema-workbench使用说明
做成之后的结果为warehouse.xml
6、在saiku中查询数据
使用saiku界面来查看图表和图形展示效果,详细步骤参考saiku-kylin集成测试
效果图-1
效果图-2
效果图-3