Hash and hash partitioning
Kudu can support any number of hash partitioning levels in the same table, as long as the levels have no hashed columns in common.
In the example above, the table is hash partitioned on host
into 4 buckets, and hash partitioned on metric
into 3 buckets, resulting in 12 tablets.
Although writes will tend to be spread among all tablets when using this strategy, it is slightly
more prone to hot-spotting than when hash partitioning over multiple independent columns, since
all values for an individual host or metric will always belong to a single tablet. Scans can take
advantage of equality predicates on the host
and
metric
columns separately to prune partitions.
Multiple levels of hash partitioning can also be combined with range partitioning, which logically adds another dimension of partitioning.