Kategorien:

DDL für Tabellen, Ansichten und Sequenzen

ALTER TABLE

Ändert die Eigenschaften, Spalten oder Beschränkung für eine vorhandene Tabelle.

Siehe auch:

CREATE TABLE, SHOW TABLES

Unter diesem Thema:

Syntax

ALTER TABLE [ IF EXISTS ] <name> RENAME TO <new_table_name>

ALTER TABLE [ IF EXISTS ] <name> SWAP WITH <target_table_name>

ALTER TABLE [ IF EXISTS ] <name> { clusteringAction | tableColumnAction | constraintAction  }

ALTER TABLE [ IF EXISTS ] <name> extTableColumnAction

ALTER TABLE [ IF EXISTS ] <name> searchOptimizationAction

ALTER TABLE [ IF EXISTS ] <name> SET
  [ STAGE_FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]
  [ STAGE_COPY_OPTIONS = ( copyOptions ) ]
  [ DATA_RETENTION_TIME_IN_DAYS = <num> ]
  [ CHANGE_TRACKING = { TRUE | FALSE  } ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]

ALTER TABLE [ IF EXISTS ] <name> UNSET {
                                       DATA_RETENTION_TIME_IN_DAYS |
                                       CHANGE_TRACKING             |
                                       DEFAULT_DDL_COLLATION       |
                                       COMMENT
                                       }
                                       [ , ... ]

Wobei:

clusteringAction ::=
  {
     CLUSTER BY ( <expr> [ , <expr> , ... ] )
   | RECLUSTER [ MAX_SIZE = <budget_in_bytes> ] [ WHERE <condition> ]
     /* RECLUSTER is deprecated */
   | { SUSPEND | RESUME } RECLUSTER
   | DROP CLUSTERING KEY
  }
tableColumnAction ::=
  {
     ADD COLUMN <col_name> <col_type>
        [ { DEFAULT <expr> | { AUTOINCREMENT | IDENTITY } [ { ( <start_num> , <step_num> ) | START <num> INCREMENT <num> } ] } ]
                            /* AUTOINCREMENT (or IDENTITY) supported only for columns with numeric data types (NUMBER, INT, FLOAT, etc.). */
                            /* Also, if the table is not empty (i.e. rows exist in the table), only DEFAULT can be altered.               */
        [ inlineConstraint ]
   | RENAME COLUMN <col_name> TO <new_col_name>

   | ALTER | MODIFY [ ( ]
                            [ COLUMN ] <col1_name> DROP DEFAULT
                          , [ COLUMN ] <col1_name> SET DEFAULT <seq_name>.NEXTVAL
                          , [ COLUMN ] <col1_name> { [ SET ] NOT NULL | DROP NOT NULL }
                          , [ COLUMN ] <col1_name> [ [ SET DATA ] TYPE ] <type>
                          , [ COLUMN ] <col1_name> COMMENT '<string>'
                          , COLUMN <col1_name> [UN]SET MASKING POLICY <policy_name>
                        [ , [ COLUMN ] <col2_name> ... ]
                        [ , ... ]
                    [ ) ]
   | DROP [ COLUMN ] <col1_name> [, <col2_name> ... ]
  }

  inlineConstraint ::=
    [ NOT NULL ]
    [ CONSTRAINT <constraint_name> ]
    { UNIQUE | PRIMARY KEY | { [ FOREIGN KEY ] REFERENCES <ref_table_name> [ ( <ref_col_name> ) ] } }
    [ <constraint_properties> ]

Detaillierte Syntax und Beispiele für die Änderung von Spalten finden Sie unter ALTER TABLE … ALTER COLUMN. .

Detaillierte Syntax und Beispiele für das Erstellen/Ändern von Inline-Einschränkungen finden Sie unter CREATE | ALTER TABLE … CONSTRAINT.

extTableColumnAction ::=
  {
     ADD COLUMN ( <col_name> <col_type> AS <expr> )

   | RENAME COLUMN <col_name> TO <new_col_name>

   | DROP [ COLUMN ] <col1_name> [, <col2_name> ... ]
  }
constraintAction ::=
  {
     ADD outoflineConstraint
   | RENAME CONSTRAINT <constraint_name> TO <new_constraint_name>
   | { ALTER | MODIFY } { CONSTRAINT <constraint_name> | PRIMARY KEY | UNIQUE | FOREIGN KEY } ( <col_name> [ , ... ] )
                         [ [ NOT ] ENFORCED ] [ VALIDATE | NOVALIDATE ]
   | DROP { CONSTRAINT <constraint_name> | PRIMARY KEY | UNIQUE | FOREIGN KEY } ( <col_name> [ , ... ] )
                         [ CASCADE | RESTRICT ]
  }

  outoflineConstraint ::=
    [ CONSTRAINT <constraint_name> ]
    {
       UNIQUE [ ( <col_name> [ , <col_name> , ... ] ) ]
     | PRIMARY KEY [ ( <col_name> [ , <col_name> , ... ] ) ]
     | [ FOREIGN KEY ] [ ( <col_name> [ , <col_name> , ... ] ) ]
                          REFERENCES <ref_table_name> [ ( <ref_col_name> [ , <ref_col_name> , ... ] ) ]
    }
    [ <constraint_properties> ]

Detaillierte Syntax und Beispiele für das Erstellen/Ändern von Out-of-Line-Einschränkungen finden Sie unter CREATE | ALTER TABLE … CONSTRAINT.

searchOptimizationAction ::=
  {
     ADD SEARCH OPTIMIZATION
   | DROP SEARCH OPTIMIZATION
  }

Weitere Details dazu finden Sie unter Suchoptimierungsaktionen (searchOptimizationAction).

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>'
     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
     VALIDATE_UTF8 = 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
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
-- If TYPE = AVRO
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = ORC
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = PARQUET
     COMPRESSION = AUTO | LZO | SNAPPY | NONE
     SNAPPY_COMPRESSION = TRUE | FALSE
     BINARY_AS_TEXT = TRUE | FALSE
     TRIM_SPACE = 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
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
     TRIM_SPACE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
copyOptions ::=
     ON_ERROR = { CONTINUE | SKIP_FILE | SKIP_FILE_<num> | SKIP_FILE_<num>% | ABORT_STATEMENT }
     SIZE_LIMIT = <num>
     PURGE = TRUE | FALSE
     RETURN_FAILED_ONLY = TRUE | FALSE
     MATCH_BY_COLUMN_NAME = CASE_SENSITIVE | CASE_INSENSITIVE | NONE
     ENFORCE_LENGTH = TRUE | FALSE
     TRUNCATECOLUMNS = TRUE | FALSE
     FORCE = TRUE | FALSE

Parameter

Name

Bezeichner für die zu ändernde Tabelle. Wenn der Bezeichner Leerzeichen oder Sonderzeichen enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen gesetzt werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß- und Kleinschreibung zu beachten.

