Vorbereiten des Ladens von Daten

Dieses Thema bietet eine Übersicht zu unterstützten Dateiformaten und Datenkomprimierung. Abhängig von der Struktur Ihrer Daten müssen Sie möglicherweise die Daten vor dem Laden vorbereiten.

Unter diesem Thema:

Unterstützte Datentypen

Siehe Datentypen für Beschreibungen der von Snowflake unterstützten Datentypen.

Datendatei-Komprimierung

Wir empfehlen, dass Sie Ihre Datendateien komprimieren, wenn Sie große Datasets laden. Unter CREATE FILE FORMAT finden Sie die für jeden Datentyp unterstützten Komprimierungsalgorithmen.

Geben Sie beim Laden komprimierter Daten die Komprimierungsmethode für Ihre Datendateien an. Die Dateiformatoption COMPRESSION beschreibt, wie Ihre Datendateien im Stagingbereich bereits komprimiert werden. Stellen Sie die Option COMPRESSION auf eine der folgenden Arten ein:

  • Als Dateiformatoption, die direkt in der COPY INTO <Tabelle>-Anweisung angegeben wird.

  • Als Dateiformatoption, die für ein benanntes Dateiformat oder Stagingobjekt angegeben wird. Das benannte Dateiformat/Stagingobjekt kann dann in der COPY INTO <Tabelle>-Anweisung referenziert werden.

Unterstützte Dateiformate

Die folgenden Dateiformate werden unterstützt:

Strukturiert/Semistrukturiert

Typ

Anmerkungen

Strukturiert

Mit Trennzeichen (CSV, TSV usw.)

Es werden alle gültigen Einzelbyte-Trennzeichen unterstützt. Der Standard ist Komma (d. h. CSV).

Semistrukturiert

JSON

Avro

Beinhaltet die automatische Erkennung und Verarbeitung von Snappy-komprimierten Avro-Dateien.

ORC

Beinhaltet die automatische Erkennung und Verarbeitung von Snappy- oder zlib-komprimierten ORC-Dateien.

Parquet

Beinhaltet die automatische Erkennung und Verarbeitung von Snappy-komprimierten Parquet-Dateien.

XML

Unterstützt als Vorschaufunktion.

Mit Dateiformatoptionen können die Art der in einer Datei enthaltenen Daten sowie andere zugehörige Merkmale des Datenformats angegeben werden. Die Optionen für das Dateiformat, die Sie festlegen können, sind je nach Art der zu ladenden Daten unterschiedlich. Snowflake bietet einen vollständigen Satz von Standardeinstellungen für Dateiformatoptionen.

Semistrukturierte Dateiformate

Snowflake bietet systeminterne Unterstützung für semistrukturierte Daten, was bedeutet, dass semistrukturierte Daten in relationale Tabellen geladen werden können, ohne dass die Definition eines Schemas im Voraus erforderlich ist. Snowflake unterstützt das direkte Laden semistrukturierter Daten in Spalten vom Typ VARIANT (siehe Semistrukturierte Datentypen für weitere Details).

Zu den derzeit unterstützten semistrukturierten Datenformaten gehören JSON, Avro, ORC, Parquet und XML:

  • Für JSON-, Avro-, ORC- und Parquet-Daten wird jedes übergeordnete, vollständige Objekt als separate Zeile in der Tabelle geladen. Jedes Objekt kann neue Zeilenzeichen und Leerzeichen enthalten, solange das Objekt gültig ist.

  • Bei XML-Daten wird jedes übergeordnete Element als separate Zeile in der Tabelle geladen. Ein Element wird durch ein gleichnamiges Start- und Schließ-Tag identifiziert.

Typischerweise bestehen Tabellen, die zum Speichern semistrukturierter Daten verwendet werden, aus einer einzigen VARIANT-Spalte. Nach dem Laden der Daten können Sie die Daten ähnlich wie bei strukturierten Daten abfragen. Sie können auch andere Aufgaben ausführen, wie z. B. das Extrahieren von Werten und Objekten aus Arrays. Weitere Informationen dazu finden Sie in der Tabellenfunktion FLATTEN.

Bemerkung

Semistrukturierte Daten können in Tabellen mit mehreren Spalten geladen werden, aber die semistrukturierten Daten müssen als Feld in einer strukturierten Datei gespeichert werden (z. B. CSV-Datei). Anschließend können die Daten in eine bestimmte Spalte der Tabelle geladen werden.

Benannte Dateiformate

Snowflake unterstützt die Erstellung benannter Dateiformate. Dabei handelt es sich um Datenbankobjekte, die alle erforderlichen Formatinformationen kapseln. Benannte Dateiformate können dann an den gleichen Stellen als Eingabe verwendet werden, an denen Sie individuelle Dateiformatoptionen festlegen können, was den Datenladeprozess für ähnlich formatierte Daten vereinfacht.

