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
博客
关于
市场活动
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据。它能在亚秒内查询巨大的数据集 。本文将详细介绍Apache Kylin 1.5中的新功能: Top-N预计算。
大家都听过二八定律,这是在很多领域存在的规律,例如世界上20%的人占有了超过80%的财富;20%最受欢迎的商品,贡献超过了80%的销售额等等。 二八定律背后的规律是Zipf分布法则,它是美国学者G.K.齐普夫在统计英文单词出现频率时发现的规律。简单说就是如果把频率出现最高的单词的频率看作是1的话,第二个出现的频率是二分之一,第三个是三分之一,依此类推,出现的频率是它排名的某次幂分之一。
图1的右图是facebook上统计的NBA各球队受赞次数排名,它也基本符合Zipf分布。
在互联网时代,还有一个知名的理论-长尾效应,举例来说就是某个网站的用户或者商品的数量非常的多,但是大部分都是访问频率(或价值)极低的,这条尾巴可以很长。长尾的存在对大数据分析带来挑战,因为它的基数(cardinality)特别高,如何从中快速找到高价值的商品或者用户,是一个迫切而难度很高的任务。
现在来看一个典型的Top-N查询示例。该查询是选择在 2015年10月1日,地址在北京,销售商品按价格之和排序(倒序),找前100个。
在Kylin v1.5之前,SQL中的group by列,需声明成维度,所以这个Cube的维度中要有日期,地点和商品名,度量是SUM(PRICE) 。图3展示了一个这样设计Cube。因为商品的基数很大,计算的cuboid的行数会很多;而度量值SUM(PRICE)是非排序的,因此需要将这些纪录都从存储器读到Kylin查询引擎中(内存), 然后再排序找出最高的纪录;这样的解决办法总开销较大。
针对上面的情形,Kylin开发团队决定另辟蹊径来处理这种查询,研究了多种Top-N的解决方法;由于在大数据的背景下,算法要求一定是可并发执行的,计算结果是需要可再次合并的,而计算结果的少量误差是可以接受的; 最终Kylin选择了Space-Saving算法[1],以及它的一个衍生版Parallel Space-Saving[2],并在此之上做了特定的优化。这种算法的优势是使用较少的空间,同时保证较高的精确度。
有了Top-N之后,Cube的设计会比以前简单很多,因为像刚才的商品名会被挪到Measure中去,在Measure里按Sum值做倒序,只保留最大的若干值。
值得一提的是需要用多少空间运算Top-N。简单来说存储空间越多准确率越高。我们通过使用生成一些样本数据然后用Space-Saving计算,并且跟真实结果做比较,发现50倍空间对于普通的数据分布是够用的。也即,用户需要Top 100的结果,Kylin对于每种组合条件值,保留Top 5000的纪录, 并供以后再次合并。这样即使多次合并, Top100依然是比较接近真实结果。
Top-N的优点:因为它只保留Top的记录,会让Cube空间大幅度减少,而查询性能大大提升。在一个典型的例子里,改用Top-N后,Cube的大小减少了90%,而查询时间则只有以前的10%不到。
缺点是它可能是近似的结果(当50倍空间也无法容纳所有基数的时候)。如果业务场景需要绝对精确的话,它可能不适合。
Top-N误差率由很多因素决定的:
1)数据的分布:数据分布越陡,误差越小。
2)算法使用的空间:如果对精度要求高的话,可以选择用更多的空间换取更精准的准确率 。在实际使用中,可以做一些比较以了解误差情况。
未来Top N的功能将有了进一步提升,例如可以将多个维度放入到Top N度量中,使用非字典编码等,敬请期待。
[1] Ahmed Metwally, et al. “Efficient computation of frequent and top-k elements in data streams”. Proceeding ICDT’05 Proceedings of the 10th international conference on Database Theory, 2005.
[2]Massimo Cafaro, et al. “A parallel space saving algorithm for frequent items and the Hurwitz zeta distribution”. Proceeding arXiv: 1401.0702v12 [cs.DS] 19 Setp 2015.
作者介绍
史少锋,Kyligence技术合伙人兼资深架构师,Apache Kylin核心开发者和项目管理委员会成员(PMC),专注于大数据分析和云计算技术。曾任eBay全球分析基础架构部大数据高级工程师,IBM云计算部门软件架构师;曾是IBM公有云Bluemix DevOps团队核心成员,负责平台的规划、开发和运营。
近年来,随着商业环境的竞争日益激烈,企业对于实时数据服务的需求急剧增加。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 加速
同等规模资源、同等量级数据、同一套数据处理逻辑,处理耗时下降一半
专家支持
试用部署、生成数据、性能对比各操作环节在线支持