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 externen Stagingbereich entweder mit SQL oder über die Weboberfläche erstellen:

Bemerkung

Sie müssen eine Rolle verwenden, der die USAGE-Berechtigung für die Datenbank und das Schema, in denen der Stagingbereich gespeichert ist, sowie die CREATE STAGE-Berechtigung für das Schema erteilt wurden oder die diese Berechtigungen geerbt hat.

Weitere Informationen zu CREATE STAGE finden Sie unter Anforderungen an die Zugriffssteuerung.

Externen Stagingbereich mit SQL erstellen

Verwenden Sie den Befehl CREATE STAGE, um einen externen Stagingbereich mit SQL zu erstellen.

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 die Speicherintegration s3_int, die in Option 1: Konfigurieren einer Snowflake-Speicherintegration für Zugriff auf Amazon S3 erstellt wurde, um auf den S3-Bucket zuzugreifen. Der Stagingbereich verweist auf ein benanntes Dateiformatobjekt namens my_csv_format, das die Daten in den im Bucket-Pfad gespeicherten Dateien beschreibt:

CREATE STAGE my_s3_stage
  STORAGE_INTEGRATION = s3_int
  URL = 's3://mybucket/encrypted_files/'
  FILE_FORMAT = my_csv_format;
Copy

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.

Externen Stagingbereich mit Snowsight erstellen

Um mit Snowsight einen benannten externen Stagingbereich zu erstellen, gehen Sie wie folgt vor:

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Data » Databases aus.

  3. Wählen Sie die Datenbank und das Schema aus, in denen Sie einen Stagingbereich erstellen möchten.

  4. Wählen Sie Create » Stage aus.

  5. Wählen Sie den unterstützten Cloudspeicherdienst aus, in dem Ihre Dateien gespeichert sind.

  6. Geben Sie einen Stage Name ein.

  7. Geben Sie die URL Ihres externen Cloudspeicherortes ein.

  8. Wenn Ihr externer Speicher nicht öffentlich ist, aktivieren Sie Authentication, und geben Sie Ihre Daten ein. Weitere Informationen dazu finden Sie unter CREATE STAGE.

  9. Optional können Sie Directory table deaktivieren. Verzeichnistabellen ermöglichen das Anzeigen von Dateien im Stagingbereich, erfordern jedoch ein Warehouse und sind daher mit Kosten verbunden. Sie können diese Option vorerst deaktivieren und eine Verzeichnistabelle später aktivieren.

    Wenn Sie Directory table aktivieren, wählen Sie optional Enable auto-refresh aus, und wählen Sie die Ereignisbenachrichtigung oder Benachrichtigungsintegration aus, um die Verzeichnistabelle automatisch zu aktualisieren, wenn Dateien hinzugefügt oder entfernt werden. Weitere Informationen dazu finden Sie unter Automatisiertes Aktualisieren der Metadaten von Verzeichnistabellen.

  10. Wenn Ihre Dateien verschlüsselt sind, aktivieren Sie Encryption, und geben Sie Ihre Daten ein.

  11. Erweitern Sie optional SQL Preview (SQL-Vorschau), um eine generierte SQL-Anweisung anzuzeigen. Um für Ihren Stagingbereich zusätzliche Optionen wie AUTO_REFRESH festzulegen, können Sie die SQL-Vorschau in einem Arbeitsblatt öffnen.

  12. Wählen Sie Create aus.

Externen Stagingbereich mit der klassischen Konsole erstellen

Wählen Sie Databases Databases tab » <DB-Name> » Stages aus.

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