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:
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 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;
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