RENAME TO neuer_Tabellenname

Benennt die angegebene Tabelle mit einem neuen Bezeichner um, der derzeit von keiner anderen Tabelle im Schema verwendet wird.

Weitere Informationen zu Tabellenbezeichnern finden Sie unter Anforderungen an Bezeichner.

Wenn ein Objekt (Tabelle, Spalte usw.) umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

SWAP WITH Name_der_Zieltabelle

Tauscht alle Inhalte und Metadaten zwischen zwei angegebenen Tabellen aus, einschließlich aller für die Tabellen definierten Integritätseinschränkungen. Tauschen Sie auch alle Berechtigungen für die Zugriffssteuerung aus. Die beiden Tabellen werden im Wesentlichen in einer einzigen Transaktion umbenannt.

Bemerkung

Um eine Tabelle umzubenennen oder zwei Tabellen auszutauschen, muss die Rolle, mit der die Operation durchgeführt wird, OWNERSHIP-Berechtigungen für die Tabellen haben. Darüber hinaus erfordert das Umbenennen einer Tabelle die Berechtigung CREATE TABLE im Schema für die Tabelle.

SET ...

Gibt eine (oder mehrere) Eigenschaften/Parameter an, die für die Tabelle festgelegt werden sollen (getrennt durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen):

STAGE_FILE_FORMAT = ( FORMAT_NAME = 'Dateiformatname' ) oder . STAGE_FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ] )

Ändert das Dateiformat für die Tabelle (zum Laden und Entladen von Daten). Dafür gibt es zwei Optionen:

FORMAT_NAME = Dateiformatname

Gibt ein vorhandenes Dateiformatobjekt an, das zum Laden/Entladen von Daten verwendet werden soll. Das angegebene Dateiformatobjekt bestimmt den Formattyp (CSV, JSON usw.) und andere Formatoptionen für Datendateien.

Beachten Sie, dass in der Zeichenfolge keine zusätzlichen Formatoptionen angegeben sind. Stattdessen definiert das benannte Dateiformatobjekt die anderen Dateiformatoptionen, die zum Laden/Entladen von Daten verwendet werden. Weitere Informationen finden Sie unter CREATE FILE FORMAT.

TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ]

Gibt den Typ der zu ladenden/entladenden Dateien an. Weitere formatspezifische Optionen können in die Zeichenfolge aufgenommen werden. Weitere Informationen dazu finden Sie unter Formattypoptionen (unter diesem Thema).

Bemerkung

FORMAT_NAME und TYPE schließen sich gegenseitig aus. Sie können für eine Tabelle nur eins von beiden angeben.

STAGE_COPY_OPTIONS = ( ... )

Ändert die Kopieroptionen, die beim Laden von Daten aus Dateien in die Tabelle verwendet werden. Weitere Details dazu finden Sie unter Kopieroptionen (unter diesem Thema).

DATA_RETENTION_TIME_IN_DAYS = Zahl

Parameter auf Objektebene, der die Aufbewahrungsfrist der Tabelle für Time Travel ändert. Weitere Details dazu finden Sie unter Verstehen und Verwenden von Time Travel und Verwenden von temporären und transienten Tabellen.

Eine ausführliche Beschreibung dieses Parameters sowie weitere Informationen zu Objektparametern finden Sie unter Parameter.

Werte:

  • Standardausführung: 0 oder 1

  • Enterprise Edition:

    • 0 bis 90 für permanente Tabellen

    • 0 oder 1 für temporäre und transiente Tabellen

Bemerkung

Der Wert 0 deaktiviert Time Travel für die Tabelle.

CHANGE_TRACKING = TRUE | FALSE

Gibt an, dass die Änderungsverfolgung in der Tabelle aktiviert oder deaktiviert werden soll.

  • TRUE aktiviert die Änderungsverfolgung der Tabelle. Diese Option fügt der Quelltabelle ein Paar ausgeblendeter Spalten hinzu und beginnt mit dem Speichern von Metadaten zur Änderungsverfolgung in den Spalten. Diese Spalten verbrauchen nur wenig Speicherplatz.

    Die Änderungsverfolgungsmetadaten können mithilfe der CHANGES-Klausel für SELECT-Anweisungen oder durch Erstellen und Abfragen eines oder mehrerer Streams der Tabelle abgefragt werden.

  • FALSE deaktiviert die Änderungsverfolgung in der Tabelle. Das Paar versteckter Spalten wird aus der Tabelle entfernt.

DEFAULT_DDL_COLLATION = 'Sortierungsspezifikation'

Gibt eine Standardsortierungsspezifikation für alle der Tabelle neu hinzugefügten Spalten an.

Durch das Festlegen des Parameters ändert sich nicht die Sortierungsspezifikation für vorhandene Spalten.

Weitere Informationen zu diesem Parameter finden Sie unter DEFAULT_DDL_COLLATION.

COMMENT = 'Zeichenfolgenliteral'

Fügt einen Kommentar hinzu oder überschreibt den vorhandenen Kommentar zur Tabelle.

UNSET ...

Gibt eine (oder mehrere) Eigenschaften/Parameter an, die für die Tabelle nicht festgelegt werden sollen, wodurch sie auf ihre Standardwerte zurückgesetzt werden:

  • DATA_RETENTION_TIME_IN_DAYS

  • CHANGE_TRACKING

  • DEFAULT_DDL_COLLATION

  • COMMENT

Bemerkung

Sie können UNSET nicht verwenden, um das Dateiformat und die Kopieroptionen zurückzusetzen. Um diese Optionen zurückzusetzen, müssen Sie SET verwenden.

Einschränkungsaktionen (clusteringAction)

CLUSTER BY ( Ausdruck [ , Ausdruck , ... ] )

Gibt eine oder mehrere Tabellenspalten oder Spaltenausdrücke als Gruppierungsschlüssel für die Tabelle an (oder ändert sie). Dies sind die Spalten/Ausdrücke, für die das Clustering von Automatic Clustering verwaltet wird.

Wichtig

Gruppierungsschlüssel sind nicht für alle Tabellen vorgesehen oder empfehlenswert. Sie eignen sich vorrangig für sehr große Tabellen (im Multi-Terabyte-Bereich).

Bevor Sie Gruppierungsschlüssel für eine Tabelle angeben, lesen Sie erst Grundlegendes zu Tabellenstrukturen in Snowflake.

RECLUSTER ...

Veraltet

Führt ein manuelles, inkrementelles Reclustering einer Tabelle durch, in der Gruppierungsschlüssel definiert sind:

MAX_SIZE = Budget_in_Bytes

Veraltet – Verwenden Sie ein größeres Warehouse, um ein effektiveres Reclustering zu erreichen.

Gibt die Obergrenze für die Datenmenge (in Bytes) in der Reclustering-Tabelle an.

