摘要
在“用Apache Spark分析8000万亚马逊产品评分评价”中,Max Woolf利用Python,R及Apache Spark分析了亚马逊数据集。
本文将介绍如何利用Apache Kylin和Tableau来轻松生成即席查询报表并查看其响应时间。
软硬件要求
所需软件:
Kylin 1.6或以上
BI工具,你可以使用任何你喜爱的BI工具,Tableau Desktop将是本文使用的BI工具。
可选项:如果你没办法直接访问Hadoop集群,可以用Docker来装载一个Hadoop系统 (我装载了没有问题)
克隆以下文件包
git clonehttps://github.com/albertoRamon/Kylin.git
关于亚马逊产品评价数据集
这个数据集提供了两种文件:
评价文件:包含购买完产品后客户给产品的打分,从0到5颗星,并写产品评价。
元数据文件:包含产品的完整描述:产品名称,产品品牌,产品图片,产品分类等。
这些文件中的亚马逊产品通过asin唯一识别码进行关联。
我们使用如下两个文件:
元数据文件是一个gz压缩的json文件,包含940万的产品数据。(大小:3.4GB/10.5GB)
产品评价文件是一个未压缩的CSV文件,包含8260万的评价数据。
将数据下载下来(未压缩)并存在DataDownloaded文件夹,如图所示:
注释1: 下载大文件需要写邮件提交申请。
注释2: 产品评价文件可以用subset部分的一个较小文件替代。
准备数据集
我们需要把这两个原始文件加载到Hive表中,执行这个命令的python脚本如下
python processItem.pypython processMetadata.py
随后你会在DataProcessed文件夹中生成两个新文件,如图所示:
将数据复制到Hive并创建表
如果你在使用Docker
编辑脚本/01-ImportData.sh并指定ID Docker镜像
ContainerID=’58b’
执行以下脚本: 复制数据到Docker容器并创建Hive表
./Scripts/01-ImportData.sh
如果你没有使用Docker:
手动复制DataProcessed文件夹中的数据到你的集群gateway,编辑脚本/02-CreateTB.sql 并指定路径。
set hivevar:PathFiles=/Amazon_Review;
连接你的集群并执行:
hive -f 02-CreateTB.sql
构建Cube
创建新项目
点击
并输入一个项目名称
导入数据源
点击
和
选择需要导入的表 (按住Ctrl多选)
创建数据模型
点击
和
指定一个事实表
指定一个维度表
指定一个维度字段
指定一个计算字段
定义Cube
点击
选择之前定义的Amazon_Review的数据模型
定义其中两个维度为Normal
定义计算字段
在配置文件中覆盖:
开始构建:
>
处理8000万行数据,在一台笔记本上用了30分钟:
用BI工具连接Cube
用Tableau连接Cube生成报表