Externes Volume konfigurieren¶
Ein externes Volume ist ein benanntes Snowflake-Objekt auf Kontoebene, das Sie verwenden, um Snowflake mit Ihrem externen Cloudspeicher für Iceberg-Tabellen zu verbinden. Ein externes Volume speichert eine Identitäts- und Zugriffsverwaltungseinheit (IAM) für Ihren Speicherort. Snowflake verwendet die IAM-Entität, um eine sichere Verbindung zu Ihrem Speicher für den Zugriff auf Tabellendaten, Iceberg-Metadaten und Manifest-Dateien herzustellen, in denen das Tabellenschema, Partitionen und andere Metadaten gespeichert sind.
Ein einzelnes externes Volume kann eine oder mehrere Iceberg-Tabellen unterstützen.
Sie müssen ein externes Volume erstellen, bevor Sie in Snowflake eine Apache Iceberg™-Tabelle erstellen können.
Externes Volume erstellen¶
Die Schritte zur Erstellung eines externen Volumes hängen von Ihrem Cloudspeicheranbieter ab.
Anleitungen finden Sie unter den folgenden Themen:
Jedes externe Volume ist mit einem bestimmten Aktiver Speicherort verbunden, und ein einzelnes externes Volume kann mehrere Iceberg-Tabellen unterstützen. Die Anzahl der externen Volumes, die Sie benötigen, hängt jedoch davon ab, wie Sie Ihre Tabellendaten speichern, organisieren und sichern möchten.
Sie können ein einziges externes Volume verwenden, wenn Sie die Daten und Metadaten für alle Ihre Snowflake-Iceberg-Tabellen in Unterverzeichnissen unter demselben Speicherort (z. B. im selben S3 Bucket) haben möchten. Um diese Verzeichnisse für von Snowflake verwaltete Tabellen zu konfigurieren, siehe Daten- und Metadatenverzeichnisse.
Alternativ können Sie auch mehrere externe Volumes erstellen, um verschiedene Speicherorte unterschiedlich zu sichern. Sie könnten zum Beispiel die folgenden externen Volumes erstellen:
Ein externes Volume mit Lesezugriff für extern verwaltete Iceberg-Tabellen.
Ein externes Volume, das mit Lese- und Schreibzugriff für von Snowflake verwaltete Tabellen konfiguriert ist
Ein externes Volume überprüfen¶
Überprüfen Sie ein externes Volume, um zu prüfen, ob Snowflake sich erfolgreich bei Ihrem Speicheranbieter über ein von Ihnen konfiguriertes externes Volume authentifizieren kann. Sie können ein externes Volume mit SQL oder Snowsight verifizieren.
Verwenden von SQL¶
Um ein externes Volume mit SQL zu überprüfen, rufen Sie die SYSTEM$VERIFY_EXTERNAL_VOLUME-Funktion auf.
Geben Sie den Namen des externen Volumes an, das Sie überprüfen möchten.
SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Verwenden von Snowsight¶
Um ein externes Volume mit Snowsight zu überprüfen, führen Sie die folgenden Schritte aus:
Melden Sie sich bei Snowsight an.
Wählen Sie im Navigationsmenü die Option Catalog » External data aus.
Wählen Sie die Registerkarte External volumes aus.
Wählen Sie das externe Volume aus, dessen Verbindung Sie überprüfen möchten.
Wählen Sie … » Verify connection aus.
Externes Standardvolumen auf Konto-, Datenbank- oder Schema-Ebene festlegen¶
Sie können entweder ein vorhandenes externes Volume als Standard oder ein neues externes Volume als Standard festlegen, wenn Sie es erstellen.
Ein vorhandenes externes Volume als Standard festlegen¶
Um ein vorhandenes externes Volume als Standard für Iceberg-Tabellen festzulegen, können Sie den Parameter EXTERNAL_VOLUME auf den folgenden Ebenen einstellen:
- Konto:
Kontoadministratoren können mit dem Befehl ALTER ACCOUNT die Parameter für das Konto festlegen. Wenn der Wert für das Konto festgelegt ist, werden die Lese- und Schreiboperationen aller im Konto erstellten Iceberg-Tabellen standardmäßig auf diesem externen Volume ausgeführt.
- Objekt:
Benutzer können den entsprechenden CREATE <Objekt>- oder ALTER <Objekt>-Befehl ausführen, um den Parameterwert von EXTERNAL_VOLUME auf Datenbank- oder Schema-Ebene zu überschreiben. Es wird die Deklaration mit dem kleinsten Geltungsbereich verwendet: Schema > Datenbank > Konto.
Zusätzlich zu den Mindestberechtigungen, die für das Ändern eines Objekts mit dem entsprechenden ALTER <Objekttyp>-Befehl erforderlich sind, muss eine Rolle die USAGE-Berechtigung für das externe Volume haben.
Bemerkung
Änderungen am Parameter EXTERNAL_VOLUME gelten nur für Tabellen, die nach der Änderung erstellt wurden. Bestehende Tabellen verwenden weiterhin das externe Volume, das bei ihrer Erstellung angegeben wurde.
Alternativ können Sie beim Erstellen des externen Volumes mit Snowsight ein externes Standardvolume auf Konto-, Datenbank- oder Schemaebene festlegen.
Beispiel¶
Mit der folgenden Anweisung wird ein externes Volume (my_s3_vol) für eine Datenbank namens my_database_1 festgelegt:
ALTER DATABASE my_database_1
SET EXTERNAL_VOLUME = 'my_s3_vol';
Nachdem Sie ein externes Volume auf Datenbankebene festgelegt haben, können Sie eine Iceberg-Tabelle in dieser Datenbank erstellen, ohne ein externes Volume angeben zu müssen. Mit der folgenden Anweisung wird eine Iceberg-Tabelle in my_database_1 erstellt, die Snowflake als Katalog und das für die Datenbank als Standard-Volume festgelegte externe Volume (my_s3_vol) verwendet.
CREATE ICEBERG TABLE iceberg_reviews_table (
id STRING,
product_name STRING,
product_id STRING,
reviewer_name STRING,
review_date DATE,
review STRING
)
CATALOG = 'SNOWFLAKE'
BASE_LOCATION = 'my/product_reviews/';
Ein neues externes Volume als Standard festlegen¶
Um ein neues externes Volume als Standard für Iceberg-Tabellen festzulegen, wenn Sie das externe Volume in Snowsight erstellen, verwenden Sie das Feld Scope in den Konfigurationseinstellungen, um das externe Volume als Standard auf Konto-, Datenbank- oder Schemaebene festzulegen.
Eine Anleitung zum Erstellen eines externen Volumes in Snowsight finden Sie in den folgenden Abschnitten:
USAGE-Berechtigungen für ein externes Volume durch Verwendung von Snowsight zuweisen¶
Die USAGE-Berechtigung erteilt die Möglichkeit, auf das externe Volume zu verweisen und Details zum externen Volume anzuzeigen. Weitere Informationen dazu finden Sie unter Berechtigungen von externen Volumes.
Um USAGE-Berechtigungen für ein externes Volume durch Verwendung von Snowsight zu gewähren, gehen Sie wie folgt vor:
Melden Sie sich bei Snowsight an.
Wechseln Sie zu einer Rolle, die über die OWNERSHIP-Berechtigungen für das externe Volume verfügt, dem Sie USAGE-Berechtigungen gewähren möchten.
Eine Anleitung zum Wechseln einer Rolle finden Sie unter Ihre Primärrolle wechseln. Weitere Informationen zur OWNERSHIP-Berechtigung finden Sie unter Berechtigungen von externen Volumes.
Wählen Sie im Navigationsmenü die Option Catalog » External data aus.
Wählen Sie die Registerkarte External volumes aus.
Wählen Sie das externe Volume aus, dem Sie die USAGE-Berechtigungen zuweisen möchten.
Wählen Sie + Privilege aus.
Wählen Sie im Feld Roles die Rolle aus, der Sie die USAGE-Berechtigung für das externe Volume zuweisen möchten.
Wählen Sie im Feld Privileges die Option USAGE aus.
Wählen Sie Grant privileges aus.
Mit Snowsight einen Speicherort hinzufügen¶
Bemerkung
Um einen Speicherort zu einem externen Volume mit SQL hinzuzufügen, verwenden Sie den Parameter ADD STORAGE_LOCATION des Befehls ALTER EXTERNAL VOLUME.
Um einen benannten Speicherort für ein externes Volume durch Verwendung von Snowsight hinzuzufügen, gehen Sie wie folgt vor:
Melden Sie sich bei Snowsight an.
Wechseln Sie zu einer Rolle, die über die OWNERSHIP-Berechtigung für das externe Volume verfügt, für das Sie einen Speicherort hinzufügen möchten.
Eine Anweisung dazu finden Sie unter Ihre Primärrolle wechseln.
Wählen Sie im Navigationsmenü die Option Catalog » External data aus.
Wählen Sie die Registerkarte External volumes aus.
Wählen Sie das externe Volume aus, dem Sie einen Speicherort hinzufügen möchten.
Wählen Sie … » Add storage location aus.
Wählen Sie Ihren Cloudspeicheranbieter aus, und geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen möchten:
Wählen Sie die Registerkarte Amazon S3 aus.
Geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen:
Feld
Beschreibung
Location name
Geben Sie einen Namen für Ihren zusätzlichen Speicherort ein.
Region type
Gibt den Cloudspeicheranbieter an, der Ihre Datendateien speichert.
Standard (default): S3-Speicher in öffentlichen AWS-Regionen außerhalb Chinas.
Government (GovCloud): S3-Speicher in AWS-Regionen für Regierungsbehörden <label-us_gov_regions>.
S3 role ARN
Gibt den Amazon Resource Name (ARN; mit Beachtung der Groß-/Kleinschreibung) der AWS-Rolle für Identitäts- und Zugriffsverwaltung (IAM) an, die Berechtigungen für den S3-Bucket mit Ihren Datendateien erteilt.
Sie haben diesen Wert notiert, als Sie eine IAM-Rolle erstellt haben.
Encryption (optional)
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
None (default): Keine Verschlüsselung.
SSE-S3: Serverseitige Verschlüsselung mit S3-verwalteten Verschlüsselungsschlüsseln. Weitere Informationen dazu finden Sie unter Verwenden der serverseitigen Verschlüsselung mit Amazon S3-verwalteten Verschlüsselungsschlüsseln (SSE-S3).
SSE-KMS (enter key): Serverseitige Verschlüsselung mit in KMS gespeicherten Schlüsseln. Weitere Informationen dazu finden Sie unter Verwenden der serverseitigen Verschlüsselung mit AWS Key Management Service (SSE-KMS).
Connectivity
Gibt an, ob Sie ausgehende private Konnektivität verwenden möchten, um Ihre Sicherheit zu verbessern. Weitere Informationen zur Verwendung dieses Parameters finden Sie unter Private Konnektivität zu externen Volumes für Amazon Web Services. Mögliche Werte sind:
Public (default): Verwenden des öffentlichen Internets
Private (AWS PrivateLink): Verwenden ausgehender privater Konnektivität
Storage base URL
Gibt die Basis-URL für Ihren zusätzlichen Speicherort an.
Wählen Sie die Registerkarte Microsoft Azure aus.
Geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen:
Feld
Beschreibung
Location name
Geben Sie einen Namen für Ihren zusätzlichen Speicherort ein.
Storage base URL
Gibt die Basis-URL für Ihren zusätzlichen Speicherort an.
Azure tenant ID
Geben Sie Ihre Azure-Mandanten-ID an.
Informationen dazu, wie Sie die ID Ihres Azure-Mandanten erhalten, finden Sie unter How to find your Microsoft Entra tenant ID in der Dokumentation zu Microsoft Entra.
Use PrivateLink endpoint
Gibt an, ob Sie ausgehende private Konnektivität verwenden möchten, um Ihre Sicherheit zu verbessern. Allgemeine Informationen zur Verwendung der ausgehenden privaten Konnektivität finden Sie unter Private Konnektivität zu externen Volumes für Microsoft Azure.
Wählen Sie die Registerkarte Google Cloud aus.
Geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen:
Feld
Beschreibung
Location name
Geben Sie einen Namen für Ihren zusätzlichen Speicherort ein.
Storage base URL
Gibt die Basis-URL für Ihren zusätzlichen Speicherort an.
Encryption (optional)
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
None (default): Keine Verschlüsselung.
SSE-KMS (enter key): Serverseitige Verschlüsselung mit in KMS gespeicherten Schlüsseln. Weitere Informationen dazu finden Sie unter vom Kunden verwaltete Verschlüsselungsschlüssel.
Wählen Sie die Registerkarte S3 Compatible aus.
Geben Sie die Konfiguration für den Speicherort an, den Sie hinzufügen:
Feld
Beschreibung
Location name
Geben Sie einen Namen für Ihren zusätzlichen Speicherort ein.
Storage base URL
Gibt die Basis-URL für Ihren Cloudspeicherort an.
AWS key ID
Gibt die AWS-Schlüssel-ID für die Verbindung zu und den Zugriff auf Ihren S3-kompatiblen Speicherort an.
AWS secret key
Gibt den geheimen AWS-Schlüssel für die Verbindung zu und den Zugriff auf Ihren S3-kompatiblen Speicherort an.
Storage endpoint
Gibt eine vollqualifizierte Domäne an, die auf Ihren S3-kompatiblen API-Endpunkt verweist.
Bemerkung
Der Endpunkt des Speichers sollte keinen Bucket-Namen enthalten. Geben Sie zum Beispiel
example.comstattmy_bucket.example.coman.
Wählen Sie Add storage location aus.