Benannte Dateiformate sind optional, werden aber empfohlen, wenn Sie regelmäßig ähnlich formatierte Daten laden.

Erstellen eines benannten Dateiformats

Sie können ein Dateiformat entweder über die Weboberfläche oder über SQL erstellen:

Weboberfläche

Klicken Sie auf Databases Databases tab » <DB-Name> » File Formats

SQL

CREATE FILE FORMAT

Eine Beschreibung aller Dateiformatoptionen und der Standardwerte finden Sie unter CREATE FILE FORMAT.

Überschreiben der standardmäßigen Dateiformatoptionen

Sie können die Dateiformateinstellungen für Ihre bereitgestellten Daten an einer der folgenden Stellen definieren (d. h. die Standardeinstellungen überschreiben):

In der Tabellendefinition

Legen Sie die Optionen explizit mit dem Parameter FILE_FORMAT fest. Weitere Informationen dazu finden Sie unter CREATE TABLE.

In der benannten Stagingbereichsdefinition

Legen Sie die Optionen explizit mit dem Parameter FILE_FORMAT fest. Der Stagingbereich wird dann in der COPY INTO TABLE-Anweisung referenziert. Weitere Informationen dazu finden Sie unter CREATE STAGE.

Direkt in der COPY INTO TABLE-Anweisung beim Laden von Daten

Legen Sie die Optionen explizit separat fest. Weitere Informationen dazu finden Sie unter COPY INTO <Tabelle>.

Wenn Dateiformatoptionen an verschiedenen Stellen angegeben werden, wendet die Ladeoperation die Optionen in der folgenden Reihenfolge an:

  1. COPY INTO TABLE-Anweisung.

  2. Stagingbereichsdefinition.

  3. Tabellendefinition.

Bemerkung

An verschiedenen Stellen festgelegte Dateiformatoptionen sind nicht kumulativ. Alle an einer Stelle festgelegten Optionen überschreiben alle Optionen (unabhängig davon, ob dieselben oder unterschiedliche Optionen), die in der Bearbeitungsreihenfolge nachrangig sind.

Dateiformatunterstützung in Snowflake-Funktionen

In der folgenden Tabelle wird die Unterstützung von Dateiformatoptionen im Funktionsumfang angegeben:

TYPE = CSV

Dateiformatoption

Copy-Laden [1]

Copy-Entladen

Externe Tabelle

Abfrage auf Stagingbereich [2]

COMPRESSION

RECORD_DELIMITER

FIELD_DELIMITER

FILE_EXTENSION

N/A

N/A

N/A

SKIP_HEADER

N/A

SKIP_BLANK_LINES

N/A

N/A

DATE_FORMAT

N/A

N/A

N/A

TIME_FORMAT

N/A

N/A

N/A

TIMESTAMP_FORMAT

N/A

N/A

N/A

BINARY_FORMAT

N/A

N/A

N/A

ESCAPE

N/A

ESCAPE_UNENCLOSED_FIELD

TRIM_SPACE

N/A

FIELD_OPTIONALLY_ENCLOSED_BY

NULL_IF

ERROR_ON_COLUMN_COUNT_MISMATCH

N/A

N/A

N/A

REPLACE_INVALID_CHARACTERS

N/A

N/A

N/A

VALIDATE_UTF8

N/A

EMPTY_FIELD_AS_NULL

SKIP_BYTE_ORDER_MARK

N/A

ENCODING

N/A

[1] Beinhaltet das Laden von Massendaten und Snowpipe.

[2] Beinhaltet das Abfragen von Daten in Stagingdateien und das Transformieren von Daten während eines Ladevorgangs (entweder über das Laden von Massendaten oder über Snowpipe).

TYPE = JSON

Dateiformatoption

Copy-Laden [1]

Copy-Entladen

Externe Tabelle

Abfrage auf Stagingbereich [2]

COMPRESSION

FILE_EXTENSION

N/A

N/A

N/A

ENABLE_OCTAL

N/A

N/A

N/A

ALLOW_DUPLICATE

N/A

STRIP_OUTER_ARRAY

N/A

STRIP_NULL_VALUES

N/A

IGNORE_UTF8_ERRORS

N/A

SKIP_BYTE_ORDER_MARK

N/A

NULL_IF

TRIM_SPACE

N/A

DATE_FORMAT

N/A

N/A

N/A

TIME_FORMAT

N/A

N/A

N/A

TIMESTAMP_FORMAT

N/A

N/A

N/A

BINARY_FORMAT

N/A

N/A

N/A

[1] Beinhaltet das Laden von Massendaten und Snowpipe.

