Erstellen eines S3-Stagingbereichs

Ein externer (d. h. S3) Stagingbereich gibt an, wo Datendateien gespeichert werden, sodass die Daten in den Dateien in eine Tabelle geladen werden können.

Daten können direkt aus Dateien mit oder ohne Angabe des Ordnerpfads (oder Präfix in S3-Terminologie) in einen bestimmten S3-Bucket geladen werden. Wenn der Pfad mit / endet, werden alle Objekte im entsprechenden S3-Ordner geladen.

Bemerkung

Wenn Sie im vorherigen Schritt die Anweisungen zum Konfigurieren einer AWS-IAM-Rolle mit den erforderlichen Richtlinien und Berechtigungen für den Zugriff auf Ihren externen S3-Bucket befolgt haben, haben Sie bereits einen S3-Stagingbereich erstellt. Sie können diesen Schritt überspringen und mit Kopieren von Daten aus einem S3-Stagingbereich fortfahren.

Unter diesem Thema:

Externe Stagingbereiche

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

  • Der S3-Bucket, in dem die Dateien bereitgestellt werden.

  • Das benannte Speicherintegrationsobjekt oder S3-Anmeldeinformationen für den Bucket (falls dieser geschützt ist).

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

Benannte externe Stagingbereiche sind optional, werden aber empfohlen, wenn Sie planen, Daten regelmäßig vom gleichen Ort zu laden.

Erstellen eines externen 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

Beispiel

Im folgenden Beispiel wird SQL verwendet, um einen externen Stagingbereich mit dem Namen my_s3_stage zu erstellen, der einen privaten/geschützten S3-Bucket namens mybucket mit einem Ordnerpfad namens encrypted_files referenziert. Die CREATE-Anweisung enthält S3-Anmeldeinformationen (die einem AWS-IAM-Benutzer zugeordnet sind) und einen Hauptverschlüsselungsschlüssel. Der Stagingbereich verweist auf ein benanntes Dateiformatobjekt namens my_csv_format, das in Vorbereiten des Ladens von Daten erstellt wurde:

CREATE OR REPLACE STAGE my_s3_stage URL='s3://mybucket/encrypted_files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  ENCRYPTION=(MASTER_KEY = 'eSxX0jzYfIamtnBKOEOwq80Au6NbSgPH5r4BDDwOaO8=')
  FILE_FORMAT = my_csv_format;

Bemerkung

Durch die Angabe eines benannten Dateiformatobjekts (oder einzelner Dateiformatoptionen) für den Stagingbereich ist es nicht erforderlich, später die gleichen Dateiformatoptionen im COPY-Befehl anzugeben, der zum Laden von Daten aus dem Stagingbereich verwendet wird.

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