使用 Cube Planner
自 Apache Kylin v2.3.0 起使用
Cube Planner
什么是 Cube Planner
OLAP 解决方案权衡了线上查询速度和线下 Cube build 花费(build Cube 的计算资源及保存 Cube 数据的存储资源)。资源效率是 OLAP engine 的最重要的能力。为了提高资源利用率,pre-build 最有价值的 cuboids 是至关重要的。
Cube Planner 使 Apache Kylin 变得更节约资源。其智能 build 部分 Cube 以最小化 building Cube 的花费且同时最大化服务终端用户查询的利益,然后从运行中的查询学习模式且相应的进行动态的推荐 cuboids。
前提
为使得在 WebUI 上的 Dashboard 有效,您需要设置 kylin.cube.cubeplanner.enabled=true 以及 kylin.properties 中的其他属性。
kylin.cube.cubeplanner.enabled=true
kylin.server.query-metrics2-enabled=true
kylin.metrics.reporter-query-enabled=true
kylin.metrics.reporter-job-enabled=true
kylin.metrics.monitor-enabled=true
如何使用
注意:Cube planner 分为两个阶段。阶段 1 可以在构建 Cube 前基于估算的 cuboid 大小推荐 cuboid 列表,然而阶段 2 是根据统计信息为已存在的 Cube 推荐 cuboid 列表。优化前 Cube 应该在产品上线一段时间(如 3 个月)。因而 Kylin 平台从终端用户收集了足够真实的查询且使用他们优化 Cube。
步骤 1:
选择一个 Cube
步骤 2:
- 点击 ‘Planner’ 按钮查看 Cube 的 ‘Current Cuboid Distribution‘。
应该确保 Cube 的状态是 ‘READY’
如果 Cube 的状态是 ‘DISABLED‘,将不能使用 Cube planner。
如果 Cube 之前已经 build 过,需要通过 building 或 enabling 它来将其状态从 ‘DISABLED’ 变为 ‘READY‘。
步骤 3:
a. 点击 ‘Planner’ 按钮查看 Cube 的 ‘Current Cuboid Distribution‘。
数据将会展示在 Sunburst Chart。
每一部分代表一个 cuboid,以不同的颜色展示,颜色取决于对 cuboid 查询的频率。
您可以移动鼠标经过图标然后它将会展示 cuboid 的详细信息。
详细信息包含 5 属性,’Name‘,’ID‘,’Query Count‘,’Exactly Match Count‘,’Row Count’ 和 ‘Rollup Rate‘。
Cuboid Name 由几个 ‘0’ 或 ‘1’ 组成。其意味着 dimensions 的结合。’0’ 意味着 dimension 在这个组合中不存在,’1’ 在这个组合中存在。所有的 dimensions 由在 advanced settings 中设置的 HBase 的 row keys 进行排序。
样例:
“1111111110000000” 意味着 dimension 组合是 [“MONTH_BEG_DT”,”USER_CNTRY_SITE_CD”,”RPRTD_SGMNT_VAL”,”RPRTD_IND”,”SRVY_TYPE_ID”,”QSTN_ID”,”L1_L2_IND”,”PRNT_L1_ID”,”TRANCHE_ID”],其基于 row key 排序。
ID 是 cuboid 唯一的 id
Query Count 是这个 cuboid 服务的查询总数,包括那些未预计算 cuboids 的查询,但是从线上 cuboid 中聚合出来。
Exactly Match Count 是针对 cuboid 的真实查询的查询数量统计。
Row Count 是针对这个 cuboid 所有 segment 的总 row 统计。
Rollup Rate = (Cuboid 的 Row 统计数 / 其父母 cuboid 的 Row 统计数) * 100%
太阳图表的中心包含基本 cuboid 的组合信息。其 ‘名字’ 由几个 ‘1’ 组成。
至于一片叶子,其 ‘名字’ 由几个 ‘0’ 和 1’ 组成。
如果您想要指定一片叶子,点击它。视图将会自己变化。
如果您想要指定一片叶子的父叶子,点击圆圈中心(标记为黄色的部分)。
b. 点击 ‘Recommend’ 按钮去查看 Cube 的 ‘Recommend Cuboid Distribution‘。
如果 Cube 正在 building,Cube planner 的 ‘Recommend’ 功能将不能被执行。请等待 cube build 完成。
数据将会被使用唯一的算法计算。看见这个窗口很正常。
数据将会被展示在太阳图表
- 每一个部分以不同的颜色展示,颜色取决于频率。
- ‘Recommend Cuboid Distribution’ 图表的具体操作和 ‘Current Cuboid Distribution’ 图表的一样。
- 当鼠标悬停在太阳形图表上时,用户可以从 cuboid 中指出 dimension 名称,如下图所示
- 用户可以点击导出从现有的 Cube 中以 json 文件导出受欢迎的维度组合(TopN cuboid,当前包括 Top 10,Top 50,Top 100 选项),并将其下载到您的本地文件系统,用于在创建 Cube 时记录或将来导入 dimension 组合。
c. 点击 ‘Optimize’ 按钮优化 Cube。
一个确认窗口会弹出。点击 ‘Yes’ 开始优化。点击 ‘Cancel’ 取消优化。
用户可以在 Cube Planner 标签页了解 Cube 的最新优化时间。
- 用户可以收到一个 Cube 优化 job 的邮件通知。