Externes Volume für Azure konfigurieren¶
Gewähren Sie Snowflake eingeschränkten Zugriff auf Ihren eigenen Microsoft Azure Container über ein externes Volume. Snowflake unterstützt die folgenden Azure-Cloudspeicherdienste für externe Volumes:
Blob-Speicher
Data Lake Storage Gen2
General Purpose v1
General Purpose v2
Voraussetzungen¶
Bevor Sie ein externes Volume konfigurieren, benötigen Sie Folgendes:
Ein Azure-Speichercontainer in der gleichen Region, in der sich Ihr Snowflake-Konto befindet.
Um das externe Volume für extern verwaltete Iceberg-Tabellen zu verwenden, müssen sich alle Ihre Tabellendaten und Metadatendateien in dem Container befinden.
Um die Datenwiederherstellung zu unterstützen, aktivieren Sie die Versionierung für Ihren externen Cloudspeicherort.
Berechtigungen in Azure zum Erstellen und Verwalten von IAM-Richtlinien und -Rollen. Wenn Sie kein Azure-Administrator sind, bitten Sie Ihren Azure-Administrator, diese Aufgaben auszuführen.
Wenn Sie eine Azure-Speicher-Firewall verwenden, um nicht autorisierten Datenverkehr zu Ihrem Speicherkonto zu blockieren, folgen Sie den Anweisungen unter Zulassen von VNet-Subnetz-IDs, um Snowflake explizit Zugriff auf Ihr Azure-Speicher-Konto zu gewähren.
Schritt 1: Externes Volume in Snowflake erstellen¶
Erstellen Sie mit dem Befehl CREATE EXTERNAL VOLUME ein externes Volume.
Bemerkung
Dieser SQL-Befehl kann nur von Kontoadministratoren (d. h. Benutzer mit der Rolle ACCOUNTADMIN) ausgeführt werden.
Im folgenden Beispiel wird ein externes Volume erstellt, das einen Azure-Speicherort mit Verschlüsselung definiert:
CREATE EXTERNAL VOLUME exvol
STORAGE_LOCATIONS =
(
(
NAME = 'my-azure-northeurope'
STORAGE_PROVIDER = 'AZURE'
STORAGE_BASE_URL = 'azure://exampleacct.blob.core.windows.net/my_container_northeurope/'
AZURE_TENANT_ID = 'a123b4c5-1234-123a-a12b-1a23b45678c9'
)
);
Bemerkung
Verwenden Sie bei der Angabe eines Wertes für STORAGE_BASE_URL das Präfix azure://
und nicht das Präfix https://
.
Schritt 2: Snowflake Zugriff auf den Speicherort gewähren¶
Verwenden Sie den Befehl DESCRIBE EXTERNAL VOLUME, um eine URL abzurufen, die auf die Seite der Microsoft-Berechtigungsanforderung führt. Geben Sie den Namen des externen Volumes an, das Sie zuvor erstellt haben.
DESC EXTERNAL VOLUME exvol;
Notieren Sie sich die Werte der folgenden Eigenschaften:
Eigenschaft
Beschreibung
AZURE_CONSENT_URL
URL der Microsoft-Berechtigungsanforderungsseite.
AZURE_MULTI_TENANT_APP_NAME
Name der Snowflake-Clientanwendung, die für Ihr Konto erstellt wurde. In einem späteren Schritt in dieser Anleitung müssen Sie dieser Anwendung die Berechtigung erteilen, ein Zugriffstoken für Ihren zulässigen Speicherort zu erhalten.
Sie verwenden diese Werte in den folgenden Schritten.
Rufen Sie in einem Webbrowser die Seite der Microsoft-Berechtigungsanforderung auf (die
AZURE_CONSENT_URL
).Wählen Sie Accept aus. Mit dieser Aktion kann der Azure-Dienstprinzipal, der für Ihr Snowflake-Konto erstellt wurde, ein Zugriffstoken für eine bestimmte Ressource in Ihrem Mandantenbereich erhalten. Das Abrufen eines Zugriffstokens ist nur erfolgreich, wenn Sie dem Dienstprinzipal die entsprechenden Berechtigungen auf Ebene des Speicherkontos erteilen (siehe nächster Schritt).
Die Microsoft-Berechtigungsanforderungsseite leitet auf die Snowflake-Firmenwebsite (snowflake.com) um.
Melden Sie sich beim Microsoft Azure-Portal an.
Rufen Sie Azure Services » Storage Accounts auf. Wählen Sie den Namen des Speicherkontos aus, auf das der Snowflake-Dienstprinzipal Zugriff benötigt.
Bemerkung
Sie müssen die IAM-Berechtigungen für ein externes Volume auf der Ebene des Speicherkontos festlegen, nicht auf der Ebene des Containers.
Wählen Sie Access Control (IAM) » Add role assignment aus.
Wählen Sie die Rolle
Storage Blob Data Contributor
aus, um Lese- und Schreibzugriff auf den Snowflake-Dienstprinzipal zu gewähren.Bemerkung
Die Rolle
Storage Blob Data Contributor
gewährt Schreibzugriff auf den Speicherort des externen Volumes. Um den Schreibzugriff vollständig zu konfigurieren, setzen Sie den ParameterALLOW_WRITES
des externen Volumes aufTRUE
(den Standardwert).Suchen Sie nach dem Snowflake-Dienstprinzipal. Dies ist die Identität in der Eigenschaft AZURE_MULTI_TENANT_APP_NAME der Ausgabe von DESC EXTERNAL VOLUME (in Schritt 1). Suchen Sie in der Eigenschaft AZURE_MULTI_TENANT_APP_NAME nach der Zeichenfolge vor dem Unterstrich.
Wichtig
Es kann eine Stunde oder länger dauern, bis Azure den über die oben genannte Microsoft-Anforderungsseite angeforderten Snowflake-Dienstprinzipal erstellt hat. Wenn der Dienstprinzipal nicht sofort verfügbar ist, müssen Sie ein bis zwei Stunden warten und ihn dann erneut suchen.
Wenn Sie den Dienstprinzipal löschen, funktioniert das externe Volume nicht mehr.
Wählen Sie Review + assign aus.
Bemerkung
Beim Zuweisen einer Rolle kann es bis zu 10 Minuten dauern, bis die Änderungen wirksam werden. Weitere Informationen dazu finden Sie in der Microsoft Azure-Dokumentation unter Symptom: Änderungen bei der Rollenzuweisung werden nicht erkannt.
Schritt 3: Überprüfen des Speicherzugriffs¶
Um zu überprüfen, ob Snowflake sich erfolgreich bei Ihrem Speicheranbieter authentifizieren kann, rufen Sie die Funktion SYSTEM$VERIFY_EXTERNAL_VOLUME auf.
SELECT SYSTEM$VERIFY_EXTERNAL_VOLUME('my_s3_external_volume');
Nächste Schritte¶
Nachdem Sie ein externes Volume konfiguriert haben, können Sie eine Iceberg-Tabelle erstellen.
Weitere Informationen zum Erstellen einer schreibgeschützten Iceberg-Tabelle, die einen externen Katalog verwendet, finden Sie unter Eine Katalogintegration konfigurieren.
Um eine Iceberg-Tabelle mit voller Unterstützung der Snowflake-Plattform zu erstellen, lesen Sie Eine Snowflake-verwaltete Tabelle erstellen.