Kyligence Copilot - AI 数智助理,以 AI 变革企业经营与管理! 立即了解更多
AI 数智助理
Kyligence Zen Kyligence Zen
Kyligence Enterprise Kyligence Enterprise
Kyligence Turbo Kyligence Turbo
指标平台解决方案
OLAP 解决方案
行业解决方案
客户总览
金融
零售
制造
医药
其他
云平台
BI
寻求合作
资源
Kyligence Enterprise
Kyligence Zen
培训
Apache Kylin
Byzer
Gluten
博客
关于
市场活动
Cube是Kylin做预计算的核心概念,由于预计算结果需要额外的存储,不恰当的设计会导致数据的膨胀。一般来说膨胀倍数控制在10倍以内为佳,如果膨胀倍数过高,会浪费存储空间,也会消耗更多的构建时间。那么如何才能有效降低膨胀倍数呢?在KyBot最新版本中,新增了Cube调优功能,为降低Cube膨胀倍数提供了优化的方向和思路。
KyBot介绍
KyBot https://kybot.io 是为Apache Kylin及其商业版KAP提供在线诊断、优化及服务的平台。通过分析Kylin的日志等信息,为用户提供可视化仪表盘、系统优化、故障排查、技术支持等服务。
仪表盘
在KyBot 的Cube仪表盘中,统计了一个Kylin实例下面所有Cube的膨胀倍数,可以通过降序排列快速定位到膨胀倍数较高的Cube。为了直观体现优化的效果,在本案例中,我们以一个比较极端的,膨胀倍数高达3万多倍的Airline_before(维度多,基数大,未经优化)来探寻优化的方法。
Airline简介
本案例中的Airline数据集来自美国交通运输部,数据主要包含的是美国本土主流航空公司的飞机起降信息,Airline Cube主要是为分析计算航班准点率,平均延误时间,航班数而建立。
减少有效维度的数量
Cube中每一种维度组合的预计算结果都会保存为一个Cuboid,Cuboid数量大小随维度数量增加而呈现指数级增长。而维度之间其实是存在一定的层级、推断等关系,利用这些关系,可以有效减少实际参与计算的维度数量,这些实际参与计算的维度被称为有效维度。在Kylin的高级设置页面可以设置维度之间的关系,通过分析维度和实际业务逻辑设定mandatory/hierarchy/joint/derived等关系,可以减少有效维度数量。下面我们看看如何通过KyBot自动发现这些维度之间的关联。
首先,从下图维度分析可以看出airline_before总共有18个维度,维度比较多。只设置了一个Hierarchy, 且Hierarchy【YEAR,QUARTER,MONTH,DAYOFWEEK,FLIGHTDATE】的每一个维度基数都非常小。可以取消Hierarchy,设置为Joint(一般而言,如把若干维度设置为Hierarchy,cuboid数量可以减少1/2, 若把三个维度维度变成Joint,cuboid数量可以减少3/4)。
其次,从下图可以看出UNIQUECARRIER 基数较小,且与多个维度同时出现。从业务层面考虑,航班准点率等分析都是需要出UNIQUECARRIER来区分,结合数据特征和业务逻辑可以考虑作为Mandatory维度。
最后,多个维度之间一起出现的次数较多,可以结合业务判断是否可以作为Joint。如ARRDEL15总共出现了58次和DEPDEL15一起出现了58次, 到达延误和起飞延误有一定的必然关系,因此可以作为一个Joint。
减少无用Cuboid
收缩率代表了两个Cuboid的相似度,相似度太高,说明Cuboid可以被剪枝。以airline为例,从Cuboid 收缩率统计上发现几十个Cuboid收缩率为90%以上。
结合Cuboid层级图会发现这些Cuboid和它们的父级Cuboid行数都很多,这些差异不大的Cuboid过多会导致数据冗余。例如下图中一个收缩率为100%的Cuboid, 行数为201722行,而这个Cuboid的父级Cuboid行数为198925,行数很多,却差异不大。
对比两个Cuboid, 发现他们的差异维度CANCELLED基数比较小,不需要单独作为一个有效维度,可以考虑设置为Joint且设置后排列组合空间不会有剧烈膨胀。
优化操作
设置UNIQUECARRIER为Mandatory维度。
拆分层级聚合组,设置原层级维度【YEAR,QUARTER,MONTH,DAYOFWEEK,FLIGHTDATE】为Joint。
设置【DEPDEL15, ARRDEL15,CANCELLED,DIVERTED,AIRLINEID】【ORIGINCITYNAME和ORIGINSTAE】【DESTICITYNAME,DESTSTATE】【DEPTIMEBLK,ARRTIMEBLK】为Joint。
优化结果
在设置了相应的Mandotory, 若干组Joint 维度之后,优化后的Airline_modify膨胀率降低至13.18倍,效果非常显著。
验证查询性能
去除了冗余的Cuboid之后,原先击中这个Cuboid的查询就会转而去击中它的父级Cuboid。虽然父级Cuboid行数要比原先的Cuboid多,但是不会多很多,所以几乎没有影响。
我们结合实际业务,挑选了若干个重要的并且使用频繁的查询场景,在airline_before 和airline_modify上分别执行相同的SQL语句。从下面两图对比可以看出,优化前后的查询响应时间仍旧全部分布在0-1S之内。
总结
降低膨胀倍数的关键在于减少可聚合的维度和无用的Cuboid,在应用中不仅需要结合KyBot的分析还需要对实际业务有深刻理解,才可以有效地降低膨胀倍数。
近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。Kyligence 在服务众多客户的过
数据要素在银行各业务领域和流程中发挥着至关重要的作用,面对激烈的市场竞争和客户需求,银行越来越注重从数据管理中
作为一名消费者,炎热的夏天我们会走进一家便利店,从冰柜中选出一瓶汽水;下午工作有点累了,我们会在公司的自动贩卖
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿(Luke)分享了对 AI 与数据行业的一些战
房地产行业是我国国民经济中的重要支柱产业之一,在房地产市场供求关系发生重大变化的当下,房企面临多重挑战。Kyl
今年年初,Kyligence 高级副总裁兼合伙人葛双寅(Silas Ge)受邀在阿斯利康“跃行致远三十周年年会
2024 年伊始,Kyligence 联合创始人兼 CEO 韩卿在公司内部的飞书订阅号发表了多篇 Rethin
400 8658 757
工作日:10:00 - 18:00
已有账号? 点此登陆
预约演示,您将获得
完整的产品体验
从数据导入、建模到分析的全流程操作演示。
行业专家解惑
与资深行业专家的交流机会,解答您的个性化问题。
请填写真实信息,我们会在 1-2 个工作日内电话与您联系。
全行业落地场景演示
涵盖金融、零售、餐饮、医药、制造等多个行业,最贴合您的业务需求与场景。
Data + AI 应用落地咨询
与资深技术专家深入交流,助您的企业快速落地 AI 场景应用。
申请体验,您将获得
体验数据处理性能 2x 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持