Registry / workflow / apache-airflow-providers-apache-iceberg

apache-airflow-providers-apache-iceberg

JSON →
library2.0.3pypypiunverified

Apache Airflow provider for Apache Iceberg, enabling interaction with Iceberg tables via Airflow. Current version 2.0.2 requires Python >=3.10 and Airflow >=2.10.0. Released monthly alongside other providers.

pip install apache-airflow-providers-apache-iceberg
INSTALL
IMPORT
SIG · APACHE-AIRFLOW-PRO
A
apache-airflow-providers-apache-iceberg
workflowpythonv2.0.3
Install
25.1s avg
Import
Disk
283MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v2.0.3 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 285.5MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 25.1s · import 0.000s · 290MB
283MB installed
● package 283MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

IcebergOperator
from airflow.providers.apache.iceberg.operators.iceberg import IcebergOperator
from airflow.providers.apache.iceberg.operators.iceberg import IcebergOperator

Define a DAG that appends data to an Iceberg table using an IcebergOperator.

from datetime import datetime from airflow import DAG from airflow.providers.apache.iceberg.operators.iceberg import IcebergOperator dag = DAG( 'iceberg_quickstart', start_date=datetime(2024, 1, 1), schedule_interval=None, catchup=False, ) with dag: append_data = IcebergOperator( task_id='append_to_table', conn_id='iceberg_default', catalog_name='default', namespace='default', table='my_table', sql='INSERT INTO my_table VALUES (1, "test")', )
Debug
Known issues
breakingIn version 2.0.0, the `conn_id` parameter is now required and must reference a connection configured for Iceberg. Previously, some operators defaulted to a generic connection.
fix
Ensure an Iceberg connection (e.g., type 'Iceberg') is created in Airflow and reference its `conn_id` in all operators.
affects: >=2.0.0
gotchaThe operator `IcebergOperator` is not a direct replacement for Spark or Flink SQL on Iceberg. It sends SQL queries to a configured catalog (e.g., via PyIceberg), not to a compute engine.
fix
Use `IcebergOperator` only for catalog-level operations (DDL, simple DML). For heavy transformations, use SparkSubmitOperator or similar.
affects: all
deprecatedThe hook class was renamed from `IcebergHook` to `IcebergHook` (remains same), but the old import path `airflow.providers.apache.iceberg.hooks.iceberg_hook` is deprecated since 1.1.0.
fix
Use `from airflow.providers.apache.iceberg.hooks.iceberg import IcebergHook`.
affects: >=1.1.0,<2.0.0
Upgrade
Version history
2.0.3latest on PyPI · released Jun 7, 2026
Audit
Dependencies
apache-airflowrequiredCore dependency; provider requires Airflow >=2.10.0
pyicebergrequiredPython Iceberg client library for table operations
Agent activity
42 hits · last 30 days
node
38
OpenAI (training)
1
Resources
apache-airflow-providers-apache-iceberg — pip install apache-airflow-providers-apache-iceberg · libregistry