Apache Iceberg™-Tabelle in Snowflake erstellen¶
Erstellen Sie Apache Iceberg™-Tabellen in Snowflake für verschiedene Katalogoptionen. Sie können eine Iceberg-Tabelle mit dem Befehl CREATE ICEBERG TABLE erstellen.
Bemerkung
Um eine Iceberg-Tabelle zu erstellen, müssen Sie ein aktives Warehouse haben, das als aktuelles Warehouse Ihrer Sitzung angegeben ist. Es können Fehler auftreten, wenn beim Erstellen einer Iceberg-Tabelle kein aktives Warehouse angegeben wird. Weitere Informationen dazu finden Sie unter Verwenden von Warehouses.
Um eine Iceberg-Tabelle zu erstellen, die mit Snowflake Open Catalog funktioniert, siehe Apache Iceberg™-Tabellen mit Snowflake Open Catalog in Snowflake verwenden.
Snowflake-verwaltet¶
Um eine Iceberg-Tabelle mit Snowflake als Katalog zu erstellen, müssen Sie ein externes Volume und einen Basis-Speicherort (Verzeichnis auf dem externen Volume) angeben, in den Snowflake Tabellendaten und Metadaten schreiben kann. Eine Anleitung zum Erstellen eines externen Volumes finden Sie unter Externes Volume konfigurieren.
Um Tabellenspalten zu definieren, können Sie Iceberg-Datentypen verwenden. Weitere Informationen dazu finden Sie unter Datentypen für Apache Iceberg™-Tabellen.
Im folgenden Beispiel wird eine Iceberg-Tabelle mit Snowflake als Iceberg-Katalog erstellt.
CREATE OR REPLACE ICEBERG TABLE my_iceberg_table (
boolean_col boolean,
int_col int,
long_col long,
float_col float,
double_col double,
decimal_col decimal(10,5),
string_col string,
fixed_col fixed(10),
binary_col binary,
date_col date,
time_col time,
timestamp_ntz_col timestamp_ntz(6),
timestamp_ltz_col timestamp_ltz(6)
)
CATALOG = 'SNOWFLAKE'
EXTERNAL_VOLUME = 'my_ext_vol'
BASE_LOCATION = 'my/relative/path/from/extvol';
Bemerkung
Alternativ können Sie auch die Syntaxvarianten verwenden. Weitere Informationen dazu finden Sie unter CREATE TABLE … AS SELECT und CREATE ICEBERG TABLE … LIKE.
Nachdem Sie eine Tabelle erstellt haben, die Snowflake als Katalog verwendet, können Sie Aktionen wie die folgenden durchführen:
Weitere Informationen dazu finden Sie unter Apache Iceberg™-Tabellen verwalten.
Externer Katalog¶
Um eine Iceberg-Tabelle zu erstellen, die einen externen Katalog oder gar keinen Katalog verwendet, müssen Sie ein externes Volume und eine Katalogintegration angeben. Wenn Sie einen externen Iceberg-Katalog verwenden, müssen Sie möglicherweise zusätzliche Parameter angeben. Wenn Sie zum Beispiel AWS Glue als Katalog verwenden, müssen Sie den Namen einer Katalogtabelle angeben.
Wenn Sie eine Iceberg-Tabelle erstellen, die einen externen Katalog verwendet, führt Snowflake eine erste Aktualisierung der Metadaten aus. Sie können die Metadaten der Tabelle auch manuell mit dem Befehl ALTER ICEBERG TABLE … REFRESH aktualisieren, um die Metadaten mit den jüngsten Tabellenänderungen zu synchronisieren. Weitere Informationen dazu finden Sie unter Tabellen-Metadaten aktualisieren.
AWS Glue¶
Wichtig
Sie müssen eine Katalogintegration für AWS Glue konfigurieren, um eine Vertrauensstellung zwischen Snowflake und dem Glue-Datenkatalog herzustellen. Eine Anleitung dazu finden Sie unter Katalogintegration für AWS Glue konfigurieren.
Im folgenden Beispiel wird eine Iceberg-Tabelle erstellt, die den AWS Glue-Datenkatalog verwendet, wobei der Name einer Katalogintegration angegeben wird, die für AWS Glue (glueCatalogInt
) konfiguriert wurde, sowie ein Wert für die Eigenschaft CATALOG_TABLE_NAME
.
CREATE ICEBERG TABLE myGlueTable
EXTERNAL_VOLUME='glueCatalogVolume'
CATALOG='glueCatalogInt'
CATALOG_TABLE_NAME='myGlueTable';
Nachdem Sie eine Tabelle mit AWS Glue als Katalog erstellt haben, können Sie Aktionen wie die folgenden durchführen:
Iceberg-Dateien im Objektspeicher¶
Im folgenden Beispiel wird eine Iceberg-Tabelle aus Iceberg-Metadaten in einem externen Cloudspeicher erstellt, wobei ein relativer Pfad zu den Tabellen-Metadaten auf dem externen Volume (METADATA_FILE_PATH
) angegeben wird.
CREATE ICEBERG TABLE myIcebergTable
EXTERNAL_VOLUME='icebergMetadataVolume'
CATALOG='icebergCatalogInt'
METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';
Delta-Dateien im Objektspeicher¶
Der folgende Beispielbefehl erstellt eine Iceberg-Tabelle aus Delta-Tabellendateien im Objektspeicher.
Im wird Beispiel ein externes Volume angegeben, das mit dem Cloud-Speicherort der Delta-Tabellendateien verbunden ist, eine Katalogintegration, die für Delta konfiguriert ist, und einen Wert für den erforderlichen Parameter BASE_LOCATION
.
CREATE ICEBERG TABLE my_delta_iceberg_table
CATALOG = delta_catalog_integration
EXTERNAL_VOLUME = delta_external_volume
BASE_LOCATION = 'relative/path/from/ext/vol/';
Wenn die Delta-Tabelle ein Partitionierungsschema verwendet, interpretiert Snowflake das Schema automatisch aus dem Delta-Protokoll.
Apache Iceberg™ REST-Katalog¶
Das folgende Beispiel erstellt eine Tabelle, die einen Remote-Iceberg-REST-Katalog verwendet.
CREATE OR REPLACE ICEBERG TABLE my_iceberg_table
EXTERNAL_VOLUME = 'my_external_volume'
CATALOG = 'my_rest_catalog_integration'
CATALOG_TABLE_NAME = 'my_remote_table';