[2] Beinhaltet das Abfragen von Daten in Stagingdateien und das Transformieren von Daten während eines Ladevorgangs (entweder über das Laden von Massendaten oder über Snowpipe).

TYPE = AVRO

Dateiformatoption

Copy-Laden [1]

Copy-Entladen

Externe Tabelle

Abfrage auf Stagingbereich [2]

COMPRESSION

N/A

NULL_IF

N/A

N/A

N/A

TRIM_SPACE

N/A

N/A

N/A

[1] Beinhaltet das Laden von Massendaten und Snowpipe.

[2] Beinhaltet das Abfragen von Daten in Stagingdateien und das Transformieren von Daten während eines Ladevorgangs (entweder über das Laden von Massendaten oder über Snowpipe).

TYPE = ORC

Dateiformatoption

Copy-Laden [1]

Copy-Entladen

Externe Tabelle

Abfrage auf Stagingbereich [2]

NULL_IF

N/A

N/A

N/A

TRIM_SPACE

N/A

N/A

N/A

[1] Beinhaltet das Laden von Massendaten und Snowpipe.

[2] Beinhaltet das Abfragen von Daten in Stagingdateien und das Transformieren von Daten während eines Ladevorgangs (entweder über das Laden von Massendaten oder über Snowpipe).

TYPE = PARQUET

Dateiformatoption

Copy-Laden [1]

Copy-Entladen

Externe Tabelle

Abfrage auf Stagingbereich [2]

COMPRESSION

SNAPPY_COMPRESSION

N/A

N/A

N/A

BINARY_AS_TEXT

N/A

N/A

NULL_IF

N/A

N/A

N/A

TRIM_SPACE

N/A

N/A

N/A

[1] Beinhaltet das Laden von Massendaten und Snowpipe.

[2] Beinhaltet das Abfragen von Daten in Stagingdateien und das Transformieren von Daten während eines Ladevorgangs (entweder über das Laden von Massendaten oder über Snowpipe).

TYPE = XML

Dateiformatoption

Copy-Laden [1]

Copy-Entladen

Externe Tabelle

Abfrage auf Stagingbereich [2]

COMPRESSION

N/A

IGNORE_UTF8_ERRORS

N/A

N/A

???

PRESERVE_SPACE

N/A

N/A

???

STRIP_OUTER_ELEMENT

N/A

N/A

???

DISABLE_SNOWFLAKE_DATA

N/A

N/A

???

DISABLE_AUTO_CONVERT

N/A

N/A

???

SKIP_BYTE_ORDER_MARK

N/A

N/A

???

NULL_IF

N/A

N/A

???

TRIM_SPACE

N/A

N/A

???

[1] Beinhaltet das Laden von Massendaten und Snowpipe.

[2] Beinhaltet das Abfragen von Daten in Stagingdateien und das Transformieren von Daten während eines Ladevorgangs (entweder über das Laden von Massendaten oder über Snowpipe).

Unterstützte Kopieroptionen

Kopieroptionen bestimmen über das Verhalten eines Datenladevorgangs hinsichtlich Fehlerbehandlung, maximaler Datengröße usw.

Eine Beschreibung aller Kopieroptionen und der Standardwerte finden Sie unter COPY INTO <Tabelle>.

Überschreiben der Standardkopieroptionen

Sie können das gewünschte Ladeverhalten festlegen (d. h. die Standardeinstellungen überschreiben), und zwar an einer der folgenden Stellen:

In der Tabellendefinition

Legen Sie die Optionen explizit mit dem Parameter STAGE_COPY_OPTIONS fest. Weitere Informationen dazu finden Sie unter CREATE TABLE.

In der benannten Stagingbereichsdefinition

Legen Sie die Optionen explizit mit dem Parameter COPY_OPTIONS fest. Der Stagingbereich wird dann in der COPY INTO TABLE-Anweisung referenziert. Weitere Informationen dazu finden Sie unter CREATE STAGE.

Direkt in der COPY INTO TABLE-Anweisung beim Laden von Daten

Legen Sie die Optionen explizit separat fest. Weitere Informationen dazu finden Sie unter COPY INTO <Tabelle>.

Wenn Kopieroptionen an verschiedenen Stellen festgelegt sind, werden die Optionen beim Ladevorgang in der folgenden Reihenfolge angewendet:

  1. COPY INTO TABLE-Anweisung.

  2. Stagingbereichsdefinition.

  3. Tabellendefinition.

Bemerkung

An verschiedenen Stellen festgelegte Kopieroptionen sind kumulativ. Einzelne, an einer Stelle festgelegte Optionen überschreiben dieselbe Option, die in der Reihenfolge niedriger eingestellt wurde.