BigData / Apache Hudi Interview Questions
How do you design a partitioning strategy for a very large Hudi table?
Partitioning in Hudi determines both physical file layout and, for partition-level indexes, how upsert lookups are scoped — so it's worth deliberately designing rather than defaulting to whatever column happens to be handy.
- Pick a partition column whose value rarely or never changes per record — typically a date derived from an event timestamp, since a partition-level index breaks down if a record's partition can shift.
- Avoid over-partitioning — too many small partitions (e.g., partitioning by minute) creates small-file sprawl; a coarser grain like daily is usually better.
- Avoid under-partitioning — a single giant partition concentrates all writes and forces every lookup to scan a huge amount of data.
- If the natural key can legitimately move between partitions (e.g., a "current status" column used for partitioning), prefer a global index like GLOBAL_BLOOM or the Record-Level Index instead of a partition-level one.
- Combine with clustering to sort or co-locate records within each partition by a secondary column frequently used in query predicates.
More Related questions...