Introducing Columnar Cookbook
Most developers still connect to databases using row-oriented patterns and tools. This works, but it’s inefficient—especially for analytical workloads and bulk data operations. Apache Arrow and ADBC offer a modern, columnar-native alternative, but practical, runnable examples have been hard to find.
Columnar Cookbook is an open source collection of recipes for database connectivity and data interchange with Apache Arrow and ADBC. Each recipe is self-contained, runnable, and follows a consistent structure so you can quickly find what you need and adapt it to your own projects.
If you’re new to ADBC, you might want to start with the ADBC Quickstarts, which show the simplest possible way to connect to a data system and run a query. Columnar Cookbook builds on those basics with more variety and depth.
What’s Inside
The cookbook currently includes 14 recipes across three categories:
- ADBC Database Connections — Guides for connecting to databases using ADBC in Python, covering MySQL, MariaDB, TiDB, PostgreSQL, Citus, ParadeDB, TimescaleDB, and DuckDB. Each covers connection setup, query execution, bulk ingestion, and metadata retrieval.
- Data Loading with dlt — Guides for using dlt with Parquet as the loader file format and ADBC for database connectivity, targeting PostgreSQL and MySQL.
- Parquet Ingestion — A real-world example loading ~3.5 million NYC Yellow Taxi trip records from a Parquet file into MariaDB.
The Stack
Every recipe builds on the same core technologies:
- Apache Arrow — columnar in-memory format
- ADBC — Arrow-native database connectivity
- Apache Parquet — columnar file format
These technologies work together to keep data in columnar format end-to-end, avoiding the serialization overhead of traditional row-oriented workflows.
Get Started
Columnar Cookbook is open source and welcomes contributions—whether that’s a new database guide, a performance optimization recipe, or an improvement to an existing notebook. Browse the recipes at cookbook.columnar.tech or check out the contributing guide on GitHub.