DuckLake and QuestDB: the same Parquet, a different table format
Blog post from QuestDB
QuestDB’s cold storage uses plain Hive-partitioned Parquet files, allowing the same data to be registered without copying into multiple table formats, including Iceberg and DuckLake, while remaining directly queryable through Parquet readers. Both formats provide metadata for file membership, schemas, snapshots, and statistics, but Iceberg stores metadata files alongside data in object storage and supports broad lakehouse interoperability, whereas DuckLake 1.0 stores metadata as rows in a SQL catalog such as SQLite, PostgreSQL, or DuckDB, enabling indexed metadata queries and avoiding manifest-file maintenance. DuckLake can register QuestDB files with `ducklake_add_data_files`, infer schemas from Parquet, and query the resulting table in DuckDB, although DuckDB may expose QuestDB nanosecond timestamps at microsecond precision. Catalog synchronization is required when QuestDB adds or removes cold partitions because neither format automatically discovers files; DuckLake registrations must be carefully diffed to avoid duplicate row counts, while removals require re-registering the surviving file set. Since DuckLake maintenance may otherwise rewrite or delete registered files, compaction should be disabled and storage access can be limited to read-only credentials. Iceberg is positioned for broad organizational and multi-engine lakehouse access, while DuckLake is suited to simpler, fast DuckDB-centric analysis, illustrating how open Parquet storage lets table formats remain a flexible per-use-case metadata choice rather than a permanent data commitment.
No tracked trend matches for this post yet.
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.