CREATE FILE FORMAT¶
Erstellt ein benanntes Dateiformat, das ein Set von Stagingbereichsdaten beschreibt, auf die zugegriffen oder die in Snowflake-Tabellen geladen werden soll.
Syntax¶
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY | VOLATILE } ] FILE FORMAT [ IF NOT EXISTS ] <name>
TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ]
[ COMMENT = '<string_literal>' ]
Wobei:
formatTypeOptions ::= -- If TYPE = CSV COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE RECORD_DELIMITER = '<character>' | NONE FIELD_DELIMITER = '<character>' | NONE FILE_EXTENSION = '<string>' PARSE_HEADER = TRUE | FALSE SKIP_HEADER = <integer> SKIP_BLANK_LINES = TRUE | FALSE DATE_FORMAT = '<string>' | AUTO TIME_FORMAT = '<string>' | AUTO TIMESTAMP_FORMAT = '<string>' | AUTO BINARY_FORMAT = HEX | BASE64 | UTF8 ESCAPE = '<character>' | NONE ESCAPE_UNENCLOSED_FIELD = '<character>' | NONE TRIM_SPACE = TRUE | FALSE FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | NONE NULL_IF = ( '<string>' [ , '<string>' ... ] ) ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE EMPTY_FIELD_AS_NULL = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE ENCODING = '<string>' | UTF8 -- If TYPE = JSON COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE DATE_FORMAT = '<string>' | AUTO TIME_FORMAT = '<string>' | AUTO TIMESTAMP_FORMAT = '<string>' | AUTO BINARY_FORMAT = HEX | BASE64 | UTF8 TRIM_SPACE = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) FILE_EXTENSION = '<string>' ENABLE_OCTAL = TRUE | FALSE ALLOW_DUPLICATE = TRUE | FALSE STRIP_OUTER_ARRAY = TRUE | FALSE STRIP_NULL_VALUES = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE IGNORE_UTF8_ERRORS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE -- If TYPE = AVRO COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = ORC TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = PARQUET COMPRESSION = AUTO | LZO | SNAPPY | NONE SNAPPY_COMPRESSION = TRUE | FALSE BINARY_AS_TEXT = TRUE | FALSE USE_LOGICAL_TYPE = TRUE | FALSE TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = XML COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE IGNORE_UTF8_ERRORS = TRUE | FALSE PRESERVE_SPACE = TRUE | FALSE STRIP_OUTER_ELEMENT = TRUE | FALSE DISABLE_SNOWFLAKE_DATA = TRUE | FALSE DISABLE_AUTO_CONVERT = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Erforderliche Parameter¶
name
Gibt den Bezeichner für das Dateiformat an. Dieser muss für das Schema, in dem das Dateiformat erstellt wird, eindeutig sein.
Der Bezeichnerwert muss mit einem alphabetischen Zeichen beginnen und darf keine Leerzeichen oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen eingeschlossen (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ]
Gibt das Format der Eingabedateien (zum Laden von Daten) oder der Ausgabedateien (zum Entladen von Daten) an. Je nach Formattyp können weitere formatspezifische Optionen angegeben werden. Weitere Informationen dazu finden Sie unter Formattypoptionen (unter diesem Thema).
Gültige Werte hängen davon ab, ob das Dateiformat zum Laden oder Entladen von Daten verwendet wird:
CSV
(zum Laden und Entladen)Jede Nur-Text-Datei (oder Flatfile), die bestimmte Zeichen verwendet als:
Trennzeichen für Felder innerhalb von Datensätzen (z. B. Kommas).
Trennzeichen für Datensätze (z. B. neue Zeilenzeichen).
Obwohl der Name CSV kommagetrennte Werte vorschlägt, kann jedes gültige Zeichen als Feldtrennzeichen verwendet werden.
JSON
(zum Laden und Entladen)Jede Nur-Text-Datei, die aus einem oder mehreren JSON-Dokumenten (Objekte, Arrays usw.) besteht. JSON ist ein semistrukturiertes Dateiformat. Die Dokumente können durch Komma getrennt (und optional in einem großen Array eingeschlossen) werden. Ein einzelnes JSON-Dokument kann mehrere Zeilen umfassen.
Hinweis:
Beim Laden von Daten aus Dateien in Tabellen unterstützt Snowflake entweder das Standardformat NDJSON („Newline Delimited JSON“) oder das durch Komma getrennte JSON-Format.
Beim Entladen von Tabellendaten in Dateien bietet Snowflake nur die Ausgabe in das NDJSON-Format.
AVRO
(nur zum Laden; Daten können nicht in das AVRO-Format entladen werden)Binärdatei im AVRO-Format.
ORC
(nur zum Laden; Daten können nicht in das ORC-Format entladen werden)Binärdatei im ORC-Format.
PARQUET
(zum Laden und Entladen)Binärdatei im PARQUET-Format.
XML
(nur zum Laden; Daten können nicht aus Tabellen im XML-Format entladen werden)Nur-Text-Datei mit XML-Elementen.
Weitere Details zu CSV finden Sie unter Nutzungshinweise unter diesem Thema. Weitere Informationen zu JSON und den anderen semistrukturierten Dateiformaten finden Sie unter Einführung in das Laden semistrukturierter Daten.
Optionale Parameter¶
{ TEMP | TEMPORARY | VOLATILE }
Legt fest, dass das Dateiformat nur für die Dauer der Sitzung bestehen bleibt, in der Sie es erstellt haben. Ein temporäres Dateiformat wird am Ende der Sitzung gelöscht.
Standard: Kein Wert. Wenn ein Dateiformat nicht als
TEMPORARY
deklariert ist, ist das Dateiformat permanent.Wenn Sie unerwartete Konflikte vermeiden möchten, benennen Sie temporäre Dateiformate nicht nach Dateiformaten, die bereits im Schema vorhanden sind.
Wenn Sie ein temporäres Dateiformat mit demselben Namen wie ein anderes Dateiformat im Schema erstellt haben, wirken sich alle Abfragen und Operationen, die auf das Dateiformat angewendet werden, nur auf das temporäre Dateiformat in der Sitzung aus, bis Sie das temporäre Dateiformat löschen. Wenn Sie das Dateiformat mit einem DROP FILE FORMAT-Befehl löschen, löschen Sie das temporäre Dateiformat und nicht das Dateiformat, das bereits im Schema vorhanden ist.
COMMENT = 'string_literal'
Gibt einen Kommentar für das Dateiformat an.
Standard: Kein Wert
Formattypoptionen (formatTypeOptions
)¶
Je nach angegebenem Dateiformattyp (TYPE = ...
) können Sie eine oder mehrere der folgenden formatspezifischen Optionen (durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen getrennt) einschließen:
TYPE = CSV¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Beim Laden von Daten wird der aktuelle Komprimierungsalgorithmus für die Datendatei angegeben. Snowflake verwendet diese Option, um zu erkennen, wie eine bereits komprimierte Datendatei komprimiert wurde, sodass die komprimierten Daten in der Datei zum Laden extrahiert werden können.
Beim Entladen von Daten wird die Datendatei mit dem angegebenen Komprimierungsalgorithmus komprimiert.
- Werte:
Unterstützte Werte
Anmerkungen
AUTO
Beim Laden von Daten wird der Komprimierungsalgorithmus automatisch erkannt, mit Ausnahme von Brotli-komprimierten Dateien, die derzeit nicht automatisch erkannt werden können. Beim Entladen von Daten werden Dateien automatisch mit der Standardmethode gzip komprimiert.
GZIP
BZ2
BROTLI
Muss beim Laden/Entladen von Brotli-komprimierten Dateien angegeben werden.
ZSTD
Zstandard v0.8 (und höher) wird unterstützt.
DEFLATE
Deflate-komprimierte Dateien (mit zlib-Header, RFC1950).
RAW_DEFLATE
Raw Deflate-komprimierte Dateien (ohne Header, RFC1951).
NONE
Zeigt beim Laden von Daten an, dass die Dateien nicht komprimiert wurden. Zeigt beim Entladen von Daten an, dass die entladenen Dateien nicht komprimiert werden.
- Standard:
AUTO
RECORD_DELIMITER = 'character' | NONE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Ein oder mehrere Einzelbyte- oder Multibyte-Zeichen, die Datensätze in einer Eingabedatei (Laden von Daten) oder einer entladenen Datei (Entladen von Daten) voneinander trennen. Akzeptiert gängige Escapesequenzen oder die folgenden Einzelbyte- oder Multibyte-Zeichen:
- Einzelbyte-Zeichen:
Oktalwerte (mit
\\
vorangestellt) oder Hexadezimalwerte (mit0x
oder\x
vorangestellt). Geben Sie beispielsweise für Datensätze, die durch das Zirkumflex-Akzentzeichen (^
) getrennt sind, den Oktalwert (\\136
) oder den Hexadezimalwert (0x5e
) an.- Multibyte-Zeichen:
Hexadezimalwerte (mit vorangestelltem
\x
). Geben Sie beispielsweise für Datensätze, die durch das Centzeichen (¢
) getrennt sind, den Hexadezimalwert (\xC2\xA2
) an.Das Trennzeichen für RECORD_DELIMITER oder FIELD_DELIMITER darf jedoch keine Teilzeichenfolge des Trennzeichens der anderen Dateiformatoption sein (z. B.
FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb'
).
Das angegebene Trennzeichen muss ein gültiges UTF-8-Zeichen sein und darf keine zufällige Sequenz von Bytes sein. Beachten Sie auch, dass das Trennzeichen nur maximal 20 Zeichen lang sein darf.
Akzeptiert auch den Wert
NONE
.- Standard:
- Laden von Daten:
Zeichen für „Neue Zeile“. Beachten Sie, dass „neue Zeile“ logisch ist, sodass `` `` als neue Zeile für Dateien auf einer Windows-Plattform verstanden wird.
- Entladen von Daten:
Neue-Zeile-Zeichen (`` ``).
FIELD_DELIMITER = 'character' | NONE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Ein oder mehrere Einzelbyte- oder Multibyte-Zeichen, die Felder in einer Eingabedatei (Laden von Daten) oder einer entladenen Datei (Entladen von Daten) voneinander trennen. Akzeptiert gängige Escapesequenzen oder die folgenden Einzelbyte- oder Multibyte-Zeichen:
- Einzelbyte-Zeichen:
Oktalwerte (mit
\\
vorangestellt) oder Hexadezimalwerte (mit0x
oder\x
vorangestellt). Geben Sie beispielsweise für Datensätze, die durch das Zirkumflex-Akzentzeichen (^
) getrennt sind, den Oktalwert (\\136
) oder den Hexadezimalwert (0x5e
) an.- Multibyte-Zeichen:
Hexadezimalwerte (mit vorangestelltem
\x
). Geben Sie beispielsweise für Datensätze, die durch das Centzeichen (¢
) getrennt sind, den Hexadezimalwert (\xC2\xA2
) an.Das Trennzeichen für RECORD_DELIMITER oder FIELD_DELIMITER darf jedoch keine Teilzeichenfolge des Trennzeichens der anderen Dateiformatoption sein (z. B.
FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb'
).Bemerkung
Für Nicht-ASCII-Zeichen müssen Sie den Hex-Byte-Sequenzwert verwenden, um ein deterministisches Verhalten zu erreichen.
Das angegebene Trennzeichen muss ein gültiges UTF-8-Zeichen sein und darf keine zufällige Sequenz von Bytes sein. Beachten Sie auch, dass das Trennzeichen nur maximal 20 Zeichen lang sein darf.
Akzeptiert auch den Wert
NONE
.- Standard:
Komma (
,
)
FILE_EXTENSION = 'string' | NONE
- Verwendung:
Nur Entladen von Daten
- Definition:
Gibt die Erweiterung für Dateien an, die in einen Stagingbereich entladen werden. Akzeptiert jede Erweiterung. Der Benutzer ist dafür verantwortlich, eine Dateiendung anzugeben, die von jeder gewünschten Software oder dem gewünschten Dienst gelesen werden kann.
- Standard:
Null, d. h. die Dateiendung wird durch den Formattyp bestimmt:
.csv[compression]
, wobeicompression
die durch das Komprimierungsverfahren hinzugefügte Erweiterung ist, wennCOMPRESSION
gesetzt ist.
Bemerkung
Wenn die
SINGLE
-Kopieroption den WertTRUE
hat, wird mit dem Befehl COPY standardmäßig eine Datei ohne Dateiendung entladen. Um eine Dateierweiterung anzugeben, geben Sie einen Dateinamen und eine Erweiterung im Pfad zum internen Speicherplatzinternal_location
oder im Pfad zum externen Speicherplatzexternal_location
an (z. B.copy into @stage/data.csv
).PARSE_HEADER = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob die Überschriften in der ersten Zeile der Datendateien zur Bestimmung der Spaltennamen verwendet werden sollen.
Diese Dateiformatoption wird nur bei folgenden Aktionen angewendet:
Automatisches Erkennen von Spaltendefinitionen mithilfe der Funktion INFER_SCHEMA.
Laden von CSV-Daten in separate Spalten mithilfe der Funktion INFER_SCHEMA und der Kopieroption MATCH_BY_COLUMN_NAME.
Wenn die Option auf TRUE gesetzt ist, werden die Überschriften in der ersten Zeile zur Bestimmung der Spaltennamen verwendet. Der Standardwert FALSE gibt die Spaltennamen als „c*“ zurück, wobei „*“ die Position der Spalte ist.
Beachten Sie, dass die Option SKIP_HEADER bei PARSE_HEADER = TRUE nicht unterstützt wird.
Standard:
FALSE
SKIP_HEADER = integer
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Anzahl der Zeilen am Anfang der zu überspringenden Datei.
Beachten Sie, dass SKIP_HEADER nicht die Werte RECORD_DELIMITER oder FIELD_DELIMITER verwendet, um zu bestimmen, was eine Kopfzeile ist. Stattdessen wird einfach die angegebene Anzahl von CRLF (Wagenrücklauf, Zeilenvorschub)-begrenzten Zeilen in der Datei übersprungen. RECORD_DELIMITER und FIELD_DELIMITER werden dann verwendet, um die zu ladenden Datenzeilen zu bestimmen.
- Standard:
0
SKIP_BLANK_LINES = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob Leerzeilen in den Datendateien übersprungen werden sollen oder ob sie zu einem Datensatzende-Fehler (Standardverhalten) führen.
Standard:
FALSE
DATE_FORMAT = 'string' | AUTO
- Verwendung:
Laden und Entladen von Daten
- Definition:
Definiert das Format der Datumswerte in den Datendateien (Laden von Daten) oder der Tabelle (Entladen von Daten). Wenn ein Wert nicht angegeben ist oder
AUTO
ist, wird der Wert für den Parameter DATE_INPUT_FORMAT (Laden von Daten) oder DATE_OUTPUT_FORMAT (Entladen von Daten) verwendet.- Standard:
AUTO
TIME_FORMAT = 'string' | AUTO
- Verwendung:
Laden und Entladen von Daten
- Definition:
Definiert das Format der Zeitwerte in den Datendateien (Laden von Daten) oder der Tabelle (Entladen von Daten). Wenn ein Wert nicht angegeben ist oder
AUTO
ist, wird der Wert für den Parameter TIME_INPUT_FORMAT (Laden von Daten) oder TIME_OUTPUT_FORMAT (Entladen von Daten) verwendet.- Standard:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- Verwendung:
Laden und Entladen von Daten
- Definition:
Definiert das Format der Zeitstempelwerte in den Datendateien (Laden von Daten) oder der Tabelle (Entladen von Daten). Wenn ein Wert nicht angegeben oder
AUTO
ist, wird der Wert für den Parameter TIMESTAMP_INPUT_FORMAT (Laden von Daten) oder TIMESTAMP_OUTPUT_FORMAT (Entladen von Daten) verwendet.- Standard:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- Verwendung:
Laden und Entladen von Daten
- Definition:
Definiert das Codierungsformat für die Binäreingabe oder -ausgabe. Die Option kann beim Laden von Daten in oder Entladen von Daten aus binären Spalten einer Tabelle verwendet werden.
- Standard:
HEX
ESCAPE = 'character' | NONE
- Verwendung:
Laden und Entladen von Daten
- Definition:
Zeichenfolge mit einem Einzelbyte-Zeichen, das als Escapezeichen für eingeschlossene und nicht eingeschlossene Feldwerte verwendet wird. Ein Escapezeichen ruft eine alternative Interpretation für nachfolgende Zeichen in einer Sequenz von Zeichen auf. Sie können das ESCAPE-Zeichen verwenden, um Instanzen von
FIELD_OPTIONALLY_ENCLOSED_BY
-Zeichen in den Daten als Literale zu interpretieren.Akzeptiert gängige Escapesequenzen, Oktalwerte oder Hexadezimalwerte.
- Laden von Daten:
Gibt nur das Escapezeichen für eingeschlossene Felder an. Geben Sie das Zeichen an, das zum Einschließen von Feldern verwendet wird, indem Sie
FIELD_OPTIONALLY_ENCLOSED_BY
festlegen.Bemerkung
Diese Dateiformatoption unterstützt nur Einzelbyte-Zeichen. Beachten Sie, dass die UTF-8-Zeichencodierung höherwertige ASCII-Zeichen als Multibyte-Zeichen darstellt. Wenn Ihre Datendatei mit dem UTF-8-Zeichensatz kodiert ist, können Sie keine höherwertigen ASCII-Zeichen als Optionswert angeben.
Wenn Sie ein höherwertiges Zeichen (ASCII) angeben, empfehlen wir Ihnen außerdem, die Dateiformatoption
ENCODING = 'string'
als Zeichencodierung für Ihre Datendateien festzulegen, damit das Zeichen korrekt interpretiert wird.- Entladen von Daten:
Wenn diese Option gesetzt ist, wird der Escapezeichensatz für
ESCAPE_UNENCLOSED_FIELD
überschrieben.- Standard:
NONE
ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Zeichenfolge mit Einzelbyte-Zeichen, das als Escapezeichen nur für nicht eingeschlossene Feldwerte verwendet wird. Ein Escapezeichen ruft eine alternative Interpretation für nachfolgende Zeichen in einer Sequenz von Zeichen auf. Sie können das ESCAPE-Zeichen verwenden, um Instanzen von
FIELD_DELIMITER
- oderRECORD_DELIMITER
-Zeichen in den Daten als Literale zu interpretieren. Das Escapezeichen kann auch verwendet werden, um Instanzen von sich selbst in den Daten in Escapezeichen einzuschließen.Akzeptiert gängige Escapesequenzen, Oktalwerte oder Hexadezimalwerte.
- Laden von Daten:
Gibt nur das Escapezeichen für nicht eingeschlossene Felder an.
Bemerkung
Der Standardwert ist
\
. Wenn eine Zeile in einer Datendatei mit dem umgekehrten Schrägstrich (\
) endet, wird das für die DateiformatoptionRECORD_DELIMITER
angegebene Zeilenumbruch- oder Wagenrücklaufzeichen durch dieses Zeichen ersetzt. Infolgedessen behandelt die Ladeoperation diese und die nächste Zeile als eine Datenzeile. Um dieses Problem zu vermeiden, setzen Sie diesen Wert aufNONE
.Diese Dateiformatoption unterstützt nur Einzelbyte-Zeichen. Beachten Sie, dass die UTF-8-Zeichencodierung höherwertige ASCII-Zeichen als Multibyte-Zeichen darstellt. Wenn Ihre Datendatei mit dem UTF-8-Zeichensatz kodiert ist, können Sie keine höherwertigen ASCII-Zeichen als Optionswert angeben.
Wenn Sie ein höherwertiges Zeichen (ASCII) angeben, empfehlen wir Ihnen außerdem, die Dateiformatoption
ENCODING = 'string'
als Zeichencodierung für Ihre Datendateien festzulegen, damit das Zeichen korrekt interpretiert wird.
- Entladen von Daten:
Wenn
ESCAPE
gesetzt ist, wird diese Option vom Escapezeichensatz der Dateiformatoption überschrieben.- Standard:
Backslash (
\
)
TRIM_SPACE = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob Leerzeichen aus Feldern entfernt werden sollen.
Wenn Ihre externe Datenbanksoftware beispielsweise Felder in Anführungszeichen setzt, aber ein führendes Leerzeichen einfügt, liest Snowflake das führende Leerzeichen und nicht das öffnende Anführungszeichen als Anfang des Feldes (d. h. die Anführungszeichen werden als Teil der Zeichenfolge von Felddaten interpretiert). Setzen Sie diese Option auf
TRUE
, um unerwünschte Leerzeichen während des Datenladevorgangs zu entfernen.Weiteres Beispiel: Wenn Zeichenfolgen von Anführungszeichen umschlossen sind und die Anführungszeichen von führenden oder nachstehende Leerzeichen, können Sie die umgebenden Leerzeichen mit dieser Option entfernen und die Anführungszeichen mit der Option
FIELD_OPTIONALLY_ENCLOSED_BY
. Beachten Sie, dass alle innerhalb der Anführungszeichen befindlichen Leerzeichen erhalten bleiben. Zum Beispiel beiFIELD_DELIMITER = '|'
undFIELD_OPTIONALLY_ENCLOSED_BY = '"'
:|"Hello world"| /* loads as */ >Hello world< |" Hello world "| /* loads as */ > Hello world < | "Hello world" | /* loads as */ >Hello world<
(die Klammern in diesem Beispiel werden nicht geladen; sie dienen dazu, den Anfang und das Ende der geladenen Zeichenfolgen zu markieren).
- Standard:
FALSE
FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Zeichen, das verwendet wird, um Zeichenfolgen einzuschließen. Der Wert kann
NONE
, ein einfaches Anführungszeichen ('
) oder ein doppeltes Anführungszeichen ("
) sein. Um das einfache Anführungszeichen verwenden zu können, müssen Sie die oktale oder hexadezimale Darstellung (0x27
) oder das doppelte einfache Anführungszeichen als Escape-Zeichen (''
) verwenden.Wenn ein Feld dieses Zeichen enthält, können Sie es mit dem gleichen Zeichen löschen. Wenn der Wert beispielsweise das doppelte Anführungszeichen ist und ein Feld die Zeichenfolge
A "B" C
enthält, schließen Sie die doppelten Anführungszeichen in Escapezeichen ein:A ""B"" C
- Standard:
NONE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Zeichenfolge, die zum Konvertieren in und von SQL NULL verwendet wird:
Beim Laden von Daten ersetzt Snowflake diese Werte in der Datenladequelle durch SQL NULL. Um mehr als eine Zeichenfolge anzugeben, schließen Sie die Liste der Zeichenfolgen in Klammern ein und trennen Sie jeden Wert durch Kommas.
Beachten Sie, dass Snowflake alle Instanzen des Wertes in einen NULL-Wert konvertiert, unabhängig vom Datentyp. Wenn z. B.
2
als Wert angegeben wird, werden alle Instanzen von2
entweder in eine Zeichenfolge oder in eine Zahl konvertiert.Beispiel:
NULL_IF = ('N', 'NULL', 'NUL', '')
Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.
Beim Entladen von Daten konvertiert Snowflake SQL-NULL-Werte in den ersten Wert der Liste.
- Standard:
\N
(d. h. NULL mit der Annahme, dass derESCAPE_UNENCLOSED_FIELD
-Wert\
ist)
ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob ein Parsing-Fehler generiert werden soll, wenn die Anzahl der durch Trennzeichen begrenzten Spalten (d. h. Felder) in einer Eingabedatei nicht mit der Anzahl der Spalten in der entsprechenden Tabelle übereinstimmt.
Wenn auf
FALSE
gesetzt, wird kein Fehler erzeugt und die Last wird fortgesetzt. Wenn die Datei erfolgreich geladen wurde:Wenn die Eingabedatei Datensätze mit mehr Feldern als Spalten in der Tabelle enthält, werden die übereinstimmenden Felder in der Reihenfolge ihres Auftretens in der Datei und die restlichen Felder nicht geladen.
Wenn die Eingabedatei Datensätze mit weniger Feldern als Spalten in der Tabelle enthält, werden die nicht übereinstimmenden Spalten in der Tabelle mit NULL-Werten geladen.
Diese Option geht davon aus, dass alle Datensätze innerhalb der Eingabedatei die gleiche Länge haben (d. h. eine Datei mit Datensätzen unterschiedlicher Länge gibt unabhängig vom für diesen Parameter angegebenen Wert einen Fehler zurück).
- Standard:
TRUE
Bemerkung
Bei der Transformation von Daten während des Ladevorgangs (d. h. Verwendung einer Abfrage als Quelle für den Befehl COPY), wird diese Option ignoriert. Es ist nicht erforderlich, dass die Datendateien die gleiche Anzahl und Reihenfolge der Spalten aufweisen wie die Zieltabelle.
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
).
Bei Einstellung auf
TRUE
ersetzt Snowflake ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
EMPTY_FIELD_AS_NULL = TRUE | FALSE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Gibt beim Laden von Daten an, ob für leere Felder einer Eingabedatei, die durch zwei aufeinanderfolgende Trennzeichen (z. B.
,,
) repräsentiert werden, SQL NULL eingefügt werden soll.Wenn der Wert
FALSE
ist, versucht Snowflake, einem leeren Feld den entsprechenden Spaltentyp zuzuweisen. In Spalten vom Typ STRING wird eine leere Zeichenfolge eingefügt. Für andere Spaltentypen generiert der COPY-Befehl einen Fehler.Beim Entladen von Daten wird diese Option in Kombination mit
FIELD_OPTIONALLY_ENCLOSED_BY
verwendet. WennFIELD_OPTIONALLY_ENCLOSED_BY = NONE
festgelegt ist, werden beiEMPTY_FIELD_AS_NULL = FALSE
leere Zeichenfolgen in Tabellen entladen, um leere Zeichenfolgenwerte zu erhalten, ohne dass die Feldwerte in Anführungszeichen eingeschlossen werden.Wenn
TRUE
festgelegt wird, mussFIELD_OPTIONALLY_ENCLOSED_BY
ein Zeichen angeben, das zum Umschließen von Zeichenfolgen verwendet wird.
- Standard:
TRUE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob die BOM (Bytereihenfolge-Marke) übersprungen werden soll, wenn sie in einer Datendatei vorhanden ist. Eine BOM ist ein Zeichencode am Anfang einer Datendatei, der die Bytefolge und die Codierungsform definiert.
Wenn auf
FALSE
gesetzt, erkennt Snowflake alle BOM in Datendateien, was dazu führen kann, dass die BOM entweder einen Fehler verursacht oder in der ersten Spalte der Tabelle zusammengeführt wird.- Standard:
TRUE
ENCODING = 'string'
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Zeichenfolge (Konstante), die den Zeichensatz der Quelldaten beim Laden von Daten in eine Tabelle angibt.
Zeichensatz
ENCODING
-WertUnterstützte Sprachen
Anmerkungen
Big5
BIG5
Traditionelles Chinesisch
EUC-JP
EUCJP
Japanisch
EUC-KR
EUCKR
Koreanisch
GB18030
GB18030
Chinesisch
IBM420
IBM420
Arabisch
IBM424
IBM424
Hebräisch
IBM949
IBM949
Koreanisch
ISO-2022-CN
ISO2022CN
Vereinfachtes Chinesisch
ISO-2022-JP
ISO2022JP
Japanisch
ISO-2022-KR
ISO2022KR
Koreanisch
ISO-8859-1
ISO88591
Dänisch, Deutsch, Englisch, Französisch, Italienisch, Niederländisch, Norwegisch, Portugiesisch, Schwedisch
ISO-8859-2
ISO88592
Polnisch, Rumänisch, Tschechisch, Ungarisch
ISO-8859-5
ISO88595
Russisch
ISO-8859-6
ISO88596
Arabisch
ISO-8859-7
ISO88597
Griechisch
ISO-8859-8
ISO88598
Hebräisch
ISO-8859-9
ISO88599
Türkisch
ISO-8859-15
ISO885915
Dänisch, Deutsch, Englisch, Französisch, Italienisch, Niederländisch, Norwegisch, Portugiesisch, Schwedisch
Identisch mit ISO-8859-1, bis auf 8 Zeichen, zu denen auch das Euro-Währungssymbol gehört.
KOI8-R
KOI8R
Russisch
Shift_JIS
SHIFTJIS
Japanisch
UTF-8
UTF8
Alle Sprachen
Zum Laden von Daten aus Dateien mit Trennzeichen (CSV, TSV usw.) ist UTF-8 die Standardeinstellung. . . Beim Laden von Daten aus allen anderen unterstützten Dateiformaten (JSON, Avro usw.) sowie zum Entladen von Daten ist UTF-8 der einzige unterstützte Zeichensatz.
UTF-16
UTF16
Alle Sprachen
UTF-16BE
UTF16BE
Alle Sprachen
UTF-16LE
UTF16LE
Alle Sprachen
UTF-32
UTF32
Alle Sprachen
UTF-32BE
UTF32BE
Alle Sprachen
UTF-32LE
UTF32LE
Alle Sprachen
windows-949
WINDOWS949
Koreanisch
windows-1250
WINDOWS1250
Polnisch, Rumänisch, Tschechisch, Ungarisch
windows-1251
WINDOWS1251
Russisch
windows-1252
WINDOWS1252
Dänisch, Deutsch, Englisch, Französisch, Italienisch, Niederländisch, Norwegisch, Portugiesisch, Schwedisch
windows-1253
WINDOWS1253
Griechisch
windows-1254
WINDOWS1254
Türkisch
windows-1255
WINDOWS1255
Hebräisch
windows-1256
WINDOWS1256
Arabisch
- Standard:
UTF8
Bemerkung
Snowflake speichert alle Daten intern im UTF-8-Zeichensatz. Die Daten werden in UTF-8 umgewandelt, bevor sie in Snowflake geladen werden.
TYPE = JSON¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Beim Laden von Daten wird der aktuelle Komprimierungsalgorithmus für die Datendatei angegeben. Snowflake verwendet diese Option, um zu erkennen, wie eine bereits komprimierte Datendatei komprimiert wurde, sodass die komprimierten Daten in der Datei zum Laden extrahiert werden können.
Beim Entladen von Daten wird die Datendatei mit dem angegebenen Komprimierungsalgorithmus komprimiert.
- Werte:
Unterstützte Werte
Anmerkungen
AUTO
Beim Laden von Daten wird der Komprimierungsalgorithmus automatisch erkannt, mit Ausnahme von Brotli-komprimierten Dateien, die derzeit nicht automatisch erkannt werden können. Beim Entladen von Daten werden Dateien automatisch mit der Standardmethode gzip komprimiert.
GZIP
BZ2
BROTLI
Muss beim Laden/Entladen von Brotli-komprimierten Dateien angegeben werden.
ZSTD
Zstandard v0.8 (und höher) wird unterstützt.
DEFLATE
Deflate-komprimierte Dateien (mit zlib-Header, RFC1950).
RAW_DEFLATE
Raw Deflate-komprimierte Dateien (ohne Header, RFC1951).
NONE
Zeigt beim Laden von Daten an, dass die Dateien nicht komprimiert wurden. Zeigt beim Entladen von Daten an, dass die entladenen Dateien nicht komprimiert werden.
- Standard:
AUTO
DATE_FORMAT = 'string' | AUTO
- Verwendung:
Nur Laden von Daten
- Definition:
Definiert das Format der Datums-Zeichenfolgenwerte in den Datendateien. Wenn ein Wert nicht angegeben oder
AUTO
ist, wird der Wert des Parameters DATE_INPUT_FORMAT verwendet.Diese Dateiformatoption wird nur bei folgenden Aktionen angewendet:
Laden von JSON-Daten in separate Spalten unter Verwendung der Kopieroption MATCH_BY_COLUMN_NAME.
Laden von JSON-Daten in separate Spalten durch Angabe einer Abfrage in der COPY-Anweisung (d. h. COPY-Transformation).
- Standard:
AUTO
TIME_FORMAT = 'string' | AUTO
- Verwendung:
Nur Laden von Daten
- Definition:
Definiert das Format der Uhrzeit-Zeichenfolgenwerte in den Datendateien. Wenn ein Wert nicht angegeben oder
AUTO
ist, wird der Wert des Parameters TIME_INPUT_FORMAT verwendet.Diese Dateiformatoption wird nur bei folgenden Aktionen angewendet:
Laden von JSON-Daten in separate Spalten unter Verwendung der Kopieroption MATCH_BY_COLUMN_NAME.
Laden von JSON-Daten in separate Spalten durch Angabe einer Abfrage in der COPY-Anweisung (d. h. COPY-Transformation).
- Standard:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- Verwendung:
Nur Laden von Daten
- Definition:
Definiert das Format der Zeitstempel-Zeichenfolgenwerte in den Datendateien. Wenn ein Wert nicht angegeben oder
AUTO
ist, wird der Wert des Parameters TIMESTAMP_INPUT_FORMAT verwendet.Diese Dateiformatoption wird nur bei folgenden Aktionen angewendet:
Laden von JSON-Daten in separate Spalten unter Verwendung der Kopieroption MATCH_BY_COLUMN_NAME.
Laden von JSON-Daten in separate Spalten durch Angabe einer Abfrage in der COPY-Anweisung (d. h. COPY-Transformation).
- Standard:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- Verwendung:
Nur Laden von Daten
- Definition:
Definiert das Kodierungsformat für Binärzeichenfolgenwerte in den Datendateien. Die Option kann beim Laden von Daten in binäre Spalten einer Tabelle verwendet werden.
Diese Dateiformatoption wird nur bei folgenden Aktionen angewendet:
Laden von JSON-Daten in separate Spalten unter Verwendung der Kopieroption MATCH_BY_COLUMN_NAME.
Laden von JSON-Daten in separate Spalten durch Angabe einer Abfrage in der COPY-Anweisung (d. h. COPY-Transformation).
- Standard:
HEX
TRIM_SPACE = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob vorangestellte und nachstehende Leerzeichen aus Zeichenfolgen entfernt werden sollen.
Wenn Ihre externe Datenbanksoftware beispielsweise Felder in Anführungszeichen setzt, aber ein führendes Leerzeichen einfügt, liest Snowflake das führende Leerzeichen und nicht das öffnende Anführungszeichen als Anfang des Feldes (d. h. die Anführungszeichen werden als Teil der Zeichenfolge von Felddaten interpretiert). Setzen Sie diese Option auf
TRUE
, um unerwünschte Leerzeichen während des Datenladevorgangs zu entfernen.Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn JSON-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
- Standard:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Verwendung:
Nur Laden von Daten
- Definition:
Zeichenfolge, die zum Konvertieren in und von SQL NULL verwendet wird. Snowflake ersetzt diese Zeichenfolgen in der Datenladequelle durch SQL NULL. Um mehr als eine Zeichenfolge anzugeben, schließen Sie die Liste der Zeichenfolgen in Klammern ein und trennen Sie jeden Wert durch Kommas.
Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn JSON-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
Beachten Sie, dass Snowflake alle Instanzen des Wertes in einen NULL-Wert konvertiert, unabhängig vom Datentyp. Wenn z. B.
2
als Wert angegeben wird, werden alle Instanzen von2
entweder in eine Zeichenfolge oder in eine Zahl konvertiert.Beispiel:
NULL_IF = ('N', 'NULL', 'NUL', '')
Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.
- Standard:
\N
(d. h. NULL mit der Annahme, dass derESCAPE_UNENCLOSED_FIELD
-Wert\
ist)
FILE_EXTENSION = 'string' | NONE
- Verwendung:
Nur Entladen von Daten
- Definition:
Gibt die Erweiterung für Dateien an, die in einen Stagingbereich entladen werden. Akzeptiert jede Erweiterung. Der Benutzer ist dafür verantwortlich, eine Dateiendung anzugeben, die von jeder gewünschten Software oder dem gewünschten Dienst gelesen werden kann.
- Standard:
Null, d. h. die Dateiendung wird durch den Formattyp bestimmt:
.json[compression]
, wobeicompression
die durch das Komprimierungsverfahren hinzugefügte Erweiterung ist, wennCOMPRESSION
gesetzt ist.
ENABLE_OCTAL = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der das Parsen von Oktalzahlen ermöglicht.
- Standard:
FALSE
ALLOW_DUPLICATE = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, dass doppelte Objektfeldnamen erlaubt sind (nur der letzte wird beibehalten).
- Standard:
FALSE
STRIP_OUTER_ARRAY = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der den JSON-Parser anweist, die äußeren Klammern zu entfernen (d. h.
[ ]
).- Standard:
FALSE
STRIP_NULL_VALUES = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der den JSON-Parser anweist, Objektfelder oder Array-Elemente mit
null
-Werten zu entfernen. Zum Beispiel, wenn aufTRUE
gesetzt:Vorher
Nachher
[null]
[]
[null,null,3]
[,,3]
{"a":null,"b":null,"c":123}
{"c":123}
{"a":[1,null,2],"b":{"x":null,"y":88}}
{"a":[1,,2],"b":{"y":88}}
- Standard:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
). Diese Option führt eine 1:1-Zeichenersetzung aus.- Werte:
Bei Einstellung auf
TRUE
ersetzt Snowflake ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
IGNORE_UTF8_ERRORS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob UTF-8-Codierungsfehler Fehlerbedingungen erzeugen. Dies ist eine alternative Syntax für
REPLACE_INVALID_CHARACTERS
.- Werte:
Wenn auf
TRUE
gesetzt, werden alle ungültigen UTF-8-Sequenzen stillschweigend durch das UnicodezeichenU+FFFD
(d. h. „Ersetzungszeichen“) ersetzt.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob die BOM (Bytereihenfolge-Marke) übersprungen werden soll, wenn sie in einer Datendatei vorhanden ist. Eine BOM ist ein Zeichencode am Anfang einer Datendatei, der die Bytefolge und die Codierungsform definiert.
Wenn auf
FALSE
gesetzt, erkennt Snowflake alle BOM in Datendateien, was dazu führen kann, dass die BOM entweder einen Fehler verursacht oder in der ersten Spalte der Tabelle zusammengeführt wird.- Standard:
TRUE
TYPE = AVRO¶
COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Verwendung:
Nur Laden von Daten
- Definition:
Beim Laden von Daten wird der aktuelle Komprimierungsalgorithmus für die Datendatei angegeben. Snowflake verwendet diese Option, um zu erkennen, wie eine bereits komprimierte Datendatei komprimiert wurde, sodass die komprimierten Daten in der Datei zum Laden extrahiert werden können.
Beim Entladen von Daten wird die Datendatei mit dem angegebenen Komprimierungsalgorithmus komprimiert.
- Werte:
Unterstützte Werte
Anmerkungen
AUTO
Beim Laden von Daten wird der Komprimierungsalgorithmus automatisch erkannt, mit Ausnahme von Brotli-komprimierten Dateien, die derzeit nicht automatisch erkannt werden können. Beim Entladen von Daten werden Dateien automatisch mit der Standardmethode gzip komprimiert.
GZIP
BROTLI
Muss beim Laden/Entladen von Brotli-komprimierten Dateien angegeben werden.
ZSTD
Zstandard v0.8 (und höher) wird unterstützt.
DEFLATE
Deflate-komprimierte Dateien (mit zlib-Header, RFC1950).
RAW_DEFLATE
Raw Deflate-komprimierte Dateien (ohne Header, RFC1951).
NONE
Zeigt beim Laden von Daten an, dass die Dateien nicht komprimiert wurden. Zeigt beim Entladen von Daten an, dass die entladenen Dateien nicht komprimiert werden.
- Standard:
AUTO
.
Bemerkung
Wir empfehlen die Verwendung der Standardoption AUTO
, da mit dieser sowohl die Datei- als auch die Codec-Komprimierung bestimmt wird. Die Angabe einer Komprimierungsoption bezieht sich auf die Komprimierung von Dateien, nicht auf die Komprimierung von Blöcken (Codecs).
TRIM_SPACE = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob vorangestellte und nachstehende Leerzeichen aus Zeichenfolgen entfernt werden sollen.
Wenn Ihre externe Datenbanksoftware beispielsweise Felder in Anführungszeichen setzt, aber ein führendes Leerzeichen einfügt, liest Snowflake das führende Leerzeichen und nicht das öffnende Anführungszeichen als Anfang des Feldes (d. h. die Anführungszeichen werden als Teil der Zeichenfolge von Felddaten interpretiert). Setzen Sie diese Option auf
TRUE
, um unerwünschte Leerzeichen während des Datenladevorgangs zu entfernen.Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn Avro-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
- Standard:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
). Diese Option führt eine 1:1-Zeichenersetzung aus.- Werte:
Bei Einstellung auf
TRUE
ersetzt Snowflake ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Verwendung:
Nur Laden von Daten
- Definition:
Zeichenfolge, die zum Konvertieren in und von SQL NULL verwendet wird. Snowflake ersetzt diese Zeichenfolgen in der Datenladequelle durch SQL NULL. Um mehr als eine Zeichenfolge anzugeben, schließen Sie die Liste der Zeichenfolgen in Klammern ein und trennen Sie jeden Wert durch Kommas.
Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn Avro-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
Beachten Sie, dass Snowflake alle Instanzen des Wertes in einen NULL-Wert konvertiert, unabhängig vom Datentyp. Wenn z. B.
2
als Wert angegeben wird, werden alle Instanzen von2
entweder in eine Zeichenfolge oder in eine Zahl konvertiert.Beispiel:
NULL_IF = ('N', 'NULL', 'NUL', '')
Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.
- Standard:
\N
(d. h. NULL mit der Annahme, dass derESCAPE_UNENCLOSED_FIELD
-Wert\
ist)
TYPE = ORC¶
TRIM_SPACE = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob vorangestellte und nachstehende Leerzeichen aus Zeichenfolgen entfernt werden sollen.
Wenn Ihre externe Datenbanksoftware beispielsweise Felder in Anführungszeichen setzt, aber ein führendes Leerzeichen einfügt, liest Snowflake das führende Leerzeichen und nicht das öffnende Anführungszeichen als Anfang des Feldes (d. h. die Anführungszeichen werden als Teil der Zeichenfolge von Felddaten interpretiert). Setzen Sie diese Option auf
TRUE
, um unerwünschte Leerzeichen während des Datenladevorgangs zu entfernen.Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn Orc-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
- Standard:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
). Diese Option führt eine 1:1-Zeichenersetzung aus.- Werte:
Bei Einstellung auf
TRUE
ersetzt Snowflake ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Zeichenfolge, die zum Konvertieren in und von SQL NULL verwendet wird. Snowflake ersetzt diese Zeichenfolgen in der Datenladequelle durch SQL NULL. Um mehr als eine Zeichenfolge anzugeben, schließen Sie die Liste der Zeichenfolgen in Klammern ein und trennen Sie jeden Wert durch Kommas.
Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn Orc-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
Beachten Sie, dass Snowflake alle Instanzen des Wertes in einen NULL-Wert konvertiert, unabhängig vom Datentyp. Wenn z. B.
2
als Wert angegeben wird, werden alle Instanzen von2
entweder in eine Zeichenfolge oder in eine Zahl konvertiert.Beispiel:
NULL_IF = ('N', 'NULL', 'NUL', '')
Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.
- Standard:
\N
(d. h. NULL mit der Annahme, dass derESCAPE_UNENCLOSED_FIELD
-Wert\
ist)
TYPE = PARQUET¶
COMPRESSION = AUTO | LZO | SNAPPY | NONE
- Verwendung:
Laden von Daten, Entladen von Daten und externe Tabellen
- Definition:
Gibt beim Laden von Daten den aktuellen Komprimierungsalgorithmus für Spalten in den Parquet-Dateien an.
Beim Entladen von Daten wird die Datendatei mit dem angegebenen Komprimierungsalgorithmus komprimiert.
- Werte:
Unterstützte Werte
Anmerkungen
AUTO
Beim Laden von Daten wird der Komprimierungsalgorithmus automatisch erkannt. Unterstützt die folgenden Komprimierungsalgorithmen: Brotli, gzip, Lempel-Ziv-Oberhumer (LZO), LZ4, Snappy und Zstandard v0.8 (und höher). . Beim Entladen von Daten werden entladene Dateien standardmäßig mit dem Snappy-Algorithmus komprimiert.
LZO
Beim Entladen von Daten werden Dateien standardmäßig mit dem Snappy-Algorithmus komprimiert. Geben Sie diesen Wert an, wenn Daten in LZO-komprimierte Dateien entladen werden sollen.
SNAPPY
Beim Entladen von Daten werden Dateien standardmäßig mit dem Snappy-Algorithmus komprimiert. Sie können diesen Wert optional angeben.
NONE
Zeigt beim Laden von Daten an, dass die Dateien nicht komprimiert wurden. Zeigt beim Entladen von Daten an, dass die entladenen Dateien nicht komprimiert werden.
- Standard:
AUTO
SNAPPY_COMPRESSION = TRUE | FALSE
- Verwendung:
Nur Entladen von Daten
Unterstützte Werte
Anmerkungen
AUTO
Entladene Dateien werden standardmäßig mit dem Komprimierungsalgorithmus Snappy komprimiert.
SNAPPY
Kann angegeben werden, wenn Snappy-komprimierte Dateien entladen werden.
NONE
Zeigt beim Laden von Daten an, dass die Dateien nicht komprimiert wurden. Zeigt beim Entladen von Daten an, dass die entladenen Dateien nicht komprimiert werden.
- Definition:
Boolescher Wert, der angibt, ob entladene Dateien mit dem SNAPPY-Algorithmus komprimiert werden.
Bemerkung
Veraltet. Verwenden Sie stattdessen
COMPRESSION = SNAPPY
.- Einschränkungen:
Wird nur für Datenentladevorgänge unterstützt.
- Standard:
TRUE
BINARY_AS_TEXT = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob Spalten ohne definierten logischen Datentyp als UTF-8-Text interpretiert werden sollen. Wenn auf
FALSE
gesetzt, interpretiert Snowflake diese Spalten als Binärdaten.- Standard:
TRUE
Bemerkung
Snowflake empfiehlt, BINARY_AS_TEXT auf FALSE zu setzen, um mögliche Konvertierungsprobleme zu vermeiden.
TRIM_SPACE = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob vorangestellte und nachstehende Leerzeichen aus Zeichenfolgen entfernt werden sollen.
Wenn Ihre externe Datenbanksoftware beispielsweise Felder in Anführungszeichen setzt, aber ein führendes Leerzeichen einfügt, liest Snowflake das führende Leerzeichen und nicht das öffnende Anführungszeichen als Anfang des Feldes (d. h. die Anführungszeichen werden als Teil der Zeichenfolge von Felddaten interpretiert). Setzen Sie diese Option auf
TRUE
, um unerwünschte Leerzeichen während des Datenladevorgangs zu entfernen.Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn Parquet-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
- Standard:
FALSE
USE_LOGICAL_TYPE = TRUE | FALSE
- Verwendung:
Laden von Daten, Abfragen von Daten in Stagingdateien sowie Schemaerkennung.
- Definition:
Boolescher Wert, der angibt, ob logische Parquet-Typen verwendet werden sollen. Mit dieser Dateiformatoption kann Snowflake beim Laden von Daten logische Parquet-Typen interpretieren. Weitere Informationen dazu finden Sie unter Definitionen für logische Parquet-Typen. Um logische Parquet-Typen zu aktivieren, setzen Sie USE_LOGICAL_TYPE beim Erstellen einer neuen Dateiformatoption auf TRUE.
- Einschränkungen:
Nicht unterstützt für das Entladen von Daten.
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
). Diese Option führt eine 1:1-Zeichenersetzung aus.- Werte:
Bei Einstellung auf
TRUE
ersetzt Snowflake ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Verwendung:
Nur Laden von Daten
- Definition:
Zeichenfolge, die zum Konvertieren in und von SQL NULL verwendet wird. Snowflake ersetzt diese Zeichenfolgen in der Datenladequelle durch SQL NULL. Um mehr als eine Zeichenfolge anzugeben, schließen Sie die Liste der Zeichenfolgen in Klammern ein und trennen Sie jeden Wert durch Kommas.
Diese Dateiformatoption wird nur dann auf die nachfolgenden Aktionen angewendet, wenn Parquet-Daten mit der Kopieroption MATCH_BY_COLUMN_NAME in separate Spalten geladen werden.
Beachten Sie, dass Snowflake alle Instanzen des Wertes in einen NULL-Wert konvertiert, unabhängig vom Datentyp. Wenn z. B.
2
als Wert angegeben wird, werden alle Instanzen von2
entweder in eine Zeichenfolge oder in eine Zahl konvertiert.Beispiel:
NULL_IF = ('N', 'NULL', 'NUL', '')
Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.
- Standard:
\N
(d. h. NULL mit der Annahme, dass derESCAPE_UNENCLOSED_FIELD
-Wert\
ist)
TYPE = XML¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Verwendung:
Nur Laden von Daten
- Definition:
Beim Laden von Daten wird der aktuelle Komprimierungsalgorithmus für die Datendatei angegeben. Snowflake verwendet diese Option, um zu erkennen, wie eine bereits komprimierte Datendatei komprimiert wurde, sodass die komprimierten Daten in der Datei zum Laden extrahiert werden können.
Beim Entladen von Daten wird die Datendatei mit dem angegebenen Komprimierungsalgorithmus komprimiert.
- Werte:
Unterstützte Werte
Anmerkungen
AUTO
Beim Laden von Daten wird der Komprimierungsalgorithmus automatisch erkannt, mit Ausnahme von Brotli-komprimierten Dateien, die derzeit nicht automatisch erkannt werden können. Beim Entladen von Daten werden Dateien automatisch mit der Standardmethode gzip komprimiert.
GZIP
BZ2
BROTLI
Muss beim Laden/Entladen von Brotli-komprimierten Dateien angegeben werden.
ZSTD
Zstandard v0.8 (und höher) wird unterstützt.
DEFLATE
Deflate-komprimierte Dateien (mit zlib-Header, RFC1950).
RAW_DEFLATE
Raw Deflate-komprimierte Dateien (ohne Header, RFC1951).
NONE
Zeigt beim Laden von Daten an, dass die Dateien nicht komprimiert wurden. Zeigt beim Entladen von Daten an, dass die entladenen Dateien nicht komprimiert werden.
- Standard:
AUTO
IGNORE_UTF8_ERRORS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob UTF-8-Codierungsfehler Fehlerbedingungen erzeugen. Dies ist eine alternative Syntax für
REPLACE_INVALID_CHARACTERS
.- Werte:
Wenn auf
TRUE
gesetzt, werden alle ungültigen UTF-8-Sequenzen stillschweigend durch das UnicodezeichenU+FFFD
(d. h. „Ersetzungszeichen“) ersetzt.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
PRESERVE_SPACE = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob der XML-Parser führende und nachstehende Leerzeichen im Elementinhalt beibehält.
- Standard:
FALSE
STRIP_OUTER_ELEMENT = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob der XML-Parser das äußere XML-Element entfernt und Elemente der zweiten Ebene als separate Dokumente anzeigt.
- Standard:
FALSE
DISABLE_SNOWFLAKE_DATA = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob der XML-Parser die Erkennung von semistrukturierten Snowflake-Daten-Tags deaktiviert.
- Standard:
FALSE
DISABLE_AUTO_CONVERT = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob der XML-Parser die automatische Konvertierung von numerischen und booleschen Werten von Text in native Darstellung deaktiviert.
- Standard:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Verwendung:
Laden von Daten und externe Tabellen
- Definition:
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
). Diese Option führt eine 1:1-Zeichenersetzung aus.- Werte:
Bei Einstellung auf
TRUE
ersetzt Snowflake ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen.Bei Einstellung auf
FALSE
gibt die Ladeoperation einen Fehler aus, wenn eine ungültige UTF-8-Zeichencodierung erkannt wird.- Standard:
FALSE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Verwendung:
Nur Laden von Daten
- Definition:
Boolescher Wert, der angibt, ob eine BOM (Byte-Reihenfolgemarke) in einer Eingabedatei übersprungen werden soll. Eine BOM ist ein Zeichencode am Anfang einer Datendatei, der die Bytefolge und die Codierungsform definiert.
Wenn auf
FALSE
gesetzt, erkennt Snowflake alle BOM in Datendateien, was dazu führen kann, dass die BOM entweder einen Fehler verursacht oder in der ersten Spalte der Tabelle zusammengeführt wird.- Standard:
TRUE
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
CREATE FILE FORMAT |
Schema |
|
OWNERSHIP |
Dateiformat |
Um ein temporäres Objekt zu erstellen, das denselben Namen hat wie das bereits im Schema vorhandene Objekt, muss der verwendeten Rolle die Berechtigung OWNERSHIP für das Objekt erteilt worden sein oder die Rolle muss diese Berechtigung geerbt haben. Note that in a managed access schema, only the schema owner (i.e. the role with the OWNERSHIP privilege on the schema) or a role with the MANAGE GRANTS privilege can grant or revoke privileges on objects in the schema, including future grants. |
Beachten Sie, dass für die Bearbeitung eines Objekts in einem Schema auch die Berechtigung USAGE für die übergeordnete Datenbank und das Schema erforderlich ist.
Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.
Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.
Nutzungshinweise¶
Vorsicht
Durch das Neuherstellen eines Dateiformats (mithilfe von CREATE OR REPLACE FILEFORMAT) wird die Zuordnung zwischen dem Dateiformat und jeder externen Tabelle, die darauf verweist, aufgehoben. Grund ist, dass eine externe Tabelle mit einem Dateiformat verknüpft ist, wobei anstelle des Namens des Dateiformats eine ausgeblendete ID verwendet wird. Im Hintergrund löscht die CREATE OR REPLACE-Syntax das Objekt und erstellt es mit einer anderen ausgeblendeten ID neu.
Wenn Sie ein Dateiformat neu erstellen müssen, nachdem dieser mit einer oder mehreren externen Tabellen verknüpft wurde, müssen Sie jede der externen Tabellen neu erstellen (mit CREATE OR REPLACE EXTERNAL TABLE), um die Zuordnung wiederherzustellen. Rufen Sie die Funktion GET_DDL auf, um eine DDL-Anweisung abzurufen, mit der jede der externen Tabellen neu erstellt wird.
Widersprüchliche Dateiformatwerte in einer SQL-Anweisung erzeugen einen Fehler. Ein Konflikt tritt auf, wenn die gleiche Option mehrfach mit unterschiedlichen Werten angegeben wird (z. B.
...TYPE = 'CSV' ... TYPE = 'JSON'...
).Metadaten:
Achtung
Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.
CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.
Beispiele¶
Erstellen Sie ein CSV-Dateiformat namens my_csv_format
, das die folgenden Regeln für Datendateien definiert:
Felder werden durch das Pipe-Zeichen (
|
) begrenzt.Dateien enthalten eine einzige Kopfzeile, die übersprungen wird.
Die Zeichenfolgen
NULL
undnull
werden durch NULL-Werte ersetzt.Leere Zeichenfolgen werden als NULL-Werte interpretiert.
Dateien werden mit der GZIP-Komprimierung komprimiert/dekomprimiert.
CREATE OR REPLACE FILE FORMAT my_csv_format TYPE = CSV FIELD_DELIMITER = '|' SKIP_HEADER = 1 NULL_IF = ('NULL', 'null') EMPTY_FIELD_AS_NULL = true COMPRESSION = gzip;
Erstellen Sie ein JSON-Dateiformat namens my_json_format
, das alle standardmäßigen JSON-Formatoptionen verwendet:
CREATE OR REPLACE FILE FORMAT my_json_format TYPE = JSON;
Erstellen Sie ein PARQUET-Dateiformat namens my_parquet_format
, das entladene Datendateien nicht mit dem Snappy-Algorithmus komprimiert:
CREATE OR REPLACE FILE FORMAT my_parquet_format TYPE = PARQUET COMPRESSION = SNAPPY;
Erstellen Sie ein PARQUET-Dateiformat namens my_parquet_format
, das anstelle physischer oder älterer konvertierter Typen logische PARQUET-Typen verwendet:
CREATE OR REPLACE FILE FORMAT my_parquet_format TYPE = PARQUET USE_LOGICAL_TYPE = TRUE;