You can use Foundry Iceberg tables as inputs and outputs in Python transforms and Pipeline Builder. This page provides a high-level overview of the available workflows.
The following table summarizes the main options for building pipelines with Foundry-managed Iceberg tables:
| Authoring experience | Compute engine | Snapshot | Append-only incremental | Changelog incremental | Client-side encryption |
|---|---|---|---|---|---|
| Python transforms | Spark: Foundry APIs | ✅ | ✅ | ✅ | ✅ |
| Python transforms | Spark: Iceberg Spark APIs | ✅ | ✅ | ✅ | ✅ |
| Python transforms | Single-node: Foundry APIs | ✅ | ✅ | ❌ | 🟡 |
| Python transforms | Single-node: PyIceberg APIs | ✅ | ✅ | ❌ | ❌ |
| Pipeline Builder | Standard Spark pipelines | ✅ | ✅ | ❌ | ✅ |
| Pipeline Builder | Faster pipelines | ❌ | ❌ | ❌ | ❌ |
All Foundry-managed Iceberg tables must use server-side encryption. The final column refers to the client-side encryption option and whether the given pipeline type currently supports reading and writing tables with this additional layer of Iceberg table encryption ↗.
Note that Foundry's APIs for single-node Python transforms support reading and writing client-side encrypted Iceberg tables, but filter pushdown is not currently supported in this scenario.
Python transforms offer the ability to create Spark or single-node pipelines using a variety of open-source libraries and compute engines.
For details on working with Iceberg in Python transforms, see:
Pipeline Builder provides a no-code graphical interface for constructing data pipelines.
You can use Iceberg tables as inputs and outputs in Pipeline Builder:
To process an input incrementally, use a standard Spark pipeline and set the Iceberg input's computation mode to Incremental.
The option to create an Iceberg table as a pipeline output will only appear for pipelines in projects that have Iceberg storage configured. See Configuring Iceberg settings in Control Panel for details.