Erstellen eines Azure-Stagingbereichs

Ein Stagingbereich gibt an, wo Datendateien gespeichert (d. h. „bereitgestellt“) werden, damit die Daten in den Dateien in eine Tabelle geladen werden können.

Unter diesem Thema:

Daten können direkt aus Dateien in einen bestimmten Azure-Container oder in einen Azure-„Ordner“-Pfad (d. h. Schlüsselwertpräfix) geladen werden. Wenn der Pfad mit / endet, werden alle Objekte im entsprechenden Azure-Ordner geladen.

Externe Stagingbereiche

Zusätzlich zum direkten Laden aus Dateien in Azure-Container unterstützt Snowflake die Erstellung benannter externer Stagingbereiche, die alle erforderlichen Informationen für die Bereitstellung von Dateien kapseln. Dazu gehören:

  • Der Azure-Container, in dem die Dateien bereitgestellt werden.

  • Das benannte Speicherintegrationsobjekt oder die Azure-Anmeldeinformationen für den Container (falls er geschützt ist).

  • Ein Verschlüsselungsschlüssel (wenn die Dateien im Container verschlüsselt wurden).

Benannte externe Stagingbereiche sind optional, werden aber empfohlen, wenn Sie planen, Daten regelmäßig vom gleichen Ort zu laden. Anweisungen zum Erstellen eines externen Stagingbereichs finden Sie unter Erstellen eines Stagingbereichs weiter unten.

Erstellen eines Stagingbereichs

Sie können einen benannten Stagingbereich entweder über die Weboberfläche oder mit SQL erstellen:

Weboberfläche

Klicken Sie auf Databases Databases tab » <DB-Name> » Stages

SQL

CREATE STAGE

Erstellen eines externen Stagingbereichs

Im folgenden Beispiel wird SQL verwendet, um einen externen Stagingbereich namens my_azure_stage zu erstellen, der Azure-Anmeldeinformationen und einen Hauptverschlüsselungsschlüssel enthält. Die URL des Stagingbereichs verweist auf das Azure-Konto myaccount. Die Datendateien werden im Container mycontainer und im Pfad /load/files gespeichert. Der Stagingbereich verweist auf ein benanntes Dateiformatobjekt mit dem Namen my_csv_format:

CREATE OR REPLACE STAGE my_azure_stage
  URL='azure://myaccount.blob.core.windows.net/mycontainer/load/files'
  CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D')
  ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPxX0jzYfIamtnJEUTHwq80Au6NbSgPH5r4BDDwOaO8=')
  FILE_FORMAT = my_csv_format;

Bemerkung

Verwenden Sie den Endpunkt blob.core.windows.net für alle unterstützten Typen von Azure-Blob-Speicherkonten, einschließlich Data Lake Storage Gen2.

Beachten Sie, dass die in diesem Beispiel verwendeten Werte AZURE_SAS_TOKEN und MASTER_KEY nur zur Veranschaulichung dienen.

Bemerkung

Durch die Angabe eines benannten Dateiformatobjekts (oder einzelner Dateiformatoptionen) für den Stagingbereich ist es nicht erforderlich, später die gleichen Dateiformatoptionen im Befehl COPY anzugeben, mit dem Daten aus dem Stagingbereich geladen werden. Weitere Informationen zu Dateiformatobjekten und -optionen finden Sie unter CREATE FILE FORMAT.

Nächstes Thema: Kopieren von Daten aus einem Azure-Stagingbereich