今年年初,Kylin 社区发布了 MDX for Kylin,越来越多小伙伴开始在多个场景使用。本文将带领大家看看 MDX for Kylin 如何快速玩转海量数据的明细钻取!欢迎大家访问最新用户手册。
一、场景介绍
数据分析师在进行数据分析过程中,观察到与预期不符的度量值的时候,可能会进一步进行下钻检查相关明细,探究与预期不符的原因,从而完成从“发现现象”到“找到原因”的过程。
如下图,某公司的财务人员想查看当前所有订单中部分国家地区消费者的营收情况,可以通过 Excel 快速实现目的。
图. 使用 Excel 对小规模数据集进行明细下钻
财务人员在获得了最终的订单业绩汇总后,可能会进一步检索业绩的详细数据。比如,财务发现当前 “JORDAN” 地区的消费者整体业绩不符合预期,可以通过双击“ JORDAN”地区的用户业绩数值,得到关于“JORDAN”地区的消费者数据,或许可以通过对该地区消费用户的定向营销以促进销售业绩。
从上面的演示我们能看到,面对少量的数据,使用 Excel 即可满足需求。但是如果数据量达到一定规模,比如到百万千万级别,Excel 就变得非常缓慢,甚至无法处理。这时候用户又该如何方便地实现明细数据下钻呢?
二、用 Excel 轻松玩转海量数据
为了能让 Excel 完成海量数据的分析,玩转明细钻取,我们需要将大数据工具与 Excel 连接使用。
MDX for Kylin 是由 Kyligence 贡献、使用 Apache Kylin 作为数据源的 MDX 查询引擎。MDX for Kylin 的使用体验接近 Microsoft SSAS,可以集成多种数据分析工具,包括了 Microsoft Excel 等,可以为大数据分析场景下提供更极致的体验。
MDX for Kylin 底层引擎 Kylin 可响应超大数据规模的指标查询,下钻的明细如果是超大的数据量也不在话下。
请跟随本文的介绍,来看看下 MDX for Kylin 如何快速玩转海量数据的明细钻取吧。
以下假设用户已经安装好最新 Apache Kylin 4.0.2 版本。关于 Apache Kylin 更多的安装部署详情,请参考 Apache Kylin 官网文档。
「准备工作」
- 下载并安装 MDX for Kylin
- 访问链接
https://s3.cn-north-1.amazona... ,下载 MDX for Kylin。
- 解压 MDX for Kylin 安装包
$ tar -xf mdx-for-kylin-1.0.0-beta.tar.gz
- 加密元数据库访问密码
加密 MDX for Kylin 元数据库访问密码,并记录返回的字符。
$ cd $MDX_HOME
$ bin/mdx.sh encrypt '<填入 MDX for Kylin 元数据数据库密码>'
- 修改配置文件
配置 insight.properties 参数。
$ vi $MDX_HOME/conf/insight.properties
insight.kylin.host=需要连接的 Kylin 服务器的 IP 地址或 Hostname
insight.kylin.port=需要连接的 Kylin 服务器的端口号
insight.database.type: 需要连接的 MDX for Kylin 使用的数据库的类型,默认为 mysql, 如果使用PostgreSQL作为元数据库,需要更改类型为postgresql
insight.database.ip=需要连接的 MDX for Kylin 使用的数据库服务器的 IP 地址或 Hostname
insight.database.port=需要连接的 MDX for Kylin 使用的数据库的端口号
insight.database.name=需要连接的 MDX for Kylin 使用的数据库的名称
insight.database.username=需要连接 MDX for Kylin 使用的数据库的连接用户名
insight.database.password=需要填入通过上一步加密以后的 MDX for Kylin 使用的数据库连接用户的密码
- 启动 MDX for Kylin
$ $MDX_HOME/bin/mdx.sh start
关于 MDX for Kylin 更多的安装细节,请参考 MDX for Kylin 安装前置条件 和 MDX for Kylin 安装流程。
- Kylin 侧配置适配
- 在 Kylin 侧需要打开查询下压以及跳过通过预计算索引回答明细查询的开关。
$ vi $KYLIN_HOME/conf/kylin.properties
...
# For 4.x
kylin.query.pushdown.runner-class-name=org.apache.kylin.query.pushdown.PushDownRunnerSparkImpl
kylin.query.enable-no-aggregate-query=true
- 重启 Kylin
$ KYLIN_HOME/bin/kylin.sh restart
- 在 MDX for Kylin 中创建预期要分析的数据集
- 登录 MDX for Kylin
- 创建预期分析的数据集
这里我们用 SSB 数据集 Star Schema Benchmark
(https://www.cs.umb.edu/~ponei...)作为示例。您也可使用 Kylin 已有的任意数据模型。
在 Kylin 侧构建完成预期要分析的度量列之后,可直接点击下一步,直到数据集创建完成即可。
「Excel 数据源连接 MDX for Kylin」
Excel 作为数据的分析入口,可以通过配置 Analysis Services 连接 MDX for Kylin 作为预期分析的数据源,即可进行分析。
- 打开 Microsoft Excel (for Windows)
- 配置 MDX for Kylin 地址,请替换 IP_Adress 为 MDX For Kylin 部署机器的 IP 地址,用户名和密码使用 Kylin 的账号和密码。
图. 配置 Excel 与 MDX for Kylin 的连接串
整体连接流程示例如下:
图. Excel 连接 MDX for Kylin
更多关于 Excel 连接 MDX for Kylin 作为数据源细节,请参考 MDX for Kylin 与 Excel 的集成https://kyligence.github.io/m...。
「明细下钻分析」
所有准备工作完毕,接下来就可以进行明细钻取了。在文章开头,我们已经发现了少量数据集的情况下存在部分不符合预期的业绩明细。现在在 600w 数据量的情况下,也可以一样地去分析不同国家之间的业绩。
- 拖拽分析的维度和度量
分析所有时间段内的不同国家的业绩收入。
- "双击"预期分析的国家业绩进行明细钻取
用户可以通过“双击”预期分析某一国家的业绩收入,进行明细钻取。例如,CHINA 是所有国家当中业绩收入排名最高的国家,那么可以通过钻取 CHINA 国家的业绩收入,查看相关明细。
图. 双击钻取明细
- 查看钻取的明细数据
在明细数据过多的情况下,为了展示和查看的性能,Excel 默认会展示明细钻取的前 1000 行数据。
图. 查看明细
我们可以通过修改 Excel 的连接属性,钻取更多的行数,请注意过多的行数设置,可能存在一定的性能问题。修改方式如下, "点击 '查询和连接' -> 右键连接'属性' -> 编辑 '要检索的最大记录数'"。
三、总结
通过 MDX for Kylin,数据分析师可以轻松在 Excel 完成自助取数,并且可以对数据中感兴趣的部分进行自由的数据钻探,来挖掘数据的价值。
相比分析师提需求,数据开发根据需求取数的传统流程,MDX for Kylin 在支持大数据的数据分析的同时,降低了沟通成本和人力成本,大大提升了企业的工作效率和数据分析师的工作灵活性,可以为企业快速定位业务发展瓶颈,助力业务往正确的方向走得更远。
四、参考
关于 MDX for Kylin 的更多详情,请参考:
- MDX for Kylin 操作手册:https://kyligence.github.io/m...
- 其他 Kylin 版本与 MDX for Kylin 兼容: https://github.com/Kyligence/...
- Apache Kylin 4.x 查询下压: https://kylin.apache.org/cn/d...
- Apache Kylin 3.x 查询下压:https://kylin.apache.org/cn/d...
感兴趣的同学,欢迎查看 MDX for Kylin 的明细下钻相关代码实现:
https://github.com/Kyligence/...
五、Kylin 5 最新动态
对于大家期待的 Kylin 5.0,社区将通过支持明细索引来加速非聚合查询(明细查询),明细索引通过物化 Join 和 shardBy 两个主要方式来加速明细查询。对于还不了解 Kylin 5.0 新特性的小伙伴,欢迎观看 ApacheCon Asia 回放视频来了解 Kylin 5.0 社区开发路线。