Binding#
binding specifies where the data is stored. parcel supports a Parquet file or directory, or an Iceberg table. It is required unless the contract inherits it from a parent contract. See Contract inheritance.
Parquet file or directory#
contract: purchasing/orders
version: 1.0.0
binding:
parquet: data/orders/
parquet accepts a file path, directory path, or URL. In this example, data/orders/ contains the order files. A single file can be specified as parquet: data/orders-2026-10.parquet.
Iceberg table#
contract: finance/invoices
version: 2.0.0
binding:
iceberg: finance.invoices
An Iceberg table is identified as namespace.table. In this example, finance is the namespace—a group of tables—and invoices is the table containing the data.
Partition columns#
Data can be stored in separate groups by values such as region or month. partitioned_by lists the columns used for those groups:
binding:
iceberg: finance.invoices
partitioned_by: [region, invoice_month]
Here, invoices are stored in separate groups by region and month. partitioned_by records those columns in the contract. It applies to both Parquet and Iceberg data.