# ICEBERG TABLE

{% hint style="warning" %}
At this moment only UNMANAGED Iceberg tables are supported.

Please read a guide about using [Iceberg tables](https://docs.snowddl.com/guides/other-guides/iceberg-tables) with SnowDDL first.
{% endhint %}

Config path: `/<database>/<schema>/iceberg_table/<name>.yaml`

Examples:

```yaml
metadata_file_path: test_iceberg_table_1/metadata/00001-cc112050-1448-4c2a-9e03-504e7f5fc62a.metadata.json
replace_invalid_characters: true
```

```yaml
catalog_table_name: test_iceberg_table_1
comment: abc
```

## Schema

* **catalog\_table\_name** (str) - name of Iceberg table in externally managed catalog
* **catalog\_namespace** (str) - namespace of Iceberg table in externally managed catalog, inherited from CATALOG object by default
* **metadata\_file\_path** (str) - path to metadata file
* **base\_location** (str) - path to base location of table files
* **replace\_invalid\_characters** (bool)
* **auto\_refresh** (bool)
* **comment** (str)

## Usage notes

1. EXTERNAL VOLUME name and CATALOG name should be specified in [SCHEMA](https://docs.snowddl.com/basic/yaml-configs/schema) config.
2. It is required to specify one of the following parameters: **catalog\_table\_name**, **metadata\_file\_path**, **base\_location**.
3. Unmanaged Iceberg tables are similar to Snowflake External tables. These tables are read-only and fully re-created in case of any changes in definition.

## Links

* [CREATE ICEBERG TABLE](https://docs.snowflake.com/en/sql-reference/sql/create-iceberg-table)
* [ALTER ICEBERG TABLE](https://docs.snowflake.com/en/sql-reference/sql/alter-iceberg-table)
* [SHOW ICEBERG TABLES](https://docs.snowflake.com/en/sql-reference/sql/show-iceberg-tables)
* [Parser & JSON Schema (GitHub)](https://github.com/littleK0i/SnowDDL/blob/master/snowddl/parser/iceberg_table.py#L9-L40)
