Übersicht zum Entladen von Daten¶
Ähnlich wie beim Laden von Daten unterstützt Snowflake den Massenexport (d. h. das Entladen) von Daten aus einer Datenbanktabelle in flache, durch Trennzeichen getrennte Textdateien.
Unter diesem Thema:
Massenentladeprozess¶
Der Prozess zum Entladen von Daten in Dateien ist derselbe wie beim Laden, nur umgekehrt:
- Schritt 1::
Verwenden Sie den Befehl COPY INTO <Speicherort>, um die Daten aus der Snowflake-Datenbanktabelle in eine oder mehrere Dateien in einen Snowflake- oder externen Stagingbereich zu kopieren.
- Schritt 2::
Herunterladen der Datei aus dem Stagingbereich:
Verwenden Sie von einem Snowflake-Stagingbereich aus den Befehl GET, um die Datendateien herunterzuladen.
Verwenden Sie von S3 aus die von Amazon S3 bereitgestellten Schnittstellen/Tools, um die Datendateien abzurufen.
Verwenden Sie von Azure aus die von Microsoft Azure bereitgestellten Schnittstellen/Tools, um die Datendateien abzurufen.
Massenentladen mithilfe von Abfragen¶
Snowflake unterstützt die Angabe einer SELECT-Anweisung anstelle einer Tabelle im Befehl COPY INTO <Speicherort>. Die Ergebnisse der Abfrage werden in eine oder mehrere Dateien geschrieben, wie im Befehl angegeben, und die Dateien werden am angegebenen Speicherort (intern oder extern) gespeichert.
SELECT-Abfragen in COPY-Anweisungen unterstützen die volle Syntax und Semantik von Snowflake-SQL-Abfragen, einschließlich JOIN-Klauseln, die das Herunterladen von Daten aus mehreren Tabellen ermöglichen.
Massenentladen in eine oder mehrere Dateien¶
Der Befehl COPY INTO <Speicherort> bietet eine Kopieroption (SINGLE) zum Entladen von Daten in eine einzelne Datei oder in mehrere Dateien. Der Standard ist SINGLE = FALSE (d. h. Entladen in mehrere Dateien).
Snowflake weist jeder Datei einen eindeutigen Namen zu. Der für den Befehl angegebene Speicherpfad kann ein Dateinamenpräfix enthalten, das allen generierten Datendateien zugewiesen ist. Wenn kein Präfix angegeben ist, setzt Snowflake den generierten Dateinamen das Präfix data_
voran.
Snowflake fügt ein Suffix hinzu, das sicherstellt, dass jeder Dateiname über parallele Ausführungsthreads hinweg eindeutig ist, z. B. data_stats_0_1_0
.
Verwenden Sie beim Entladen von Daten in mehrere Dateien die Kopieroption MAX_FILE_SIZE, um die maximale Größe jeder erstellten Datei festzulegen.
Partitioniertes Entladen von Daten¶
Der Befehl COPY INTO <Speicherort> enthält eine PARTITION BY-Kopieroption für das partitionierte Entladen von Daten in Stagingbereiche.
Die Möglichkeit, Daten während der Entladeoperation zu partitionieren, ermöglicht eine Vielzahl von Anwendungsfällen, wie z. B. die Verwendung von Snowflake zur Transformation von Daten für die Ausgabe in einen Data Lake. Außerdem kann die Partitionierung entladener Daten in die Verzeichnisstruktur eines Cloudspeichers die Effizienz erhöhen, mit der Drittanbieter-Tools die Daten verarbeiten.
Die PARTITION BY-Kopieroption akzeptiert einen Ausdruck, mit dem die Entladeoperation Tabellenzeilen in separate Dateien partitioniert, die in den angegebenen Stagingbereich entladen werden.
Aufgaben für das Entladen von Daten mit dem Befehl COPY¶
Weitere Informationen zu Aufgaben im Zusammenhang mit dem Entladen von Daten finden Sie unter: