我需要为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 字段。
正确的方法是什么?