用于高基数字段的Apache Impala优化

时间:2017-11-11 16:01:56

标签: sql hadoop database-design business-intelligence impala

我需要为Apache Impala创建一个存储大量数据的表 结构如下:

time_key date
organization_name string
client_id string
kpi1
kpi2
...

目标是以特定的 time_key organization_name client_id 查询时,以最低可能的延迟存储数据

我可以将 time_key organization_name 字段作为低基数的分区键。但 client_id 字段有数百万个唯一值。所以我想基于hdfs目录的分区将不起作用。

client_id 仅由数字表示,其长度是固定的。

我想的选择很少:

  • client_id 字段创建固定数量的分区,每个分区代表一定的间隔,例如id的第一个或最后一个数字

  • 是否有使用Hive bucketing?我不确定impala是否能够使用它,我不确定它是否会影响表扫描速度。

  • 我没有找到任何关于它的信息,但也许Impala有某种索引或类似功能?

目前我没有机会使用真实群集上的真实数据测试Impala,因此我需要正确猜测存储 client_id 字段。

正确的方法是什么?

0 个答案:

没有答案