Private Konnektivität auf Azure für externe Stagingbereiche und Snowpipe-Automatisierung¶
Dieses Thema enthält Konfigurationsdetails zur Einrichtung von ausgehender privater Konnektivität für die folgenden Snowflake-Features:
Massenladen aus Microsoft Azure über einen externen Stagingbereich.
Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher
Die Unterschiede zwischen der Konfiguration des Massenladens und der Snowpipe-Automatisierung für private Konnektivität und ihrer Konfigurierung für den öffentlichen Netzwerkdatenverkehr bestehen in den folgenden Punkten:
Einstellung
USE_PRIVATELINK_ENDPOINT = TRUE
für die gewünschte Speicherintegration, den Stagingbereich oder die Benachrichtigungsintegration.Erstellen eines privaten Konnektivitätsendpunkts für den externen Stagingbereich (Massenladen und Snowpipe-Automatisierung).
Erstellen eines privaten Konnektivitätsendpunkts für die Benachrichtigungsintegration (nur Snowpipe-Automatisierung).
Kosten für ausgehende private Konnektivität¶
Sie zahlen für jeden privaten Konnektivitätsendpunkt zusammen mit den insgesamt verarbeiteten Daten. Die Preise für diese Artikel finden Sie in der Snowflake Service Consumption Table.
Sie können die Kosten für diese Element ermitteln, indem Sie bei der Abfrage von Abrechnungsansichten in den Schemata ACCOUNT_USAGE und ORGANIZATION_USAGE nach den folgenden Diensttypen filtern:
OUTBOUND_PRIVATELINK_ENDPOINT
OUTBOUND_PRIVATELINK_DATA_PROCESSED
Sie können zum Beispiel die Ansicht USAGE_IN_CURRENCY_DAILY abfragen und nach folgenden Diensttypen filtern.
Hinweise¶
Sie können ausgehende öffentliche Konnektivität und ausgehende private Konnektivität für dasselbe Speicherkonto konfigurieren. Wenn Sie dies tun möchten, erstellen Sie eine dedizierte Speicherintegration für ausgehende öffentliche Konnektivität und geben Sie USE_PRIVATELINK_ENDPOINT = FALSE
an.
Private Konnektivität: Eigenschaft¶
Die Eigenschaft USE_PRIVATELINK_ENDPOINT
einer Speicherintegration oder eines externen Stagingbereichs bestimmt, ob der Zugriff über private Konnektivität oder über das öffentliche Netzwerk erfolgt. Um private Konnektivität zu nutzen, stellen Sie USE_PRIVATELINK_ENDPOINT = TRUE
ein.
Ein Stagingbereich, der auf eine Speicherintegration verweist, die USE_PRIVATELINK_ENDPOINT = TRUE
angibt, erbt die Konfiguration des privaten Endpunkts. Wenn Sie also eine Speicherintegration verwenden, die für die Verwendung privater Konnektivität konfiguriert ist, müssen Sie die Eigenschaft USE_PRIVATELINK_ENDPOINT
nicht im Stagingbereich angeben und können den Stagingbereich nicht ändern, um die Eigenschaft USE_PRIVATELINK_ENDPOINT
festzulegen.
Konfigurieren Sie den externen Stagingbereich¶
Diese Schritte sind einzigartig für die Verwendung einer ausgehenden privaten Konnektivität mit einer Speicherintegration zum Entladen von Daten in einen externen Stagingbereich auf Microsoft Azure. Sie müssen den Ablauf ändern, wenn Sie die Eigenschaft CREDENTIALS
des Stagingbereichs verwenden, anstatt auf eine Speicherintegration zu verweisen.
Diese Schritte sind sowohl für Massenladen als auch für Snowpipe-Automatisierung erforderlich.
Rufen Sie in Snowflake die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf, um einen privaten Endpunkt für die Konnektivität in Ihrem Snowflake-VNet bereitzustellen, damit Snowflake eine Verbindung zu Ihrem externen Blob-Speicherkonto über die private Konnektivität herstellen kann:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/storagedemo', 'mystorageaccount.blob.core.windows.net', 'blob' );
Diese Funktion bindet den privaten Endpunkt an den Hostnamen, sodass die Speicherintegration den privaten Endpunkt zur Verbindung mit dem Speicherort verwenden kann.
Genehmigen Sie im Azure-Portal und als Eigentümer der Microsoft Azure Blob-Speicherressource den privaten Endpunkt. Einzelheiten finden Sie unter dem Genehmigungsprozess.
Rufen Sie in Snowflake die Funktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf.
Wenn die Ausgabe der Funktion
"status": "APPROVED
enthält, kann Ihre Verbindung von Snowflake zu Ihrem Speicherkonto die private Konnektivität nutzen (nachdem die anderen erforderlichen Snowflake-Objekte für die ausgehende private Konnektivität aktiviert wurden).Sie können mit den nächsten Schritten fortfahren, während Sie auf den Status von
"APPROVED"
warten.Erstellen Sie eine Speicherintegration, und stellen Sie sicher, dass Sie die Eigenschaft
USE_PRIVATELINK_ENDPOINT
angeben:CREATE OR REPLACE STORAGE INTEGRATION outbound_private_link_int TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = AZURE AZURE_TENANT_ID = 'cc2909f2-ed22-4c89-8e5d-bdc40e5eac26' STORAGE_ALLOWED_LOCATIONS = ('azure://mystorageaccount.blob.core.windows.net/mycontainer/snowflake_privatelink_external_stage_test/') USE_PRIVATELINK_ENDPOINT = TRUE ENABLED = TRUE;
Erstellen Sie einen externen Stagingbereich, der auf die Speicherintegration verweist:
CREATE OR REPLACE STAGE my_storage_private_stage URL = 'azure://mystorageaccount.blob.core.windows.net/mycontainer/snowflake_privatelink_external_stage_test/' STORAGE_INTEGRATION = outbound_private_link_int;
Nachdem der private Endpunkt den Status
"APPROVED"
hat, testen Sie das Entladen von Daten aus Snowflake in den externen Stagingbereich:COPY INTO @my_storage_private_stage FROM mytable FILE_FORMAT = (FORMAT_NAME = my_csv_format);
Sehen Sie sich das Ergebnis in Ihrem Microsoft Azure-Stagingbereich an.
Syntax-Update für Benachrichtigungsintegrationen¶
Um Snowpipe für Microsoft Azure Blob-Speicher zu automatisieren, müssen Sie eine Benachrichtigungsintegration erstellen. Mit der folgenden Syntaxaktualisierung können Sie die Benachrichtigungsintegration für private Konnektivität konfigurieren.
CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [ IF NOT EXISTS ] <name>
...
USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE }
Konfigurieren Sie die Snowpipe-Automatisierung¶
In diesem Abschnitt werden die unter Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher beschriebenen Prozeduren modifiziert, um zu verdeutlichen, wie Sie die Snowpipe-Automatisierung mit privater Konnektivität implementieren. Die einzigen Unterschiede sind die Bereitstellung privater Konnektivitätsendpunkte und die Konfiguration der USE_PRIVATELINK_ENDPOINT
Eigenschaft der Speicherintegration und der Benachrichtigungsintegration.
Erstellen Sie eine Speicherintegration und einen Stagingbereich zusammen mit dem zugehörigen privaten Konnektivitätsendpunkt, wie unter beschrieben.
Gewähren Sie Snowflake Zugriff auf die Speicherorte, wie im Thema „Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher“ beschrieben.
Konfigurieren Sie das Event Grid-Abonnement, wie im Thema „Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher“ beschrieben.
Rufen Sie in Snowflake die Systemfunktion SYSTEM$PROVISION_PRIVATELINK_ENDPOINT auf, um einen privaten Endpunkt in Ihrem Snowflake-VNet bereitzustellen, damit Snowflake sich über eine private Konnektivität mit Ihrer Azure-Warteschlange verbinden kann:
USE ROLE ACCOUNTADMIN; SELECT SYSTEM$PROVISION_PRIVATELINK_ENDPOINT( '/subscriptions/cc2909f2-ed22-4c89-8e5d-bdc40e5eac26/resourceGroups/mystorage/providers/Microsoft.Storage/storageAccounts/mystorageaccount', 'mystorageaccount.queue.core.windows.net', 'queue' );
Genehmigen Sie im Azure-Portal und als Eigentümer der Microsoft Azure-Speicherressource den privaten Endpunkt. Weitere Informationen finden Sie unter Genehmigungsprozess.
Rufen Sie in Snowflake die Funktion SYSTEM$GET_PRIVATELINK_ENDPOINTS_INFO auf.
Wenn die Ausgabe der Funktion
"status": "APPROVED
enthält, kann Ihre Verbindung von Snowflake zu Ihrem Speicherkonto die private Konnektivität nutzen (nachdem die anderen erforderlichen Snowflake-Objekte für die ausgehende private Konnektivität aktiviert wurden).Wichtig
Sie müssen warten, bis der Status
APPROVED
lautet, bevor Sie mit dem nächsten Schritt fortfahren.Rufen Sie die Speicherwarteschlangen-URL und die Mandanten-ID ab, wie im Thema „Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher“ beschrieben.
Erstellen Sie eine Benachrichtigungsintegration, und stellen Sie sicher, dass Sie die Eigenschaft
USE_PRIVATELINK_ENDPOINT
angeben:CREATE OR REPLACE NOTIFICATION INTEGRATION ni_pl ENABLED = TRUE TYPE = QUEUE NOTIFICATION_PROVIDER = AZURE_STORAGE_QUEUE AZURE_STORAGE_QUEUE_PRIMARY_URI = "https://storageaccount.queue.core.windows.net/queuename" AZURE_TENANT_ID = '00000000-0000-0000-0000-000000000000' USE_PRIVATELINK_ENDPOINT = TRUE;
Gewähren Sie Snowflake Zugriff auf die Speicherwarteschlange, wie im Thema „Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher“ beschrieben.
Erstellen Sie eine Pipe mit aktivierter automatischer Prüfung, wie im Thema „Automatisieren von Snowpipe für Microsoft Azure Blob-Speicher“ beschrieben.
Private Konnektivität deaktivieren¶
Der Prozess der Deaktivierung der privaten Konnektivität hängt davon ab, ob der Endpunkt für eine Speicherintegration, einen externen Stagingbereich oder eine Benachrichtigungsintegration bereitgestellt wurde.
- Speicherintegration / externer Stagingbereich
Wenn Sie den privaten Konnektivitäts-Endpunkt für den externen Stagingbereich nicht mehr benötigen, deaktivieren Sie die Eigenschaft
USE_PRIVATELINK_ENDPOINT
auf dem Stagingbereich oder der Speicherintegration, und rufen Sie dann die Systemfunktion SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT auf.- Benachrichtigungsintegration
Im Gegensatz zu Speicherintegrationen und externen Stagingbereichen können Sie die Eigenschaft
USE_PRIVATELINK_ENDPOINT
einer Benachrichtigungsintegration nicht zurücksetzen. Wenn Sie die private Konnektivität nicht mehr benötigen, müssen Sie die Benachrichtigungsintegration löschen und dann eine neue erstellen. Nachdem Sie die Benachrichtigungsintegration neu erstellt haben, können Sie die Systemfunktion SYSTEM$DEPROVISION_PRIVATELINK_ENDPOINT aufrufen, um den Endpunkt zu entfernen.