snowflake.core.iceberg_table.IcebergTableResource¶

class snowflake.core.iceberg_table.IcebergTableResource(name: Annotated[str, Strict(strict=True)], collection: IcebergTableCollection)¶

Bases: SchemaObjectReferenceMixin[IcebergTableCollection]

Represents a reference to a Snowflake Iceberg table.

With this Iceberg table reference, you can create, update, delete and fetch information about Iceberg tables, as well as perform certain actions on them.

Attributes

database¶

The DatabaseResource this reference belongs to.

fully_qualified_name¶

Return the fully qualified name of the object this reference points to.

root¶

The Root object this reference belongs to.

Methods

convert_to_managed(base_location: Annotated[str, Strict(strict=True)] | None = None, storage_serialization_policy: Annotated[str, Strict(strict=True)] | None = None, if_exists: bool = False) → None¶

Convert Iceberg table using external Iceberg catalog into a table that uses Snowflake as the catalog.

Parameters:
  • base_location (str, optional) – The path to a directory where Snowflake can write data and metadata files for the table.

  • storage_serialization_policy (str, optional) – Specifies the storage serialization policy for the table.

  • if_exists (bool, optional) – Whether to error if the Iceberg table doesn’t exist. Default is False.

Examples

Converts an Iceberg table to managed table using its reference, errors if it doesn’t exist:

>>> iceberg_table.convert_to_managed()
Copy

Converts an Iceberg table to managed table using its reference, if it exists:

>>> iceberg_table.convert_to_managed(if_exists=True)
Copy
convert_to_managed_async(base_location: Annotated[str, Strict(strict=True)] | None = None, storage_serialization_policy: Annotated[str, Strict(strict=True)] | None = None, if_exists: bool = False) → PollingOperation[None]¶

An asynchronous version of convert_to_managed().

Refer to PollingOperation for more information on asynchronous execution and the return type.

drop(if_exists: bool = False) → None¶

Drop this Iceberg table.

Parameters:

if_exists (bool, optional) – Whether to error if the Iceberg table doesn’t exist. Default is False.

Examples

Deleting an Iceberg table using its reference, error if it doesn’t exist:

>>> iceberg_table_reference.drop()
Copy

Deleting an Iceberg table using its reference, if it exists:

>>> iceberg_table_reference.drop(if_exists=True)
Copy
drop_async(if_exists: bool = False) → PollingOperation[None]¶

An asynchronous version of drop().

Refer to PollingOperation for more information on asynchronous execution and the return type.

fetch() → IcebergTable¶

Fetch the details of an Iceberg table.

Examples

Fetching a reference to an Iceberg table to print its name:

>>> iceberg_table_reference = root.databases["my_db"].schemas["my_schema"].iceberg_tables["foo"]
>>> my_iceberg_table = iceberg_table_reference.fetch()
>>> print(my_iceberg_table.name)
Copy
fetch_async() → PollingOperation[IcebergTable]¶

An asynchronous version of fetch().

Refer to PollingOperation for more information on asynchronous execution and the return type.

refresh(metadata_file_relative_path: Annotated[str, Strict(strict=True)] | None = None, if_exists: bool = False) → None¶

Refresh the metadata for an Iceberg table that uses an external Iceberg catalog.

Parameters:
  • metadata_file_relative_path (str, optional) – Specifies a metadata file path for a table created from Iceberg files in object storage.

  • if_exists (bool, optional) – Whether to error if the Iceberg table doesn’t exist. Default is False.

Examples

To refresh an Iceberg table using its reference, error if it doesn’t exist:

>>> iceberg_table.refresh()
Copy

To refresh an Iceberg table using its reference, if it exists:

>>> iceberg_table.refresh(if_exists=True)
Copy
refresh_async(metadata_file_relative_path: Annotated[str, Strict(strict=True)] | None = None, if_exists: bool = False) → PollingOperation[None]¶

An asynchronous version of refresh().

Refer to PollingOperation for more information on asynchronous execution and the return type.

resume_recluster(if_exists: bool = False) → None¶

Resume reclustering for an Iceberg table.

Parameters:

if_exists (bool, optional) – Whether to error if the Iceberg table doesn’t exist. Default is False.

Examples

To resume reclustering for an Iceberg table using its reference, error if it doesn’t exist:

>>> iceberg_table.resume_recluster()
Copy

To resume reclustering for an Iceberg table using its reference, if it exists:

>>> iceberg_table.resume_recluster(if_exists=True)
Copy
resume_recluster_async(if_exists: bool = False) → PollingOperation[None]¶

An asynchronous version of resume_recluster().

Refer to PollingOperation for more information on asynchronous execution and the return type.

suspend_recluster(if_exists: bool = False) → None¶

Suspend reclustering for an Iceberg table.

Parameters:

if_exists (bool, optional) – Whether to error if the Iceberg table doesn’t exist. Default is False.

Examples

To suspend reclustering for an Iceberg table using its reference, error if it doesn’t exist:

>>> iceberg_table.suspend_recluster()
Copy

To suspend reclustering for an Iceberg table using its reference, if it exists:

>>> iceberg_table.suspend_recluster(if_exists=True)
Copy
suspend_recluster_async(if_exists: bool = False) → PollingOperation[None]¶

An asynchronous version of suspend_recluster().

Refer to PollingOperation for more information on asynchronous execution and the return type.

undrop() → None¶

Undrop an Iceberg table.

Parameters:

if_exists (bool, optional) – Whether to error if the Iceberg table doesn’t exist. Default is False.

Examples

To undrop an Iceberg table using its reference, error if it doesn’t exist:

>>> iceberg_table.undrop()
Copy

To undrop an Iceberg table using its reference, if it exists:

>>> iceberg_table.undrop(if_exists=True)
Copy
undrop_async() → PollingOperation[None]¶

An asynchronous version of undrop().

Refer to PollingOperation for more information on asynchronous execution and the return type.