Hi folks,

I'd like to propose adding a new community provider for DuckDB.

Integration overview:
---------------------

DuckDB is an in-process analytical (OLAP) database. Unlike most SQL
providers there is no server to connect to: queries run inside the task
process, which makes it a cheap way to run an analytical transform that
doesn't justify standing up a cluster. It reads and writes Parquet, CSV and
JSON directly from object storage, so it fits naturally between an extract
and a load step in a
Dag.

It also fits Airflow's existing shape well: The proposed DuckDB provider
speaks DbAPI, so it plugs into the common-sql ecosystem rather than needing
new machinery, and it fits in the data-processing/ETL space. DuckDB Labs
was acquired by Amazon but DuckDB remains MIT licensed and controlled by
the DuckDB Foundation. It is usable with no account, no signup and no
hosted service.

The provider exposes a DuckDBHook extending DbApiHook, so it works with
SQLExecuteQueryOperator and the rest of the common-sql ecosystem, plus a
DuckDBExecuteQueryOperator and a duckdb connection type. The connection is
optional: with none configured the hook opens an in-memory database.

Provider specific integrations would live in their relevant provider
package (e.g. for AWS, an AwsDuckDBHook in apache-airflow-providers-amazon
for credential management).

System tests:
-------------

DuckDB runs in-process with no live external service, so system tests are
not
required for this provider; the unit tests exercise a real in-memory DuckDB.
An AWS-specific system test could be added in the Amazon provider package,
if folks think that's required.

Proposed stewards:
------------------

Myself and the AWS team plan to sponsor and steward this package, you know
us and our track record well :)

- Niko Oliveira (@o-nikolas)
- Vincent Beck (@vincbeck)

Working implementation
----------------------

https://github.com/apache/airflow/pull/72845

Incubation commitment
---------------------

We commit to:

- Maintaining the provider and responding to issues within a reasonable time
- Meeting the incubation health metrics within 6 months
- Participating in quarterly governance updates

Cheers,
Niko

Reply via email to