Why it matters
HDFS is great for immutable data but painful for updates. Traditional workarounds involve ACID Hive (with high write overhead) or copy-on-write patterns (with high storage overhead). Kudu solves this directly.
The architecture
Kudu tables have primary keys. Rows are stored in columnar format across tablets (Kudu's equivalent of partitions), and updates modify rows in place via LSM-style writes.
Impala queries Kudu via the Kudu client library. Predicate pushdown into Kudu means Impala only reads matching rows; column pushdown reads only needed columns.
How it works end to end
Primary key operations (INSERT, UPDATE, DELETE, UPSERT) are supported. Kudu enforces primary key uniqueness and manages consistency.
Range partitioning: tables can be range-partitioned on the primary key. New ranges are added as needed.
Hash partitioning: distributes writes across tablets. Combined with range for time-series distribution.