# Iceberg tables & Foundry datasets [Iceberg tables](../overview/index.md) and [datasets](../../data-integration/datasets/index.md) are both resource types which allow you to represent tabular data in Foundry. Iceberg tables offer interoperability with the broader Iceberg ecosystem along with capabilities such as row-level edits and changelogs, while datasets currently support a wider set of Foundry features. ## Benefits of Iceberg tables The following benefits of Iceberg tables are currently available in Foundry: * **Interoperability:** Open Iceberg format means third-party tools can more easily read and write Palantir Iceberg tables. * **Compaction:** Support for [compaction](../maintenance-page/index.md) without affecting incremental reads. * **Row edits:** Support for `DELETE`, `UPDATE`, and `MERGE INTO` statements, which allow you to conditionally modify rows without the need to re-snapshot. * **Changelogs:** [Incrementally consume](../changelogs/index.md) row deletions and updates. * **Enriched table history:** Enhanced history view surfacing Iceberg [table metadata ↗](https://iceberg.apache.org/spec/?h=metadata#table-metadata). The interface for viewing Iceberg table history can be seen in the following screenshot: ![The Iceberg table history view in the dataset application.](../../../assets/3e88ac047452d49964aba0143172d6a6464b436247274b56007f7a2699e6a77e.webp) ## Foundry functionality not available for Iceberg tables Certain Foundry features are not currently supported for Iceberg tables, including: * [Foundry views](../../data-integration/views/index.md) ([Iceberg views ↗](https://iceberg.apache.org/view-spec/) are also not supported) * [Restricted views](../../security/restricted-views/index.md) * [Streaming](../../data-integration/streams/index.md) * [Time series syncs](../../time-series/time-series-syncs/index.md) * [Projections](../../optimizing-pipelines/projections-overview/index.md) * [Object materializations](../../object-edits/materializations/index.md) ## Granular access controls The supported approach to granular access controls depends on where users access the data: * **In the Ontology:** Object types backed by Iceberg tables can use [object and property security policies](../../object-permissioning/object-security-policies/index.md) for row-level and column-level access control. Support for these policies on Iceberg-backed object types may not be available on your enrollment. Contact Palantir Support to request access. * **At the table level:** Iceberg tables cannot directly back [restricted views](../../security/restricted-views/index.md). If you need row-level access control outside the Ontology, create a Foundry dataset that reads from the Iceberg table, then create the restricted view from that dataset. Iceberg tables also support markings for table-wide access controls. See [Markings on Iceberg tables](../markings/index.md). ## Marketplace support You can package managed Iceberg tables into [Marketplace products](../../foundry-devops/create-products/index.md) and [install those products](../../marketplace/install-product/index.md) into a target environment. Each installed table must use the same [storage type](../storage/index.md) as the packaged table: Foundry-managed storage or bring-your-own-bucket (BYOB) storage. For example, a table using Foundry-managed storage cannot be installed as a table using BYOB storage, and vice versa. ## Notable differences between Iceberg tables and Foundry datasets The following differences in behavior between Iceberg tables and Foundry datasets are important to note. * **Default branches:** Iceberg's main branch is called `main`, whereas Foundry's main branch is called `master`. In Foundry's integration with Iceberg, `main` and `master` are treated as the same, which means a Foundry job running on `master` will write to an Iceberg table's `main`. See [Branching](../branching/index.md) for details on how Foundry isolates schema changes per branch. * **Markings:** A marking inherited by any retained Iceberg snapshot can prevent users who do not satisfy that marking from reading the entire table, including otherwise unmarked branches. Dataset marking enforcement is scoped more narrowly to the requested view. See [Markings on Iceberg tables](../markings/index.md) for details and guidance on unmarking workflows. * **Automatic schema evolution:** Iceberg table schema evolution is not always automatic. Certain workflows, such as table replaces, evolve the table's schema automatically; however, others require explicit schema evolution commands or settings, such as `ALTER TABLE`. When writing through Foundry's transforms APIs and Pipeline Builder, Foundry uses table replaces when running non-incrementally to handle this for you. Other workflows, such as incremental schema evolution, may fail and require manual resolution. See the [Apache Iceberg documentation on schema evolution ↗](https://iceberg.apache.org/spec/#schema-evolution) for details. ## Iceberg terminology disambiguation Iceberg introduces terms that do not always have direct equivalents in Foundry: | Iceberg term | Meaning | Foundry disambiguation | | --- | --- | --- | | [Table metadata ↗](https://iceberg.apache.org/spec/#table-metadata) | Metadata describing the structure, schema, and state of an Iceberg table. | Foundry also tracks metadata for tables and datasets across all formats, but this metadata is managed internally by Foundry services. For Iceberg tables, Foundry exposes the native Iceberg metadata explicitly as a JSON file via the Iceberg catalog. | | [Snapshots ↗](https://iceberg.apache.org/spec/#snapshots) | A record of the table's state at a specific point in time. Iceberg creates a new snapshot with every data modification. | An Iceberg snapshot is roughly equivalent to a Foundry [transaction](../../data-integration/datasets/index.md#transactions). However, Foundry also uses the term ["snapshot"](../../data-integration/datasets/index.md#snapshot) differently: in Foundry, a "snapshot" refers to a transaction that fully replaces all data in a dataset, while an Iceberg snapshot captures all types of data operations, including incremental changes. See [Iceberg snapshot types](../snapshots/index.md#snapshot-types) for a complete disambiguation of Foundry catalog dataset transaction types and Iceberg snapshot types. |