WHERE Bedingung

Gibt eine Bedingung oder einen Bereich für die Daten, für die in der Tabelle ein Reclustering durchgeführt werden soll.

Bemerkung

Nur Rollen mit der Berechtigung OWNERSHIP oder INSERT für eine Tabelle können ein Reclustering auf dieser ausführen.

SUSPEND | RESUME RECLUSTER

Aktiviert oder deaktiviert Automatic Clustering für die Tabelle.

DROP CLUSTERING KEY

Löscht den Gruppierungsschlüssel für die Tabelle.

Weitere Informationen zu Gruppierungsschlüsseln und Reclustering finden Sie unter Grundlegendes zu Tabellenstrukturen in Snowflake.

Tabellenspaltenaktionen (tableColumnAction)

ADD COLUMN Spaltenname Spaltennamentyp [ DEFAULT | AUTOINCREMENT ... ] [ Inline-Einschränkung ] [, ...]

Fügt der Tabelle eine neue Spalte hinzu, einschließlich des optionalen Hinzufügens einer Standard- und/oder Inline-Einschränkung für die Spalte:

Diese Operation kann für mehrere Spalten mit demselben Befehl ausgeführt werden.

RENAME COLUMN Spaltenname to neuer_Spaltenname

Benennt die angegebene Spalte in einen neuen Namen um, der derzeit für keine andere Spalte der Tabelle verwendet wird.

Eine Spalte, die Teil eines Gruppierungsschlüssels ist, kann nicht umbenannt werden.

Wenn ein Objekt (Tabelle, Spalte usw.) umbenannt wird, müssen andere Objekte, die darauf verweisen, mit dem neuen Namen aktualisiert werden.

ALTER | MODIFY [ COLUMN ] ...

Ändert eine oder mehrere Eigenschaften einer Spalte. Dieser Vorgang kann mit einem Befehl für mehrere Spalten ausgeführt werden. Ausnahme bildet das Ändern einer Spalte zum Festlegen oder Deaktivieren einer Maskierungsrichtlinie. Weitere Informationen zu dieser Ausnahme finden Sie unter Einschränkungen für Sicherheit auf Spaltenebene.

Detaillierte Syntax und Beispiele für die Änderung von Spalten finden Sie unter ALTER TABLE … ALTER COLUMN.

DROP COLUMN col_name [ CASCADE | RESTRICT ]

Entfernt die angegebene Spalte aus der Tabelle.

Das Löschen einer Spalte ist eine reine Metadatenoperation. Die Mikropartitionen werden nicht sofort neu geschrieben, weswegen der von der Spalte belegte Speicherplatz nicht sofort freigegeben wird. In der Regel wird der Speicherplatz innerhalb einer einzelnen Mikropartition beim nächsten Überschreiben der Mikropartition freigegeben. Dies ist in der Regel der Fall, wenn ein Schreibvorgang aufgrund von DML (INSERT, UPDATE, DELETE) oder Reclustering erfolgt.

Spaltenaktionen für externe Tabellen (extTableColumnAction)

Alle anderen Änderungen an externen Tabellen finden Sie unter ALTER EXTERNAL TABLE.

ADD COLUMN ( <col_name> <col_type> AS <expr> ) [, ...]

Fügt der externen Tabelle eine neue Spalte hinzu.

Diese Operation kann für mehrere Spalten mit demselben Befehl ausgeführt werden.

RENAME COLUMN Spaltenname to neuer_Spaltenname

Benennt die angegebene Spalte in einen neuen Namen um, der derzeit für keine andere Spalte der Tabelle verwendet wird.

DROP COLUMN Spaltenname

Entfernt die angegebene Spalte aus der Tabelle.

Einschränkungsaktionen (constraintAction)

ADD CONSTRAINT

Fügt einer oder mehreren Spalten in der Tabelle eine Out-of-Line-Integritätseinschränkung hinzu. Informationen zum Hinzufügen einer Inline-Einschränkung (für eine Spalte) finden Sie unter Spaltenaktionen (unter diesem Thema).

RENAME CONSTRAINT Name_der_Einschränkung TO neuer_Name_der_Einschränkung

Benennt die angegebene Einschränkung um.

ALTER | MODIFY CONSTRAINT ...

Ändert die Eigenschaften für die angegebene Beschränkung.

DROP CONSTRAINT Name_der_Einschränkung | PRIMARY KEY | UNIQUE | FOREIGN KEY ( Spaltenname [ , ... ] ) [ CASCADE | RESTRICT ]

Löscht die angegebene Einschränkung für die angegebene Spalte oder den Satz von Spalten.

Detaillierte Syntax und Beispiele für das Hinzufügen oder Ändern von Einschränkungen finden Sie unter CREATE | ALTER TABLE … CONSTRAINT.

Suchoptimierungsaktionen (searchOptimizationAction)

ADD SEARCH OPTIMIZATION

Fügt Suchoptimierung für die Tabelle hinzu.

Hinweis:

  • Die Wartung der Suchoptimierung kann teuer werden, insbesondere wenn sich die Daten in der Tabelle häufig ändern. Weitere Informationen dazu finden Sie unter Verwalten der Kosten des Suchoptimierungsdienstes.

  • Wenn Sie versuchen, einer materialisierten Ansicht eine Suchoptimierung hinzuzufügen, gibt Snowflake eine Fehlermeldung zurück.

DROP SEARCH OPTIMIZATION

Entfernt die Suchoptimierung aus der Tabelle.

Hinweis:

  • Wenn eine Tabelle die Suchoptimierungseigenschaft hat, bleibt die Suchoptimierungseigenschaft erhalten, wenn Sie die Tabelle löschen und entfernen.

  • Das Entfernen der Suchoptimierungseigenschaft aus einer Tabelle und das anschließende Hinzufügen verursachen die gleichen Kosten wie das erstmalige Hinzufügen.

Formattypoptionen (formatTypeOptions)

Formattypoptionen werden zum Laden von Daten in und Entladen von Daten aus Tabellen verwendet.

