关于数据库:氪信团队再夺冠易观数科第四届OLAP算法大赛前三甲诞生

10月24日,易观数科第四届OLAP算法大赛正式落下帷幕,本届大赛由UCloud资助、思否、infoQ、CSDN等技术媒体提供反对。历时40多天,经验了大赛报名、测试体验、正式较量等重重环节,氪信团队、火山酱油团队、谦谦团队怀才不遇,夺得前三甲,处分别离为6万、3万、1万现金大奖。授奖仪式在10月24日的2020易观A10数据智能峰会开发者日上进行,易观CTO郭炜为获奖者颁奖。

随后,冠军团队——氪信团队进行了较量分享。氪信团队去年就曾以300毫秒精确解决8亿条行为数据的问题夺得了易观第三届OLAP算法大赛冠军,往年面对不一样的题目和规定,毫不逞强,再度折冠!

以下为冠军团队在易观A10数据智能峰会上的分享:

赛题解读
往年的赛题,相当于提供了一个APP用户经营的场景,原始数据为十亿量级的用户行为数据,比方某个用户拜访了AI,做了一个行为比方查看一件商品、购买等,而平台有5000万的用户数据,这也就象征要将用户属性、用户分群关联到数十亿事件的序列下面,这其实是一个在绝对无限的机器环境下有挑战的问题。

而正式较量时应用的三台8C16G的机器,要把查问工作做到几秒甚至几百毫秒,这其实就是算法自身的一个重大挑战。

本届赛事难点
本届算法大赛,选手尽管提前3天拿到服务器和正式较量数据,看起来有较富裕的预处理工夫。但在较量前15分钟,选手们会收到100多万的增量数据,工夫短到不足以对全量数据做预计算、建cube。

第四届OLAP算法大赛以事件剖析为主题,题目要求进行event表和profile表的关联,两个表之间数据量比照为1000000000 VS 50000000,join开销过大。此外,题目还考查参赛者计算去重小计数、中位数等指标的分布式计算办法,较为简单。

解题思路与技巧
氪信团队选取了ClickHouse + 氪信准实时剖析平台来实现本次较量,基于用户ID和日期别离建设分片,而后依据题目类型自行抉择适合的分片来执行计算。采纳了列存+低基数(low cardinality)优化+数据压缩的存储计划,计算计划上则采纳零共享MPP+CPU指令集优化+数据加热的形式。

10亿条对5000万条的关联,如果咱们称之为绝对较大的join,那么在三台配置较低的机器下,内存和硬盘的应用都要十分审慎。氪信团队的解决方案是:

首先,通过离线工作的形式,将历史数据整合成大宽表,并将未能胜利关联的event 表数据抽离进去;

随后,在获取到100万条event、5万条profile的增量数据后,将增量event 与未关联的历史event数据、全量profile做关联,这样须要join的数据仅为数百万对5000w条数据关联,大大降低了内存压力;

最初,做多维查问时,仅须要对预处理好的单表进行操作,而这正是clickhouse善于的工作。

教训分享

较量时到底是谋求极致的速度、还是灵活性/回退能力?氪信团队在分享中提到,LZ4的解压性能是次要瓶颈;在计算小计/总计时,节约了一次实现的扫描过程,能够用-Resample 组合并扫描;通过预排序/预分组则能够节俭去重计数的开销。

随着颁奖仪式的完结,易观第四届OLAP算法大赛至此圆满收官。自8月份开启选手报名通道以来,收到了来自爱奇艺、哔哩哔哩、中国移动、中科院计算所、中南大学等超百家团队的报名。除了冠军团队在会上的分享,亚军酱油团队、季军谦谦团队也别离提交了问难PPT,前三甲的源代码也都将开源进去供爱好者浏览学习。

可返回算法大赛官网查看:

http://ds.analysys.cn/portal/…

作为国内OLAP算法畛域内的重要赛事,易观近四年来的保持旨在推动国内OLAP技术的交换,荟聚算法智慧,为推动数据计算和利用能力、践行数据能力平民化而致力。期待明年有更多团队退出算法大赛!

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据