Table Options¶
Table options control how Fabricks creates and manages physical Delta tables across steps. Use these options to define properties, layout, constraints, identity, retention, and more. Options are generally provided under table_options at the job level (and may also be set as step defaults in your runtime config).
Common options¶
- identity: Enables a Delta identity column on the target table. If
identity: true, the identity column is auto-created when the table is created. - liquid_clustering: Enables Delta Liquid Clustering where supported by the Databricks runtime.
- partition_by: List of partition columns (e.g.,
[date_id, country]). - zorder_by: Columns used for Z-Ordering (improves data skipping).
- cluster_by: Logical clustering keys (materialization depends on runtime features).
- bloomfilter_by: Columns to maintain Bloom filters on (where supported).
- constraints: Map of table constraints (e.g.,
primary key(__key)). - properties: Arbitrary Delta table properties (key/value pairs).
- comment: Table comment/description.
- calculated_columns: Map of computed columns populated on write.
- retention_days: Table VACUUM retention period (days).
- powerbi: true to apply Power BI~specific metadata (if supported).
Option matrix (types | defaults | compatibility)¶
| Option | Type | Default | Applies to modes | Notes |
|---|---|---|---|---|
| identity | boolean | false | append, complete, update |
Creates a Delta identity column on table create. |
| liquid_clustering | boolean | false | append, complete, update |
Requires Databricks runtime support. |
| partition_by | array[string] | ~ | append, complete, update |
Low-cardinality columns recommended. |
| zorder_by | array[string] | ~ | append, complete, update |
Improves data skipping on frequently filtered columns. |
| cluster_by | array[string] | ~ | append, complete, update |
Logical clustering; materialization depends on runtime features. |
| bloomfilter_by | array[string] | ~ | append, complete, update |
Use selectively for point-lookups. |
| constraints | map[string,string] | ~ | append, complete, update |
E.g., primary key(__key). |
| properties | map[string,string] | ~ | append, complete, update |
Arbitrary Delta table properties. |
| comment | string | ~ | append, complete, update |
Table description. |
| calculated_columns | map[string,string] | ~ | append, complete, update |
Computed at write time. |
| retention_days | integer | ~ | append, complete, update |
VACUUM retention (days). |
| powerbi | boolean | false | append, complete, update |
Applies Power BI~specific metadata where supported. |
Notes:
- table_options are ignored in memory mode (view-only).
- Defaults may also be set at step level in your runtime and overridden per job.
Minimal example¶
- job:
step: gold
topic: fact
item: option
options:
mode: `complete`
table_options:
identity: true
cluster_by: [monarch]
properties:
delta.enableChangeDataFeed: true
comment: Strength lies in unity
Extended example¶
- job:
step: gold
topic: sales
item: curated
options:
mode: `update`
change_data_capture: `scd1`
table_options:
identity: true
partition_by: [date_id]
zorder_by: [customer_id, product_id]
bloomfilter_by: [order_id]
constraints:
primary_key: "primary key(__key)"
properties:
delta.minReaderVersion: 2
delta.minWriterVersion: 5
delta.enableChangeDataFeed: true
comment: "Curated sales model with CDC"
retention_days: 30
calculated_columns:
ingestion_date: "current_date()"
Notes and guidance¶
- Scope:
table_optionsapply to physical table modes (append,complete,update). They do not apply tomemorymode (view-only). - Identity: When
identity: trueis enabled, the identity column is defined at create time - See Identity. - Layout vs performance: Start with
partition_byon low-cardinality columns; addzorder_byfor frequently filtered high-cardinality columns. Use Bloom filters selectively for point-lookups. - Defaults: You can specify step-level defaults in your runtime config and override them per job.
Related topics¶
- Steps: Bronze | Silver | Gold
- Data quality checks: Checks & Data Quality
- Custom logic integration: Extenders, UDFs & Parsers
- Runtime configuration: Runtime