Kylin查询性能优化之使用rowkeys排序列快速读取parquet文件、使用shardby列来裁剪parquet文件

文章介绍了如何利用rowkeys排序列加速Parquet文件的读取,以及如何通过设置shardBy列来裁剪文件,提高查询效率。在cube定义中,rowkeys确保数据按特定顺序存储,便于快速检索。shardBy列的选择应为高基列且在多个cuboid中出现,支持Equality、In、InSet、IsNull等过滤操作,减少不必要的文件扫描。
摘要由CSDN通过智能技术生成

1. 使用rowkeys排序列快速读取parquet文件

在进行cube的定义时,默认会有一个rowkeys排序列。这样cube构建时,每个cuboid的维度字段都会根据rowkeys排序列,进行数据的排序保存。这样在数据查询的时候就能很快的检索到数据了

在Cube Designer的Advanced Setting的Rowkeys部分,可以在ID区域拖拽进行rowkeys顺序的自定义,如下所示:

rowkeys

2. 使用shardby列来裁剪parquet文件

默认一个cube的一个segment的一个cuboid里面,会有多个parquet文件。如下所示:

多个parquet文件如果将一个列定义为shardBy列,则shardBy列不同的值会形成不同的parquet文件,这样查询的时候对shardBy列做条件过滤,就能直接跳过不必要的文件扫描

建议选择高基列(数据基本不重复或者均为唯一值的列),并且会在多个cuboid中
出现的列作为shardBy列

目前在SQL查询中只支持以下过滤操作来裁剪parquet文件:Equality、
In、InSet、IsNull

2.1 shardBy列的使用

先将cube进行Disable,再进行Purge(会删除cube的元数据,但是HDFS上的数据不会删除)

最后进行Edit,在Cube Designer的Advanced Setting的Rowkeys部分,可以定义某些维度为shardBy列,如下所示:

shardBy列再次进行cube的构建即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值