# Build data pipelines with Iceberg tables You can use Foundry Iceberg tables as inputs and outputs in [Python transforms](../../transforms-python/overview/index.md) and [Pipeline Builder](../../pipeline-builder/overview/index.md). This page provides a high-level overview of the available workflows. ## Choose a pipeline authoring experience The following table summarizes the main options for building pipelines with Foundry-managed Iceberg tables: | Authoring experience | Compute engine | Non-incremental | 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](../storage/index.md#encryption-settings) option and whether the given pipeline type currently supports reading and writing tables with this additional layer of [Iceberg table encryption ↗](https://iceberg.apache.org/docs/latest/encryption/). 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. ## Build pipelines with Python transforms 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: * [Transforms with Iceberg](../python-transform-basics/index.md) * [Code examples](../code-examples/index.md) * [Advanced Iceberg APIs](../advanced-apis/index.md) * [Incremental transforms](../incremental-transforms/index.md) * [Incremental code examples](../incremental-code-examples/index.md) ## Build pipelines with Pipeline Builder [Pipeline Builder](../../pipeline-builder/overview/index.md) provides a no-code graphical interface for constructing data pipelines. You can use Iceberg tables as inputs and outputs in Pipeline Builder: 1. Open Pipeline Builder and create a standard or faster batch pipeline. 2. Select **Add Foundry data**, then select an existing Iceberg table. 3. Add and connect the transforms required for your workflow. 4. In the pipeline outputs panel, select **Add pipeline output**. 5. Select **Foundry Iceberg table**, then configure the output name and location. 6. Preview the result, then deploy the pipeline. To process an input incrementally, use a standard Spark pipeline and set the Iceberg input's computation mode to **Incremental**. :::callout{theme="neutral"} 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](../iceberg-settings/index.md) for details. :::