字节跳动 Kylin On Parquet 新架构分享
作者头像
  • lxx1994x
  • 2019-11-12 06:44:11 4

10月26日字节跳动技术沙龙:大数据架构分享

10月26日,字节跳动在上海总部成功举办了“大数据架构专场”的技术沙龙活动。活动中,来自Kyligence的大数据研发工程师陶加涛与字节跳动的数据仓库架构师郭俊、存储工程师徐明敏,以及阿里云的高级技术专家白宸共同探讨了大数据架构的相关话题。

Kyligence大数据研发工程师陶加涛的分享主题

陶加涛分享了题为《Apache Kylin原理介绍与新架构分享(Kylin On Parquet)》的主题演讲。他介绍了自己在Kyligence的工作经历,特别是在Apache Kylin的商业版本方面。他的演讲分为三个方面:首先,他简要介绍了Apache Kylin及其查询原理;其次,他讲述了团队正在开发的Parquet存储技术,预计将于今年年底贡献给开源社区;最后,他分享了用户广泛使用的精确去重功能及其在Kylin中的实现和扩展。

Apache Kylin的应用场景

Apache Kylin是一个开源的分布式分析引擎,能够在Hadoop/Spark之上提供SQL查询接口和多维分析(OLAP)功能,以支持超大规模数据。Kylin最初由eBay Inc开发并贡献给开源社区。它可以在亚秒级时间内查询庞大的Hive表。

作为一个SQL加速层,Kylin可以连接各种数据源(如Hive、Kafka)并集成多种BI系统(如Tableau、PowerBI)。当产品或业务方需要加速查询、提高查询并发度、减少资源占用,并支持完整的SQL语法时,Kylin是一个很好的选择。

Apache Kylin的基本原理

Kylin的核心思想是预计算,通过预先计算所有可能的查询结果,利用空间换时间的方式来加速OLAP查询。Kylin的基础理论是立方体(Cube)理论,每个维度组合称为一个Cuboid,所有Cuboid的集合称为Cube。Kylin将预计算后的数据视为一张大宽表,查询时自动选择最合适的Cuboid,从而大幅减少数据扫描量和计算量。

Apache Kylin的查询流程

Kylin的查询流程包括以下几个步骤: 1. 根据用户查询转换成查询计划。 2. 重写查询计划,使其能够查询预计算的数据。 3. 选择合适的Cuboid进行查询。 4. 根据查询结果执行聚合操作。

例如,用户查询商品访问表(stock),希望分析商品的PV。Kylin会根据用户查询生成一个SQL语句,并将其重写为适合预计算数据的SQL语句,以提高查询效率。

Kylin On HBase

Kylin当前的开源版本将数据存储在HBase中。当查询准确匹配Cuboid时,Kylin查询服务器端不会做太多计算。然而,当查询较为复杂时,Kylin查询服务器端需要从HBase拉回大量数据,并执行复杂的聚合操作,这可能导致内存溢出(OOM)。此外,HBase的运维难度较高,容易影响Kylin性能的稳定性。

Kylin On Parquet

为了解决上述问题,Kyligence研发了基于Spark和Parquet的新一代方案。该方案通过遍历生成的逻辑执行计划树,将每个算子翻译成Spark DataFrame的一个操作。通过这种方式,所有计算都是分布式的,不存在单点瓶颈,可以灵活地扩展系统计算能力。此外,该方案减少了对HBase的依赖,简化了运维工作,并提高了查询的稳定性和性能。

Kylin中的精确去重

Kylin使用预计算和位图(Bitmap)技术来加速精确去重。这种方法特别适用于大规模数据集,能够实现快速响应。通过使用位图,Kylin可以在毫秒级别内完成精确去重。此外,Kylin还在多个应用场景中展示了其精确去重的优势,包括留存分析、漏斗分析、用户画像和明细分析。

QA集锦

  • 发问:Kylin On Parquet如何使用Spark?

    • 回答:Kylin启动时会向Yarn提交一个常驻的SparkContext,后续查询会发送到Spark进行计算。
  • 发问:位图如何处理非数字类型的数据?

    • 回答:针对非数字类型的数据,Kylin会建立全局字典,为每个数据分配一个ID,以便生成位图。
  • 发问:全局字典何时使用?

    • 回答:全局字典仅在构建阶段使用,用于生成位图。构建完成后,查询时可以直接对位图进行聚合。
  • 发问:构建的Cube会占用大量空间吗?

    • 回答:这取决于具体情况。如果没有剪枝策略,Cube可能会占用大量空间。Kylin提供了一套剪枝机制来优化空间使用,具体细节可以参考Kylin官网文档。

欢迎加入我们的微信交流群,进一步探讨相关话题(微信号:245915794)。Apache Kylin已经在全球范围内拥有超过1000名用户,是一个成熟的大数据OLAP解决方案。

    本文来源:图灵汇
责任编辑: : lxx1994x
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
字节跳动架构Parquet分享Kylin
    下一篇