Je nach angegebenem Dateiformattyp (STAGE_FILE_FORMAT = ( 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 und Entladen 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

RECORD_DELIMITER = 'Zeichen' | NONE
Verwendung

Laden und Entladen von Daten

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 Escape-Sequenzen, Oktalwerte (mit \\ vorangestellt) oder Hex-Werte (mit 0x vorangestellt). Geben Sie beispielsweise für Datensätze, die durch das Thornzeichen (Þ) getrennt sind, den Oktalwert (\\336) oder den Hexadezimalwert (0xDE) an. Akzeptiert auch den Wert NONE.

Das angegebene Trennzeichen muss ein gültiges UTF-8-Zeichen sein und darf keine zufällige Folge von Bytes sein.

Trennzeichen mit mehreren Zeichen werden ebenfalls unterstützt. 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 Trennzeichen darf maximal 20 Zeichen lang sein. Geben Sie keine Zeichen an, die für andere Dateiformatoptionen wie ESCAPE oder ESCAPE_UNENCLOSED_FIELD verwendet werden.

Standard
Laden von Daten

Zeichen für „Neue Zeile“. Beachten Sie, dass „neue Zeile“ logisch ist, sodass \r\n als neue Zeile für Dateien auf einer Windows-Plattform verstanden wird.

Entladen von Daten

Neue-Zeile-Zeichen (\n).

FIELD_DELIMITER = 'Zeichen' | NONE
Verwendung

Laden und Entladen von Daten

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 Escape-Sequenzen, Oktalwerte (mit \\ vorangestellt) oder Hex-Werte (mit 0x vorangestellt). Geben Sie beispielsweise für Felder, die durch das Thornzeichen (Þ) getrennt sind, den Oktalwert (\\336) oder den Hexadezimalwert (0xDE) an. Akzeptiert auch den Wert NONE.

Das angegebene Trennzeichen muss ein gültiges UTF-8-Zeichen sein und darf keine zufällige Folge von Bytes sein.

Trennzeichen mit mehreren Zeichen werden ebenfalls unterstützt. 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 Trennzeichen darf maximal 20 Zeichen lang sein. Geben Sie keine Zeichen an, die für andere Dateiformatoptionen wie ESCAPE oder ESCAPE_UNENCLOSED_FIELD verwendet werden.

Standard

Komma (,)

FILE_EXTENSION = 'Zeichenfolge' | 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 Service gelesen werden kann.

Standard

Null, d. h. die Dateierweiterung wird durch den Formattyp bestimmt, z. B. .csv[Komprimierung], wobei Komprimierung die durch die Komprimierungsmethode hinzugefügte Erweiterung ist, wenn COMPRESSION festgelegt ist.

Bemerkung

Wenn die SINGLE-Kopieroption den Wert TRUE 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 interner_Speicherplatz oder externer_Speicherplatz an (z. B. copy into @stage/data.csv).

SKIP_HEADER = Ganzzahl
Verwendung

Nur Laden von Daten

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

Nur Laden von Daten

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 = 'Zeichenfolge' | 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 (Datenladen) oder DATE_OUTPUT_FORMAT (Datenentladen) verwendet.

Standard

AUTO

TIME_FORMAT = 'Zeichenfolge' | 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 (Datenladen) oder TIME_OUTPUT_FORMAT (Datenentladen) verwendet.

Standard

AUTO

TIMESTAMP_FORMAT = Zeichenfolge' | 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 ist oder AUTO ist, wird der Wert für den Parameter TIMESTAMP_INPUT_FORMAT (Datenladen) oder TIMESTAMP_OUTPUT_FORMAT (Datenentladen) 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 = 'Zeichen' | NONE
Verwendung

Laden und Entladen von Daten

Definition

Zeichenfolge mit einem einzelnen Zeichen, das als Escapezeichen für Feldwerte verwendet wird. Ein Escapezeichen ruft eine alternative Interpretation für nachfolgende Zeichen in einer Zeichenfolge auf. Sie können das ESCAPE-Zeichen verwenden, um Instanzen von FIELD_DELIMITER-, RECORD_DELIMITER- oder FIELD_OPTIONALLY_ENCLOSED_BY-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.

  • Gibt beim Laden von Daten 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.

  • Wenn diese Option beim Entladen von Daten gesetzt ist, überschreibt sie den Escape-Zeichensatz für ESCAPE_UNENCLOSED_FIELD.

Standard

NONE

ESCAPE_UNENCLOSED_FIELD = 'Zeichen' | NONE
Verwendung

Laden und Entladen von Daten

Definition

Zeichenfolge mit einem einzelnen Zeichen, das als Escapezeichen nur für nicht eingeschlossene Feldwerte verwendet wird. Ein Escapezeichen ruft eine alternative Interpretation für nachfolgende Zeichen in einer Zeichenfolge auf. Sie können das ESCAPE-Zeichen verwenden, um Instanzen von FIELD_DELIMITER- oder RECORD_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.

Hinweis: Wenn ESCAPE beim Entladen von Daten gesetzt ist, wird diese Option vom Escapezeichensatz der Dateiformatoption überschrieben.

Standard

Backslash (\\)

TRIM_SPACE = TRUE | FALSE
Verwendung

Nur Laden von Daten

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 bei FIELD_DELIMITER = '|' und FIELD_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 = 'Zeichen' | NONE
Verwendung

Laden und Entladen von Daten

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 = ( 'Zeichenfolge1' [ , 'Zeichenfolge2' , ... ] )
Verwendung

Laden und Entladen von Daten

Definition

Zeichenfolge, die zum Konvertieren in und von SQL NULL verwendet wird:

  • Beim Laden von Daten ersetzt Snowflake 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.

    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 der ESCAPE_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

VALIDATE_UTF8 = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Boolescher Wert, der angibt, ob die UTF-8-Zeichencodierung in Zeichenfolgenspaltendaten überprüft werden soll.

Wenn auf TRUE gesetzt, validiert Snowflake die UTF-8-Zeichencodierung in Zeichenfolgenspaltendaten. Wenn eine ungültige UTF-8-Zeichencodierung erkannt wird, führt der COPY-Befehl zu einem Fehler.

Standard

TRUE

Wichtig

Diese Option wird nur bereitgestellt, um Abwärtskompatibilität mit früheren Versionen von Snowflake sicherzustellen. Sie sollten diese Option nicht deaktivieren, es sei denn, Sie werden vom Snowflake-Support angewiesen.

EMPTY_FIELD_AS_NULL = TRUE | FALSE
Verwendung

Laden und Entladen von Daten

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. Wenn FIELD_OPTIONALLY_ENCLOSED_BY = NONE festgelegt ist, werden bei EMPTY_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, muss FIELD_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 = 'Zeichenfolge'
Verwendung

Nur Laden von Daten

Definition

Zeichenfolge (Konstante), die den Zeichensatz der Quelldaten beim Laden von Daten in eine Tabelle angibt.

Zeichensatz 

ENCODING -Wert

Unterstü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

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

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-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. Wenn die Dateiformatoption VALIDATE_UTF8 den Wert TRUE hat, validiert Snowflake die UTF-8-Zeichencodierung in den Zeichenfolgenspaltendaten, nachdem sie von ihrer ursprünglichen Zeichencodierung konvertiert wurde.

TYPE = JSON

COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Verwendung

Laden und Entladen 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

DATE_FORMAT = 'Zeichenfolge' | AUTO
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn JSON-Daten in separate Spalten geladen werden (d. h. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Definiert das Format der Datumszeichenfolgewerte in den Datendateien. Wenn ein Wert nicht angegeben oder AUTO ist, wird der Wert des Parameters DATE_INPUT_FORMAT verwendet.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

AUTO

TIME_FORMAT = 'Zeichenfolge' | AUTO
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn JSON-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Definiert das Format der Uhrzeit-Zeichenfolgewerte in den Datendateien. Wenn ein Wert nicht angegeben oder AUTO ist, wird der Wert des Parameters TIME_INPUT_FORMAT verwendet.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

AUTO

TIMESTAMP_FORMAT = Zeichenfolge' | AUTO
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn JSON-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Definiert das Format der Zeitstempel-Zeichenfolgewerte in den Datendateien. Wenn ein Wert nicht angegeben oder AUTO ist, wird der Wert des Parameters TIMESTAMP_INPUT_FORMAT verwendet.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

AUTO

BINARY_FORMAT = HEX | BASE64 | UTF8
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn JSON-Daten in separate Spalten geladen werden (d. h. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Definiert das Codierungsformat für Binärzeichenfolgewerte in den Datendateien. Die Option kann beim Laden von Daten in binäre Spalten einer Tabelle verwendet werden.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

HEX

TRIM_SPACE = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn JSON-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Boolescher Wert, der angibt, ob führende 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 ist derzeit eine Vorschaufunktion.

Standard

FALSE

NULL_IF = ( 'Zeichenfolge1' [ , 'Zeichenfolge2' , ... ] )
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn JSON-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Zeichenfolge, die zum Konvertieren in/aus 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.

Beispiel:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

\\N (d. h. NULL mit der Annahme, dass der ESCAPE_UNENCLOSED_FIELD-Wert \\ ist)

FILE_EXTENSION = 'Zeichenfolge' | 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 Service gelesen werden kann.

Standard

Null, d. h. die Dateierweiterung wird durch den Formattyp bestimmt, z. B. .json[Komprimierung], wobei Komprimierung die durch die Komprimierungsmethode hinzugefügte Erweiterung ist, wenn COMPRESSION festgelegt 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

Nur Laden von Daten

Definition

Boolescher Wert, der angibt, dass doppelte Objektfeldnamen erlaubt sind (nur der letzte wird beibehalten).

Standard

FALSE

STRIP_OUTER_ARRAY = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Boolescher Wert, der den JSON-Parser anweist, die äußeren Klammern zu entfernen (z. B. [ ]).

Standard

FALSE

STRIP_NULL_VALUES = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Boolescher Wert, der den JSON-Parser anweist, Objektfelder oder Array-Elemente mit null-Werten zu entfernen. Zum Beispiel, wenn auf TRUE 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

IGNORE_UTF8_ERRORS = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Boolescher Wert, der angibt, ob UTF-8-Codierungsfehler Fehlerbedingungen erzeugen. Wenn auf TRUE gesetzt, werden alle ungültigen UTF-8-Sequenzen stillschweigend durch Unicodezeichen U+FFFD (d. h. „Ersatzzeichen“) ersetzt.

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 | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Verwendung

Laden und Entladen 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

TRIM_SPACE = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn Avro-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Boolescher Wert, der angibt, ob führende 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 ist derzeit eine Vorschaufunktion.

Standard

FALSE

NULL_IF = ( 'Zeichenfolge1' [ , 'Zeichenfolge2' , ... ] )
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn Avro-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Zeichenfolge, die zum Konvertieren in/aus 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.

Beispiel:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

\\N (d. h. NULL mit der Annahme, dass der ESCAPE_UNENCLOSED_FIELD-Wert \\ ist)

TYPE = ORC

TRIM_SPACE = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn ORC-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Boolescher Wert, der angibt, ob führende 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 ist derzeit eine Vorschaufunktion.

Standard

FALSE

NULL_IF = ( 'Zeichenfolge1' [ , 'Zeichenfolge2' , ... ] )
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn ORC-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Zeichenfolge, die zum Konvertieren in/aus 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.

Beispiel:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

\\N (d. h. NULL mit der Annahme, dass der ESCAPE_UNENCLOSED_FIELD-Wert \\ ist)

TYPE = PARQUET

COMPRESSION = AUTO | LZO | SNAPPY | NONE
Verwendung

Laden und Entladen von Daten

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 oder 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

AUTO | Entladene Dateien werden standardmäßig mit dem Snappy-Komprimierungsalgorithmus 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

Nur Laden von Daten

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.

Einschränkungen

Wird nur für Datenladeoperationen unterstützt.

Standard

TRUE

TRIM_SPACE = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn Parquet-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Boolescher Wert, der angibt, ob führende 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 ist derzeit eine Vorschaufunktion.

Standard

FALSE

NULL_IF = ( 'Zeichenfolge1' [ , 'Zeichenfolge2' , ... ] )
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn Parquet-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Zeichenfolge, die zum Konvertieren in/aus 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.

Beispiel:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

\\N (d. h. NULL mit der Annahme, dass der ESCAPE_UNENCLOSED_FIELD-Wert \\ ist)

TYPE = XML

COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
Verwendung

Laden und Entladen 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

Nur Laden von Daten

Definition

Boolescher Wert, der angibt, ob UTF-8-Codierungsfehler Fehlerbedingungen erzeugen. Wenn auf TRUE gesetzt, werden alle ungültigen UTF-8-Sequenzen stillschweigend durch Unicodezeichen U+FFFD (d. h. „Ersatzzeichen“) ersetzt.

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

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

TRIM_SPACE = TRUE | FALSE
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn XML-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Boolescher Wert, der angibt, ob führende 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 ist derzeit eine Vorschaufunktion.

Standard

FALSE

NULL_IF = ( 'Zeichenfolge1' [ , 'Zeichenfolge2' , ... ] )
Verwendung

Nur Laden von Daten

Definition

Wird nur angewendet, wenn XML-Daten in separate Spalten geladen werden (z. B. mithilfe der Kopieroption MATCH_BY_COLUMN_NAME oder einer COPY-Transformation). Zeichenfolge, die zum Konvertieren in/aus 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.

Beispiel:

NULL_IF = ('\\N', 'NULL', 'NUL', '')

Beachten Sie, dass diese Option leere Zeichenfolgen enthalten kann.

Diese Dateiformatoption ist derzeit eine Vorschaufunktion.

Standard

\\N (d. h. NULL mit der Annahme, dass der ESCAPE_UNENCLOSED_FIELD-Wert \\ ist)

Kopieroptionen (copyOptions)

Kopieroptionen werden zum Laden von Daten in und Entladen von Daten aus Tabellen verwendet.

Sie können eine oder mehrere der folgenden Kopieroptionen angeben (durch Leerzeichen, Kommas oder Neue-Zeile-Zeichen getrennt):

ON_ERROR = CONTINUE | SKIP_FILE | SKIP_FILE_Zahl | SKIP_FILE_Zahl% | ABORT_STATEMENT

Zeichenfolge (Konstante), die die Aktion angibt, die ausgeführt werden soll, wenn beim Laden von Daten aus einer Datei ein Fehler auftritt:

Unterstützte Werte

Anmerkungen

CONTINUE

Fährt mit dem Laden der Datei fort. Die COPY-Anweisung gibt eine Fehlermeldung für maximal einen Fehler pro Datendatei zurück. Beachten Sie, dass der Unterschied zwischen den Spaltenwerten ROWS_PARSED und ROWS_LOADED die Anzahl der Zeilen darstellt, die erkannte Fehler enthalten. Jede dieser Zeilen kann jedoch mehrere Fehler enthalten. Um alle Fehler in den Datendateien anzuzeigen, können Sie den Parameter VALIDATION_MODE verwenden oder die Funktion VALIDATE abfragen.

SKIP_FILE

Überspringt die Datei, wenn in der Datei Fehler aufgetreten sind.

SKIP_FILE_Zahl (z. B. SKIP_FILE_10)

Überspringt die Datei, wenn die Anzahl der Fehler in der Datei gleich oder größer als die angegebene Anzahl ist.

SKIP_FILE_Zahl% (z. B. SKIP_FILE_10%)

Überspringt die Datei, wenn der Prozentsatz der Fehler in der Datei den angegebenen Prozentsatz überschreitet.

ABORT_STATEMENT

Bricht die COPY-Anweisung ab, wenn ein Fehler auftritt.

Standard:

Massenladen mit COPY

ABORT_STATEMENT

Snowpipe

SKIP_FILE

SIZE_LIMIT = Zahl

Zahl (>0), die die maximale Größe (in Byte) der zu ladenden Daten für eine gegebene COPY-Anweisung angibt. Wenn der Schwellenwert überschritten wird, stoppt die Operation COPY das Laden von Dateien. Diese Option wird häufig verwendet, um eine gemeinsame Gruppe von Dateien mit mehreren COPY-Anweisungen zu laden. Für jede Anweisung wird die Datenladung fortgesetzt, bis das angegebene SIZE_LIMIT überschritten ist und bevor zur nächsten Anweisung übergegangen wird.

Angenommen, eine Gruppe von Dateien in einem Stagingbereichspfad wäre jeweils 10 MB groß. Wenn mehrere COPY-Anweisungen SIZE_LIMIT auf 25000000 (25 MB) setzen, würde jede 3 Dateien laden. Das heißt, jede COPY-Operation würde nach Überschreiten des SIZE_LIMIT-Schwellenwerts abbrechen.

Beachten Sie, dass mindestens eine Datei unabhängig von dem für SIZE_LIMIT:code: angegebenen Wert geladen wird, es sei denn, es ist keine Datei zu laden.

Standard: null (keine Größenbeschränkung)

PURGE = TRUE | FALSE

Boolescher Wert, der angibt, ob die Datendateien nach erfolgreichem Laden der Daten automatisch aus dem Stagingbereich entfernt werden sollen.

Wenn diese Option auf TRUE gesetzt ist, erfolgt das Entfernen der erfolgreich geladenen Datendateien nach besten Kräften. Beachten Sie aber, dass derzeit kein Fehler zurückgegeben wird, wenn die Löschoperation aus irgendeinem Grund fehlschlägt. Wir empfehlen daher, dass Sie die im Stagingbereich befindlichen Dateien regelmäßig auflisten (mit LIST) und erfolgreich geladene Dateien ggf. manuell entfernen.

Standard: FALSE

RETURN_FAILED_ONLY = TRUE | FALSE

Boolescher Wert, der angibt, ob nur Dateien zurückgegeben werden sollen, die nicht in das Anweisungsergebnis geladen wurden.

Standard: FALSE

MATCH_BY_COLUMN_NAME = CASE_SENSITIVE | CASE_INSENSITIVE | NONE

Zeichenfolge, die angibt, ob semistrukturierte Daten in Spalten der Zieltabelle geladen werden sollen, die den in den Daten dargestellten Spalten entsprechen.

Damit eine Spalte übereinstimmt, muss Folgendes zutreffen:

  • Die in den Daten dargestellte Spalte muss exakt den gleichen Namen haben wie die Spalte in der Tabelle. Die Kopieroption unterstützt die Groß- und Kleinschreibung von Spaltennamen. Die Spaltenreihenfolge spielt keine Rolle.

  • Die Spalte in der Tabelle muss einen Datentyp haben, der mit den Werten in der in den Daten dargestellten Spalte kompatibel ist. Beispielsweise können Zeichenfolgen-, Zahlen- und Boolesche Werte in eine Variant-Spalte geladen werden.

Folgende Optionen werden unterstützt:

CASE_SENSITIVE | CASE_INSENSITIVE

Laden Sie semistrukturierte Daten in Spalten der Zieltabelle, die den in den Daten dargestellten Spalten entsprechen. Spaltennamen können zwischen Groß- und Kleinschreibung unterscheiden (CASE_SENSITIVE) oder nicht unterscheiden (CASE_INSENSITIVE).

Die COPY-Operation überprüft, ob mindestens eine Spalte in der Zieltabelle mit einer in den Datendateien dargestellten Spalte übereinstimmt. Wenn eine Übereinstimmung gefunden wird, werden die Werte der Datendateien in die entsprechenden Spalten geladen. Wenn keine Übereinstimmung gefunden wird, wird für jeden Datensatz in den Dateien ein Satz von NULL-Werten in die Tabelle geladen.

Bemerkung

  • Wenn in den Datendateien weitere, nicht übereinstimmende Spalten vorhanden sind, werden die Werte in diesen Spalten nicht geladen.

  • Wenn die Zieltabelle weitere, nicht übereinstimmende Spalten enthält, fügt die COPY-Operation in diese Spalten NULL-Werte ein. Diese Spalten müssen NULL-Werte unterstützen.

  • In der COPY-Anweisung darf keine Abfrage zur weiteren Transformation der Daten während des Ladevorgangs (d. h. COPY-Transformation) angegeben werden.

NONE

Die COPY-Operation lädt die semistrukturierten Daten in eine Variant-Spalte oder transformiert die Daten, wenn in der COPY-Anweisung eine Abfrage enthalten ist.

Standard

NONE

Bemerkung

Derzeit gelten folgende Einschränkungen:

  • MATCH_BY_COLUMN_NAME kann nicht mit dem Parameter VALIDATION_MODE in einer COPY-Anweisung verwendet werden, um die Stagingdaten zu überprüfen, anstatt sie in die Zieltabelle zu laden.

  • Nur Parquet-Daten. Wenn MATCH_BY_COLUMN_NAME auf CASE_SENSITIVE oder CASE_INSENSITIVE gesetzt ist, führt ein leerer Spaltenwert (z. B. "col1": "") zu einem Fehler.

ENFORCE_LENGTH = TRUE | FALSE

Alternative Syntax für TRUNCATECOLUMNS mit umgekehrter Logik (zur Kompatibilität mit anderen Systemen)

Boolescher Wert, der angibt, ob Textzeichenfolgen, die die Länge der Zielspalte überschreiten, abgeschnitten werden sollen:

  • Wenn auf TRUE gesetzt, generiert die COPY-Anweisung beim Überschreiten der Länge der Zielspalte einen Fehler.

  • Wenn auf FALSE gesetzt, werden Zeichenfolgen automatisch auf die Länge der Zielspalte abgeschnitten.

Derzeit unterstützt diese Kopieroption nur CSV-Daten.

Standard: TRUE

Bemerkung

  • Wenn die Länge der Spalte für die Zielzeichenfolge auf das Maximum eingestellt ist (z. B. VARCHAR (16777216)), kann eine eingehende Zeichenfolge diese Länge nicht überschreiten, andernfalls generiert der COPY-Befehl einen Fehler.

  • Dieser Parameter entspricht funktional dem Parameter TRUNCATECOLUMNS, weist aber das umgekehrte Verhalten auf. Dies wird aus Gründen der Kompatibilität mit anderen Datenbanken bereitgestellt. Zum Erzeugen der gewünschten Ausgabe muss nur einer der beiden Parameter in eine COPY-Anweisung aufgenommen werden.

TRUNCATECOLUMNS = TRUE | FALSE

Alternative Syntax für ENFORCE_LENGTH mit umgekehrter Logik (zur Kompatibilität mit anderen Systemen)

Boolescher Wert, der angibt, ob Textzeichenfolgen, die die Länge der Zielspalte überschreiten, abgeschnitten werden sollen:

  • Wenn auf TRUE gesetzt, werden Zeichenfolgen automatisch auf die Länge der Zielspalte abgeschnitten.

  • Wenn auf FALSE gesetzt, generiert die COPY-Anweisung beim Überschreiten der Länge der Zielspalte einen Fehler.

Derzeit unterstützt diese Kopieroption nur CSV-Daten.

Standard: FALSE

Bemerkung

  • Wenn die Länge der Spalte für die Zielzeichenfolge auf das Maximum eingestellt ist (z. B. VARCHAR (16777216)), kann eine eingehende Zeichenfolge diese Länge nicht überschreiten, andernfalls generiert der COPY-Befehl einen Fehler.

  • Dieser Parameter entspricht funktional dem Parameter ENFORCE_LENGTH, weist aber das umgekehrte Verhalten auf. Dies wird aus Gründen der Kompatibilität mit anderen Datenbanken bereitgestellt. Zum Erzeugen der gewünschten Ausgabe muss nur einer der beiden Parameter in eine COPY-Anweisung aufgenommen werden.

FORCE = TRUE | FALSE

Boolescher Wert, der angibt, dass alle Dateien geladen werden sollen, unabhängig davon, ob sie bereits zuvor geladen und seitdem nicht geändert wurden. Beachten Sie, dass diese Option Dateien erneut lädt und dadurch Daten in einer Tabelle dupliziert.

Standard: FALSE

LOAD_UNCERTAIN_FILES = TRUE | FALSE

Boolescher Wert, der angibt, dass Dateien geladen werden sollen, bei denen der Ladestatus unbekannt ist. Der Befehl COPY überspringt diese Dateien standardmäßig.

Der Ladestatus ist unbekannt, wenn alle der folgenden Bedingungen erfüllt sind:

  • Das LAST_MODIFIED-Datum der Datei (d. h. das Datum, an dem die Datei bereitgestellt wurde) ist älter als 64 Tage.

  • Der ursprüngliche Datensatz wurde mehr als 64 Tage zuvor in die Tabelle geladen.

  • Wenn die Datei bereits erfolgreich in die Tabelle geladen wurde, trat dieses Ereignis vor mehr als 64 Tage auf.

Um den Befehl COPY zum Laden aller Dateien zu zwingen, unabhängig davon, ob der Ladestatus bekannt ist, verwenden Sie stattdessen die Option FORCE.

Weitere Informationen zu Unsicherheiten beim Ladestatus finden Sie unter Laden älterer Dateien.

Standard: FALSE

Nutzungshinweise

  • Änderungen an einer Tabelle werden nicht automatisch an Ansichten weitergegeben, die für diese Tabelle erstellt wurden. Wenn Sie beispielsweise eine Spalte in einer Tabelle löschen und eine Ansicht so definiert ist, dass sie diese Spalte enthält, wird die Ansicht ungültig. Die Ansicht wird nicht angepasst, um die Spalte zu entfernen.

  • Durch das Löschen einer Spalte wird der Speicherplatz der Spalte nicht unbedingt sofort freigegeben.

    • Der Speicherplatz in jeder Mikropartition wird erst freigegeben, wenn diese Mikropartition neu geschrieben wird. Schreiboperationen (Einfügen, Aktualisieren, Löschen usw.) auf einer oder mehreren Zeilen dieser Mikropartition bewirken, dass die Mikropartition neu geschrieben wird. Wenn Sie die Freigabe von Speicherplatz erzwingen möchten, können Sie jede Zeile in der Tabelle zwangsweise aktualisieren oder mit CREATE TABLE AS ... eine neue Tabelle erstellen, die nur die Spalten der alten Tabelle enthält, die Sie behalten möchten. Anschließend können Sie die alte Tabelle löschen. Jede dieser Operationen kann teuer sein, wenn das verbleibende Datenvolumen in der Tabelle groß ist.

    • Wenn die Tabelle durch die Time Travel-Funktion geschützt ist, wird der vom Time Travel-Speicher verwendete Speicherplatz erst nach Ablauf der Time Travel-Aufbewahrungsfrist freigegeben.

  • Wenn eine neue Spalte mit einem Standardwert zu einer Tabelle mit vorhandenen Zeilen hinzugefügt wird, werden alle vorhandenen Zeilen mit dem Standardwert gefüllt.

  • Das Hinzufügen einer neuen Spalte mit einem Standardwert, der eine Funktion enthält, wird derzeit nicht unterstützt. Der folgende Fehler wird zurückgegeben:

    Invalid column default expression (Ausdruck)

  • Um eine Tabelle zu ändern, müssen Sie eine Rolle verwenden, die über Eigentümerrechte für die Tabelle verfügt.

Beispiele

Umbenennen der Tabelle t1 in a1:

CREATE OR REPLACE TABLE t1(a1 number);

SHOW TABLES LIKE 't1';

---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+
           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes | owner  | retention_time |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+
 Tue, 17 Mar 2015 16:52:33 -0700 | T1   | TESTDB        | MY_SCHEMA   | TABLE |         |            | 0    | 0     | PUBLIC | 1              |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+

ALTER TABLE t1 RENAME TO tt1;

SHOW TABLES LIKE 'tt1';

---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+
           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes | owner  | retention_time |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+
 Tue, 17 Mar 2015 16:52:33 -0700 | TT1  | TESTDB        | MY_SCHEMA   | TABLE |         |            | 0    | 0     | PUBLIC | 1              |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------+----------------+

Tabellen t1 und t2 tauschen:

CREATE OR REPLACE TABLE t1(a1 number, a2 varchar, a3 date);
CREATE OR REPLACE TABLE t2(b1 varchar);

DESC TABLE t1;

------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |       type        |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 A1   | NUMBER(38,0)      | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A2   | VARCHAR(16777216) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A3   | DATE              | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+

DESC TABLE t2;

------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |       type        |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 B1   | VARCHAR(16777216) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+

ALTER TABLE t1 SWAP WITH t2;

DESC TABLE t1;

------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |       type        |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 B1   | VARCHAR(16777216) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+

DESC TABLE t2;

------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |       type        |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 A1   | NUMBER(38,0)      | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A2   | VARCHAR(16777216) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A3   | DATE              | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+-------------------+--------+-------+---------+-------------+------------+--------+------------+---------+

Hinzufügen von Spalten zur Tabelle t1, und dann Umbenennen einer Spalte und Löschen einer Spalte der Tabelle:

CREATE OR REPLACE TABLE t1(a1 number);

DESC TABLE t1;

------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |     type     |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 A1   | NUMBER(38,0) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+

-- Add a new column to table T1
ALTER TABLE t1 ADD COLUMN a2 number;

-- Add another column with NOT NULL constraint
ALTER TABLE t1 ADD COLUMN a3 number NOT NULL;

-- Add another column with a default value and a NOT NULL constraint
ALTER TABLE t1 ADD COLUMN a4 number DEFAULT 0 NOT NULL;

DESC TABLE t1;

------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |     type     |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 A1   | NUMBER(38,0) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A2   | NUMBER(38,0) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A3   | NUMBER(38,0) | COLUMN | N     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A4   | NUMBER(38,0) | COLUMN | N     | 0       | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+

-- Rename a column in table T1
ALTER TABLE t1 RENAME COLUMN a1 TO b1;

DESC TABLE t1;

------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |     type     |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 B1   | NUMBER(38,0) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A2   | NUMBER(38,0) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A3   | NUMBER(38,0) | COLUMN | N     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A4   | NUMBER(38,0) | COLUMN | N     | 0       | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+

-- Drop a column from table T1
ALTER TABLE t1 DROP COLUMN a2;

DESC TABLE t1;

------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 name |     type     |  kind  | null? | default | primary key | unique key | check  | expression | comment |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+
 B1   | NUMBER(38,0) | COLUMN | Y     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A3   | NUMBER(38,0) | COLUMN | N     | [NULL]  | N           | N          | [NULL] | [NULL]     | [NULL]  |
 A4   | NUMBER(38,0) | COLUMN | N     | 0       | N           | N          | [NULL] | [NULL]     | [NULL]  |
------+--------------+--------+-------+---------+-------------+------------+--------+------------+---------+

Ähnlich wie im letzten Beispiel, aber eine Spalte in zur externen Tabelle exttable1 hinzufügen, umbenennen und löschen:

CREATE EXTERNAL TABLE exttable1(
  LOCATION=@mystage/logs/
  AUTO_REFRESH = true
  FILE_FORMAT = (TYPE = PARQUET)
  );

 DESC EXTERNAL TABLE exttable1;

 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+
 | name      | type              | kind      | null? | default | primary key | unique key | check | expression                                               | comment               |
 |-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------|
 | VALUE     | VARIANT           | COLUMN    | Y     | NULL    | N           | N          | NULL  | NULL                                                     | The value of this row |
 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+

 -- Add a new column to table EXTTABLE1
 ALTER TABLE exttable1 ADD COLUMN a1 varchar AS (value:a1::varchar);

 DESC EXTERNAL TABLE exttable1;

 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+
 | name      | type              | kind      | null? | default | primary key | unique key | check | expression                                               | comment               |
 |-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------|
 | VALUE     | VARIANT           | COLUMN    | Y     | NULL    | N           | N          | NULL  | NULL                                                     | The value of this row |
 | A1        | VARCHAR(16777216) | VIRTUAL   | Y     | NULL    | N           | N          | NULL  | TO_CHAR(GET(VALUE, 'a1'))                                | NULL                  |
 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+

 -- Rename a column in table T1
 ALTER TABLE exttable1 RENAME COLUMN a1 TO b1;

 DESC EXTERNAL TABLE exttable1;

 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+
 | name      | type              | kind      | null? | default | primary key | unique key | check | expression                                               | comment               |
 |-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------|
 | VALUE     | VARIANT           | COLUMN    | Y     | NULL    | N           | N          | NULL  | NULL                                                     | The value of this row |
 | B1        | VARCHAR(16777216) | VIRTUAL   | Y     | NULL    | N           | N          | NULL  | TO_CHAR(GET(VALUE, 'a1'))                                | NULL                  |
 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+

 -- Drop a column from table T1
 ALTER TABLE exttable1 DROP COLUMN b1;

 DESC EXTERNAL TABLE exttable1;

 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+
 | name      | type              | kind      | null? | default | primary key | unique key | check | expression                                               | comment               |
 |-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------|
 | VALUE     | VARIANT           | COLUMN    | Y     | NULL    | N           | N          | NULL  | NULL                                                     | The value of this row |
 +-----------+-------------------+-----------+-------+---------+-------------+------------+-------+----------------------------------------------------------+-----------------------+

Ändern der Reihenfolge der Gruppierungsschlüssel einer Tabelle:

CREATE OR REPLACE TABLE T1 (id NUMBER, date TIMESTAMP_NTZ, name STRING) CLUSTER BY (id, date);

SHOW TABLES LIKE 'T1';

---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+
           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |    owner     | retention_time |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+
 Tue, 21 Jun 2016 15:42:12 -0700 | T1   | TESTDB        | TESTSCHEMA  | TABLE |         | (ID,DATE)  | 0    | 0     | ACCOUNTADMIN | 1              |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+

-- Change the order of the clustering key
ALTER TABLE t1 CLUSTER BY (date, id);

SHOW TABLES LIKE 'T1';

---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+
           created_on            | name | database_name | schema_name | kind  | comment | cluster_by | rows | bytes |    owner     | retention_time |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+
 Tue, 21 Jun 2016 15:42:12 -0700 | T1   | TESTDB        | TESTSCHEMA  | TABLE |         | (DATE,ID)  | 0    | 0     | ACCOUNTADMIN | 1              |
---------------------------------+------+---------------+-------------+-------+---------+------------+------+-------+--------------+----------------+