ALTER ICEBERG TABLE … CONVERT TO MANAGED¶
Konvertiert eine Apache Iceberg™-Tabelle, die einen externen Iceberg-Katalog verwendet, in eine Tabelle, die Snowflake als Katalog verwendet (eine von Snowflake verwaltete Iceberg-Tabelle).
Die konvertierte Tabelle unterstützt sowohl Lese- als auch Schreiboperationen, und Snowflake übernimmt die gesamte Lebenszykluswartung der Tabelle, wie z. B. die Komprimierung. Weitere Informationen dazu finden Sie unter Vor und nach der Tabellenkonvertierung.
Syntax¶
ALTER ICEBERG TABLE [ IF EXISTS ] <table_name> CONVERT TO MANAGED
[ BASE_LOCATION = '<directory_for_table_files>' ]
[ STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED } ]
Parameter¶
table_name
Bezeichner für die zu konvertierenden Tabelle.
Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.
Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.
[ BASE_LOCATION = 'directory_for_table_files' ]
Der Pfad zu einem Verzeichnis, in das Snowflake Daten- und Metadaten-Dateien für die Tabelle schreiben kann. Geben Sie einen relativen Pfad zum Speicherort der Tabelle
EXTERNAL_VOLUME
an. Weitere Informationen dazu finden Sie unter Daten- und Metadatenverzeichnisse.Sie müssen einen Wert für diese Eigenschaft angeben, wenn die ursprüngliche CREATE ICEBERG TABLE-Anweisung keinen
BASE_LOCATION
-Wert zuließ oder einschloss.Dieses Verzeichnis kann nicht mehr geändert werden, nachdem Sie eine Tabelle konvertiert haben.
STORAGE_SERIALIZATION_POLICY = { COMPATIBLE | OPTIMIZED }
Gibt die Speicherserialisierungsrichtlinie für die Tabelle an. Wenn bei der Konvertierung nichts angegeben wird, erbt die Tabelle den auf Schema-, Datenbank- oder Kontoebene eingestellten Wert. Wenn der Wert auf keiner Ebene angegeben wird, verwendet die Tabelle den Standardwert.
Sie können den Wert dieses Parameters nicht mehr ändern, nachdem Sie eine Tabelle konvertiert haben.
COMPATIBLE
: Snowflake führt eine Codierung und Komprimierung durch, die die Interoperabilität mit Computing-Engines von Drittanbietern sicherstellt.OPTIMIZED
: Snowflake führt die Codierung und Komprimierung aus, um eine optimale Tabellenperformance in Snowflake sicherzustellen.
Standard:
OPTIMIZED
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
OWNERSHIP |
Iceberg-Tabelle |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
USAGE |
Externes Volume |
|
USAGE |
Katalogintegration |
Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Nur der Eigentümer der Tabelle (d. h. die Rolle mit der Berechtigung OWNERSHIP für die Tabelle) oder ein Benutzer mit weitreichenderen Berechtigungen kann diesen Befehl ausführen.
Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
Beispiele¶
Im folgenden Beispiel wird die Anweisung ALTER ICEBERG TABLE … CONVERT TO MANAGED verwendet, um eine Tabelle, die nicht von Snowflake verwaltet wird, in eine Tabelle zu konvertieren, die Snowflake als Iceberg-Katalog verwendet.
ALTER ICEBERG TABLE myTable CONVERT TO MANAGED
BASE_LOCATION = 'my/relative/path/from/external_volume';