1、前言
上一篇 Impala SQL on Kudu优化谈到了如何从执行计划的角度来优化查询SQL,感兴趣的同学可以去回看关注下(Impala SQL on Kudu优化(一)_一个数据小开发的博客-优快云博客),本篇优化将主要从建表层面来谈谈优化。
2、概念&理念
官网上对分区表也有一些表述,大家可以看看。Apache Kudu - Using Apache Kudu with Apache Impala
根据主键列上的分区schema,表被划分为tablets。每个tablets至少有一个tablet服务器。理想情况下,一个表应该被划分为分布在多个tablets服务器上的tablet,以最大化并行操作。您使用的分区schema的细节完全取决于您存储的数据类型以及如何访问它。有关Kudu中schema设计的完整讨论,请参阅Schema设计。
Kudu目前没有在创建表后拆分或合并tablets的机制。在创建表时,必须为它提前提供分区模式。在设计表时,考虑使用主键,这将允许您将表数据平均划分到不同的的tables中并保持数据匀速增长。
您可以使用Impala的partition BY关键字对表进行分区,该关键字支持RANGE或HASH分布。分区方案可以包含零个或多个