CREATE STAGE¶
Erstellt einen neuen benannten internen oder externen Stagingbereich, der zum Laden von Daten aus Dateien in Snowflake-Tabellen und zum Entladen von Daten aus Tabellen in Dateien verwendet werden kann:
- Interner Stagingbereich
Speichert Datendateien intern in Snowflake. Interne Stagingbereiche können entweder permanent oder temporär sein. Weitere Details dazu finden Sie unter Auswahl eines internen Stagingbereichs für lokale Dateien.
- Externer Stagingbereich
Ein externer Stagingbereich verweist auf Datendateien, die an einem Ort außerhalb von Snowflake gespeichert sind. Derzeit werden die folgenden Cloudspeicherdienste unterstützt:
Amazon S3-Buckets
Google Cloud Storage-Bucket
Microsoft Azure-Container
Der Speicherort kann entweder privat/geschützt oder öffentlich sein.
Sie können nicht auf Daten in archivierten Cloudspeicherklassen zugreifen, die erst wiederhergestellt werden müssen, bevor sie abgerufen werden können. Zu diesen Archivspeicherklassen gehören zum Beispiel die Amazon S3-Speicherklassen Glacier Flexible Retrieval und Glacier Deep Archive oder Microsoft Azure Archive Storage.
Ein interner oder externer Stagingbereich kann eine Verzeichnistabelle enthalten. Verzeichnistabellen speichern einen Katalog der Stagingdateien im Cloudspeicher.
- Siehe auch:
Syntax¶
-- Internal stage
CREATE [ OR REPLACE ] [ TEMPORARY ] STAGE [ IF NOT EXISTS ] <internal_stage_name>
internalStageParams
directoryTableParams
[ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]
[ COPY_OPTIONS = ( copyOptions ) ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
-- External stage
CREATE [ OR REPLACE ] [ TEMPORARY ] STAGE [ IF NOT EXISTS ] <external_stage_name>
externalStageParams
directoryTableParams
[ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML } [ formatTypeOptions ] } ) ]
[ COPY_OPTIONS = ( copyOptions ) ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Wobei:
internalStageParams ::= [ ENCRYPTION = (TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE') ]externalStageParams (for Amazon S3) ::= URL = { 's3://<bucket>[/<path>/]' | 's3gov://<bucket>[/<path>/]' } [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( { { AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' [ AWS_TOKEN = '<string>' ] } | AWS_ROLE = '<string>' } ) ) } ] [ ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] ] | [ TYPE = 'NONE' ] ) ]externalStageParams (for Google Cloud Storage) ::= URL = 'gcs://<bucket>[/<path>/]' [ STORAGE_INTEGRATION = <integration_name> ] [ ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] ) ]externalStageParams (for Microsoft Azure) ::= URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]' [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( [ AZURE_SAS_TOKEN = '<string>' ] ) } ] [ ENCRYPTION = ( [ TYPE = 'AZURE_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'NONE' ] ) ]externalStageParams (for Amazon S3-compatible Storage) ::= URL = 's3compat://{bucket}[/{path}/]' [ { ENDPOINT = '<s3_api_compatible_endpoint>' } | { CREDENTIALS = ( AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' ) } ]directoryTableParams (for internal stages) ::= [ DIRECTORY = ( ENABLE = { TRUE | FALSE } [ REFRESH_ON_CREATE = { TRUE | FALSE } ] ) ]directoryTableParams (for Amazon S3) ::= [ DIRECTORY = ( ENABLE = { TRUE | FALSE } [ REFRESH_ON_CREATE = { TRUE | FALSE } ] [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]directoryTableParams (for Google Cloud Storage) ::= [ DIRECTORY = ( ENABLE = { TRUE | FALSE } [ AUTO_REFRESH = { TRUE | FALSE } ] [ REFRESH_ON_CREATE = { TRUE | FALSE } ] [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]directoryTableParams (for Microsoft Azure) ::= [ DIRECTORY = ( ENABLE = { TRUE | FALSE } [ REFRESH_ON_CREATE = { TRUE | FALSE } ] [ AUTO_REFRESH = { TRUE | FALSE } ] [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]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 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 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 | FALSEcopyOptions ::= 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
Erforderliche Parameter¶
internal_stage_name
oder .external_stage_name
Gibt den Bezeichner für den Stagingbereich an. Dieser muss für das Schema, in dem der Stagingbereich angelegt wird, eindeutig sein.
Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B.
"My object"
). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.
Bemerkung
Beim Erstellen eines externen Stagingbereichs ist ebenfalls eine URL erforderlich. Weitere Details dazu finden Sie unter Externe Stagingbereichsparameter (unter diesem Thema).
Wenn keine URL angegeben wird, erstellt Snowflake standardmäßig einen internen Stagingbereich.
Optionale Parameter¶
TEMPORARY
Gibt an, dass der erstellte Stagingbereich temporär ist und am Ende der Sitzung, in der er erstellt wurde, gelöscht wird. Anmerkung:
Wenn ein temporärer externer Stagingbereich gelöscht wird, wird nur der Stagingbereich selbst gelöscht. Die Datendateien werden nicht entfernt.
Wenn ein temporärer interner Stagingbereich gelöscht wird, werden alle Dateien in dem Stagingbereich von Snowflake gelöscht, unabhängig von ihrem Ladestatus. Dadurch wird verhindert, dass Dateien in temporären internen Stagingbereichen Datenspeicher nutzen und damit Speicherkosten verursachen. Das bedeutet aber auch, dass die bereitgestellten Dateien nicht mehr über Snowflake wiederhergestellt werden können, wenn der Stagingbereich gelöscht wird.
Tipp
Wenn Sie planen, temporäre interne Stagingbereiche zu erstellen und zu verwenden, sollten Sie Kopien Ihrer Datendateien außerhalb von Snowflake aufbewahren.
FILE_FORMAT = ( FORMAT_NAME = 'file_format_name' )
oder .FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ] )
Gibt das Dateiformat für den Stagingbereich an, das sein kann:
FORMAT_NAME = 'file_format_name'
Gibt ein bestehendes benanntes Dateiformat an, das für den Stagingbereich verwendet werden soll. Das benannte Dateiformat bestimmt den Formattyp (CSV, JSON usw.) sowie alle anderen Formatoptionen für die Datendateien, die mithilfe dieses Stagingbereichs geladenen wurden. Weitere Details dazu finden Sie unter CREATE FILE FORMAT.
TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ]
Gibt den Typ der Dateien für den Stagingbereich an:
Das Laden von Daten aus einem Stagingbereich (mit COPY INTO <Tabelle>) beinhaltet alle unterstützten Formattypen.
Das Entladen von Daten in einen Stagingbereich (mit COPY INTO <Speicherort>) beinhaltet
CSV
,JSON
oderPARQUET
.
Wenn ein Dateiformattyp angegeben wird, können zusätzliche formatspezifische Optionen angegeben werden. Weitere Details dazu finden Sie unter Formattypoptionen (formatTypeOptions) (unter diesem Thema).
Standard:
TYPE = CSV
Bemerkung
FORMAT_NAME
undTYPE
schließen sich gegenseitig aus. Sie können für einen Stagingbereich nur eins von beiden angeben.COPY_OPTIONS = ( ... )
Gibt eine (oder mehrere) Kopieroptionen für den Stagingbereich an. Weitere Details dazu finden Sie unter Kopieroptionen (copyOptions) (unter diesem Thema).
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Gibt den Namen des Tags und den Wert der Tag-Zeichenfolge an.
Der Tag-Wert ist immer eine Zeichenfolge, die maximale 256 Zeichen lang sein kann.
Weitere Informationen zur Angabe von Tags in einer Anweisung finden Sie unter Tag-Kontingente für Objekte und Spalten.
COMMENT = 'string_literal'
Gibt einen Kommentar für den Stagingbereich an.
Standard: Kein Wert
Parameter für interne Stagingbereiche (internalStageParams
)¶
[ ENCRYPTION = (TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE') ]
Gibt den Typ der Verschlüsselung an, der für alle im Stagingbereich gespeicherten Dateien unterstützt wird.
TYPE = ...
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
SNOWFLAKE_FULL
: Clientseitige Verschlüsselung. Die Dateien werden von einem Client verschlüsselt, wenn dieser sie mit PUT in den internen Stagingbereich hochlädt.SNOWFLAKE_SSE
: Serverseitige Verschlüsselung. Die Dateien sind verschlüsselt, wenn sie im Stagingbereich ankommen.Geben Sie die serverseitige Verschlüsselung an, wenn Sie für Ihre Stagingdateien vorsignierte URLs abfragen möchten. Weitere Informationen dazu finden Sie unter Verfügbare URL-Typen für Zugriff auf Dateien.
Standard:
SNOWFLAKE_FULL
Parameter für externe Stagingbereiche (externalStageParams
)¶
URL = 'cloud_specific_url'
Wenn dieser Parameter nicht angegeben wird, erstellt Snowflake einen internen Stagingbereich
Wichtig
Schließen Sie die URL in einfache Anführungszeichen (
''
) ein, damit Snowflake die Zeichenfolge erkennen kann. Wenn Sie die Anführungszeichen weglassen, werden von Ihnen eingegebene Anmeldeinformationen möglicherweise im Verlauf im Klartext angezeigt. Wir empfehlen dringend, die Syntax der Anweisung CREATE STAGE zu überprüfen, bevor Sie sie ausführen.Wenn Sie einen Stagingbereich über die Snowflake-Weboberfläche erstellen, werden Feldwerte bei Bedarf automatisch in Anführungszeichen eingeschlossen.
Hängen Sie einen Schrägstrich (
/
) an die URL an, um nach dem angegebenen Ordnerpfad zu filtern. Wenn der Schrägstrich weggelassen wird, werden alle Dateien und Ordner einbezogen, die mit dem Präfix für den angegebenen Pfad beginnen.Beachten Sie, dass der Schrägstrich erforderlich ist, um auf unstrukturierte Datendateien im Stagingbereich zuzugreifen und diese abzurufen.
Amazon S3
URL = { 's3://{bucket}[/{path}/]' | 's3gov://{bucket}[/{path}/]' }
Gibt die URL für den externen Speicherort (vorhandener S3-Bucket) an, in dem Datendateien zum Laden/Entladen gespeichert werden, wobei Folgendes gilt:
Das Präfix
s3
bezieht sich auf S3-Speicher in öffentlichen AWS-Regionen.Das Präfix
s3gov
bezieht sich auf S3-Speicher in Regionen für Regierungsbehörden. Beachten Sie, dass derzeit der Zugriff auf S3-Speicher in AWS-Regionen für Regierungsbehörden über eine Speicherintegration auf Snowflake-Konten beschränkt ist, die auf AWS in derselben Region gehostet werden. Der Zugriff auf Ihren S3-Speicher von einem Konto, das außerhalb der Region der Regierungsbehörden gehostet wird, wird unter Verwendung direkter Anmeldeinformationen aber unterstützt.bucket
ist der Name des S3-Buckets.path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch die Dateien eingegrenzt werden. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet.
Google Cloud Storage
URL = 'gcs://bucket[/path/]'
Gibt die URL für den externen Speicherort (vorhandener GCS-Bucket) an, in dem Datendateien zum Laden/Entladen gespeichert werden, wobei Folgendes gilt:
bucket
ist der Name des GCS-Buckets.path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch die Dateien eingegrenzt werden. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet.
Microsoft Azure
URL = 'azure://account.blob.core.windows.net/container[/path/]'
Gibt die URL für den externen Speicherort (vorhandener Azure-Container) an, in dem Datendateien zum Laden gespeichert werden, wobei Folgendes gilt:
account
ist der Name des Azure-Kontos (z. B.myaccount
). Verwenden Sie den Endpunktblob.core.windows.net
für alle unterstützten Typen von Azure-Blob-Speicherkonten, einschließlich Data Lake Storage Gen2.Beachten Sie, dass der Zugriff auf Azure-Blobspeicher in Regionen für Regierungsbehörden unter Verwendung einer Speicherintegration derzeit auf Snowflake-Konten beschränkt ist, die auf Azure in derselben Regierungsregion gehostet werden. Der Zugriff auf Ihren Blobspeicher von einem Konto, das außerhalb der Region der Regierungsbehörden gehostet wird, wird unter Verwendung direkter Anmeldeinformationen aber unterstützt.
container
ist der Name des Azure-Containers (z. B.mycontainer
).path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung für Dateien am Cloudspeicherort (d. h. Dateien haben Namen, die mit einer gemeinsamen Zeichenfolge beginnen), wodurch die Dateien eingegrenzt werden. Pfade werden von den verschiedenen Cloudspeicherdiensten alternativ als Präfixe oder Ordner bezeichnet.
Standard: Kein Wert (es wird ein interner Stagingbereich erstellt)
STORAGE_INTEGRATION = integration_name
oder .CREDENTIALS = ( cloud_specific_credentials )
Nur erforderlich, wenn der Speicherort privat/geschützt ist. Nicht erforderlich für öffentliche Buckets/Container
Amazon S3
STORAGE_INTEGRATION = integration_name
Gibt den Namen der Speicherintegration an, mit der die Authentifizierungsverantwortung für den externen Cloudspeicher an eine Snowflake-Entität für Identitäts- und Zugriffsverwaltung (IAM) delegiert wird. Weitere Details dazu finden Sie unter CREATE STORAGE INTEGRATION.
Bemerkung
Wir empfehlen dringend die Verwendung von Speicherintegrationen. Mit dieser Option wird vermieden, dass beim Erstellen von Stagingbereichen oder Laden von Daten mithilfe des Parameters CREDENTIALS Cloudspeicher-Anmeldeinformationen angegeben werden müssen.
Der Zugriff auf S3-Speicher in Regionen für Regierungsbehörden unter Verwendung einer Speicherintegration ist derzeit auf Snowflake-Konten beschränkt, die auf AWS in derselben Regierungsregion gehostet werden. Der Zugriff auf Ihren S3-Speicher von einem Konto, das außerhalb der Region der Regierungsbehörden gehostet wird, wird unter Verwendung direkter Anmeldeinformationen aber unterstützt.
CREDENTIALS = ( AWS_KEY_ID = 'string' AWS_SECRET_KEY = 'string' [ AWS_TOKEN = 'string' ] )
oder .CREDENTIALS = ( AWS_ROLE = 'string' )
Gibt die Sicherheits-Anmeldeinformationen für die Verbindung mit AWS und den Zugriff auf den privaten/geschützten S3-Bucket an, in dem die zu ladenden/entladenden Dateien bereitgestellt werden. Weitere Informationen dazu finden Sie unter Konfigurieren des sicheren Zugriffs auf Amazon S3.
Die von Ihnen angegebenen Anmeldeinformationen hängen davon ab, ob Sie die Zugriffsberechtigungen von Snowflake für den Bucket einem AWS IAM (Identity & Access Management)-Benutzer oder einer Rolle zugeordnet haben:
IAM-Benutzer: IAM-Anmeldeinformationen sind erforderlich. Temporäre (auch bekannt als „Scoped“) Anmeldeinformationen werden vom AWS Security Token Service (STS) generiert und bestehen aus drei Komponenten:
AWS_KEY_ID
AWS_SECRET_KEY
AWS_TOKEN
Alle drei sind erforderlich, um auf einen privaten/geschützten Bucket zuzugreifen. Nach einem angegebenen Zeitraum verfallen die temporären Anmeldeinformationen und können nicht mehr verwendet werden. Sie müssen dann einen neuen Satz gültiger temporärer Anmeldeinformationen generieren.
Wichtig
Mit dem Befehl COPY können auch permanente (auch bekannt als „langfristige“) Anmeldeinformationen verwendet werden. Aus Sicherheitsgründen empfiehlt Snowflake jedoch, diese nicht zu verwenden. Wenn Sie permanente Anmeldeinformationen verwenden müssen, empfiehlt Snowflake, regelmäßig neue permanente Anmeldeinformationen für externe Stagingbereiche zu generieren.
IAM-Rolle: Lassen Sie die Sicherheits-Anmeldeinformationen und Zugriffsschlüssel weg. Identifizieren Sie stattdessen die Rolle mit
AWS_ROLE
, und geben Sie den ARN (Amazon Resource Name) der AWS-Rolle an.
Google Cloud Storage
STORAGE_INTEGRATION = integration_name
Gibt den Namen der Speicherintegration an, mit der die Authentifizierungsverantwortung für den externen Cloudspeicher an eine Snowflake-Entität für Identitäts- und Zugriffsverwaltung (IAM) delegiert wird. Weitere Details dazu finden Sie unter CREATE STORAGE INTEGRATION.
Microsoft Azure
STORAGE_INTEGRATION = integration_name
Gibt den Namen der Speicherintegration an, mit der die Authentifizierungsverantwortung für den externen Cloudspeicher an eine Snowflake-Entität für Identitäts- und Zugriffsverwaltung (IAM) delegiert wird. Weitere Details dazu finden Sie unter CREATE STORAGE INTEGRATION.
Bemerkung
Wir empfehlen dringend die Verwendung von Speicherintegrationen. Mit dieser Option wird vermieden, dass beim Erstellen von Stagingbereichen oder Laden von Daten mithilfe des Parameters CREDENTIALS Cloudspeicher-Anmeldeinformationen angegeben werden müssen.
Der Zugriff auf Azure-Blobspeicher in Regionen für Regierungsbehörden unter Verwendung einer Speicherintegration ist derzeit auf Snowflake-Konten beschränkt, die auf Azure in derselben Regierungsregion gehostet werden. Der Zugriff auf Ihren Blobspeicher von einem Konto, das außerhalb der Region der Regierungsbehörden gehostet wird, wird unter Verwendung direkter Anmeldeinformationen aber unterstützt.
CREDENTIALS = ( AZURE_SAS_TOKEN = 'string' )
Gibt das Shared Access Signature-Token (SAS-Token) für die Verbindung mit Azure und den Zugriff auf den privaten/geschützten Container an, in dem die Dateien mit geladenen Daten bereitgestellt werden. Die Anmeldeinformationen werden von Azure generiert.
Standard: Kein Wert (für den externen Stagingbereich werden keine Anmeldeinformationen angegeben)
ENCRYPTION = ( cloud_specific_encryption )
Nur erforderlich zum Laden aus bzw. Entladen in verschlüsselte Dateien; nicht erforderlich, wenn Speicherorte und Dateien unverschlüsselt sind
- Laden von Daten
Ändert die Verschlüsselungseinstellungen, die zum Entschlüsseln verschlüsselter Dateien am Speicherort und zum Extrahieren von Daten verwendet werden.
- Entladen von Daten
Ändert die Verschlüsselungseinstellungen, die zum Verschlüsseln von Dateien verwendet werden, die an den Speicherort entladen werden.
Amazon S3
ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ] ] | [ TYPE = 'NONE' ] )
TYPE = ...
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
AWS_CSE
: Clientseitige Verschlüsselung (erfordert einenMASTER_KEY
-Wert). Derzeit kann der von Ihnen bereitgestellte clientseitige Hauptschlüssel nur ein symmetrischer Schlüssel sein. Beachten Sie, dass Snowflake bei Angabe einesMASTER_KEY
-Werts davon ausgeht, dassTYPE = AWS_CSE
(d. h. wenn einMASTER_KEY
-Wert angegeben wird, istTYPE
nicht erforderlich).AWS_SSE_S3
: Serverseitige Verschlüsselung, die keine zusätzlichen Verschlüsselungseinstellungen erfordert.AWS_SSE_KMS
: Serverseitige Verschlüsselung, die einen optionalenKMS_KEY_ID
-Wert akzeptiert.
Weitere Informationen zu den Verschlüsselungsarten finden Sie in der AWS-Dokumentation für clientseitige Verschlüsselung oder serverseitige Verschlüsselung.
NONE
: Keine Verschlüsselung.
MASTER_KEY = 'string'
(gilt nur fürAWS_CSE
-Verschlüsselung)Gibt den clientseitigen Hauptschlüssel an, mit dem die Dateien im Bucket verschlüsselt wurden. Der Hauptschlüssel muss ein 128-Bit- oder 256-Bit-Schlüssel in Base64-codierter Form sein.
KMS_KEY_ID = 'string'
(gilt nur fürAWS_SSE_KMS
-Verschlüsselung)Gibt optional die ID für den AWS KMS-verwalteten Schlüssel an, der zum Verschlüsseln von Dateien verwendet wird, die in den Bucket entladen wurden. Wenn kein Wert angegeben wird, werden Dateien beim Entladen mit Ihrer standardmäßigen KMS-Schlüssel-ID verschlüsselt.
Beachten Sie, dass dieser Wert beim Laden von Daten ignoriert wird.
Google Cloud Storage
ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' | 'NONE' ] [ KMS_KEY_ID = 'string' ] )
TYPE = ...
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
GCS_SSE_KMS
: Serverseitige Verschlüsselung, die einen optionalenKMS_KEY_ID
-Wert akzeptiert.Weitere Informationen dazu finden Sie in der Dokumentation zu Google Cloud Platform:
NONE
: Keine Verschlüsselung.
KMS_KEY_ID = 'string'
(gilt nur fürGCS_SSE_KMS
-Verschlüsselung)Gibt optional die ID für den Cloud-KMS-verwalteten Schlüssel an, der zum Verschlüsseln von Dateien verwendet wird, die in den Bucket entladen wurden. Wenn kein Wert angegeben ist, werden Dateien beim Entladen in den Bucket mit Ihrer standardmäßigen KMS-Schlüssel-ID verschlüsselt.
Beachten Sie, dass dieser Wert beim Laden von Daten ignoriert wird. Die Ladeoperation sollte erfolgreich sein, wenn das Dienstkonto über ausreichende Berechtigungen zum Entschlüsseln von Daten im Bucket verfügt.
Microsoft Azure
ENCRYPTION = ( [ TYPE = 'AZURE_CSE' | 'NONE' ] [ MASTER_KEY = 'string' ] )
TYPE = ...
Gibt den verwendeten Verschlüsselungstyp an. Mögliche Werte sind:
AZURE_CSE
: Clientseitige Verschlüsselung (erfordert einen MASTER_KEY-Wert). Weitere Informationen dazu finden Sie unter Informationen zur clientseitigen Verschlüsselung in der Microsoft Azure-Dokumentation.NONE
: Keine Verschlüsselung.
MASTER_KEY = 'string'
(gilt nur für AZURE_CSE-Verschlüsselung)Gibt den clientseitigen Hauptschlüssel an, der zum Ver- oder Entschlüsseln von Dateien verwendet wird. Der Hauptschlüssel muss ein 128-Bit- oder 256-Bit-Schlüssel in Base64-codierter Form sein.
Parameter für externe Stagingbereiche für Amazon S3-kompatiblen Speicher (externalStageParams
)¶
URL = 's3compat://bucket[/path/]'
Gibt die URL für den externen Speicherort (vorhandener Bucket, auf den über S3-kompatiblen API-Endpunkt zugegriffen wird) an, in dem Datendateien gespeichert werden, wobei Folgendes gilt:
bucket
ist der Name des Buckets.
path
ist ein optionaler Pfad mit Unterscheidung von Groß-/Kleinschreibung (oder Präfix in S3-Terminologie) für Dateien am Cloudspeicherort (d. h. Dateien mit Namen, die mit einer gemeinsamen Zeichenfolge beginnen).ENDPOINT = 's3_api_compatible_endpoint'
Vollqualifizierte Domäne, die auf den S3-kompatiblen API-Endpunkt verweist.
Parameter der Verzeichnistabelle (directoryTableParams
)¶
ENABLE = TRUE | FALSE
Gibt an, ob eine Verzeichnistabelle zum Stagingbereich hinzugefügt werden soll. Wenn der Wert TRUE ist, wird beim Erstellen des Stagingbereichs auch eine Verzeichnistabelle erstellt.
Standard:
FALSE
Externe Stagingbereiche¶
Amazon S3
REFRESH_ON_CREATE = TRUE | FALSE
Gibt an, ob die Metadaten der Verzeichnistabelle sofort nach dem Erstellen des Stagingbereichs automatisch aktualisiert werden sollen. Durch das Aktualisieren der Metadaten der Verzeichnistabelle werden die Metadaten mit der aktuellen Liste der Datendateien im angegebenen Stagingbereichspfad synchronisiert. Diese Aktion ist erforderlich, damit die Metadaten alle vorhandenen Datendateien in dem in der Einstellung
URL =
angegebenen benannten Stagingbereich registrieren.
TRUE
Snowflake aktualisiert die Metadaten der Verzeichnistabelle nach der Erstellung des Stagingbereichs einmal automatisch.
Bemerkung
Wenn die angegebene Cloudspeicher-URL fast 1 Millionen Dateien oder mehr enthält, empfehlen wir Ihnen,
REFRESH_ON_CREATE = FALSE
einzustellen. Nachdem Sie den Stagingbereich erstellt haben, aktualisieren Sie schrittweise die Metadaten der Verzeichnistabelle durch Ausführen von ALTER STAGE … REFRESH-Anweisungen unter Angabe der Unterpfade am Speicherort (d. h. Teilmengen von Dateien, die in die Aktualisierung einbezogen werden sollen), bis die Metadaten alle Dateien am Speicherort berücksichtigen.FALSE
Snowflake aktualisiert die Metadaten der Verzeichnistabelle nicht automatisch. Um die im Stagingbereich vorhandenen Datendateien zu registrieren, müssen Sie die Metadaten der Verzeichnistabelle einmal manuell mit ALTER STAGE … REFRESH aktualisieren.
Standard:
TRUE
AUTO_REFRESH = TRUE | FALSE
Gibt an, ob Snowflake das Auslösen einer automatischen Aktualisierung der Metadaten der Verzeichnistabelle aktivieren soll, wenn in dem in
[ WITH ] LOCATION =
angegebenen benannten externen Stagingbereich neue oder aktualisierte Datendateien verfügbar sind.
TRUE
Snowflake ermöglicht das Auslösen automatischer Aktualisierungen der Metadaten von Verzeichnistabellen.
FALSE
Snowflake ermöglicht nicht das Auslösen automatischer Aktualisierungen der Metadaten von Verzeichnistabellen. Sie müssen die Metadaten der Verzeichnistabelle manuell mit ALTER STAGE … REFRESH aktualisieren, um die Metadaten mit der aktuellen Liste der Dateien im Stagingbereichspfad zu synchronisieren.
Standard:
FALSE
Google Cloud Storage
REFRESH_ON_CREATE = TRUE | FALSE
Gibt an, ob die Metadaten der Verzeichnistabelle sofort nach dem Erstellen des Stagingbereichs automatisch aktualisiert werden sollen. Durch das Aktualisieren der Metadaten der Verzeichnistabelle werden die Metadaten mit der aktuellen Liste der Datendateien im angegebenen Stagingbereichspfad synchronisiert. Diese Aktion ist erforderlich, damit die Metadaten alle vorhandenen Datendateien in dem in der Einstellung
URL =
angegebenen benannten Stagingbereich registrieren.
TRUE
Snowflake aktualisiert die Metadaten der Verzeichnistabelle nach der Erstellung des Stagingbereichs einmal automatisch.
Bemerkung
Wenn die angegebene Cloudspeicher-URL fast 1 Millionen Dateien oder mehr enthält, empfehlen wir Ihnen,
REFRESH_ON_CREATE = FALSE
einzustellen. Nachdem Sie den Stagingbereich erstellt haben, aktualisieren Sie schrittweise die Metadaten der Verzeichnistabelle durch Ausführen von ALTER STAGE … REFRESH-Anweisungen unter Angabe der Unterpfade am Speicherort (d. h. Teilmengen von Dateien, die in die Aktualisierung einbezogen werden sollen), bis die Metadaten alle Dateien am Speicherort berücksichtigen.FALSE
Snowflake aktualisiert die Metadaten der Verzeichnistabelle nicht automatisch. Um die im Stagingbereich vorhandenen Datendateien zu registrieren, müssen Sie die Metadaten der Verzeichnistabelle einmal manuell mit ALTER STAGE … REFRESH aktualisieren.
Standard:
TRUE
AUTO_REFRESH = TRUE | FALSE
Gibt an, ob Snowflake das Auslösen einer automatischen Aktualisierung der Metadaten der Verzeichnistabelle aktivieren soll, wenn in dem in
[ WITH ] LOCATION =
angegebenen benannten externen Stagingbereich neue oder aktualisierte Datendateien verfügbar sind.
TRUE
Snowflake ermöglicht das Auslösen automatischer Aktualisierungen der Metadaten von Verzeichnistabellen.
FALSE
Snowflake ermöglicht nicht das Auslösen automatischer Aktualisierungen der Metadaten von Verzeichnistabellen. Sie müssen die Metadaten der Verzeichnistabelle manuell mit ALTER STAGE … REFRESH aktualisieren, um die Metadaten mit der aktuellen Liste der Dateien im Stagingbereichspfad zu synchronisieren.
NOTIFICATION_INTEGRATION = '<Name_der_Benachrichtigungsintegration>'
Name der Benachrichtigungsintegration, die zur automatischen Aktualisierung der Metadaten der Tabelle im Verzeichnis unter Verwendung von Azure Event Grid-Benachrichtigungen verwendet wird. Eine Benachrichtigungsintegration ist ein Snowflake-Objekt, das eine Schnittstelle zwischen Snowflake und Cloud-Nachrichtenwarteschlangendiensten von Drittanbietern bereitstellt.
Microsoft Azure
REFRESH_ON_CREATE = TRUE | FALSE
Gibt an, ob die Metadaten der Verzeichnistabelle sofort nach dem Erstellen des Stagingbereichs automatisch aktualisiert werden sollen. Durch das Aktualisieren der Metadaten der Verzeichnistabelle werden die Metadaten mit der aktuellen Liste der Datendateien im angegebenen Stagingbereichspfad synchronisiert. Diese Aktion ist erforderlich, damit die Metadaten alle vorhandenen Datendateien in dem in der Einstellung
URL =
angegebenen benannten Stagingbereich registrieren.
TRUE
Snowflake aktualisiert die Metadaten der Verzeichnistabelle nach der Erstellung des Stagingbereichs einmal automatisch.
Bemerkung
Wenn die angegebene Cloudspeicher-URL fast 1 Millionen Dateien oder mehr enthält, empfehlen wir Ihnen,
REFRESH_ON_CREATE = FALSE
einzustellen. Nachdem Sie den Stagingbereich erstellt haben, aktualisieren Sie schrittweise die Metadaten der Verzeichnistabelle durch Ausführen von ALTER STAGE … REFRESH-Anweisungen unter Angabe der Unterpfade am Speicherort (d. h. Teilmengen von Dateien, die in die Aktualisierung einbezogen werden sollen), bis die Metadaten alle Dateien am Speicherort berücksichtigen.FALSE
Snowflake aktualisiert die Metadaten der Verzeichnistabelle nicht automatisch. Um die im Stagingbereich vorhandenen Datendateien zu registrieren, müssen Sie die Metadaten der Verzeichnistabelle einmal manuell mit ALTER STAGE … REFRESH aktualisieren.
Standard:
TRUE
AUTO_REFRESH = TRUE | FALSE
Gibt an, ob Snowflake das Auslösen einer automatischen Aktualisierung der Metadaten der Verzeichnistabelle aktivieren soll, wenn in dem in
[ WITH ] LOCATION =
angegebenen benannten externen Stagingbereich neue oder aktualisierte Datendateien verfügbar sind.
TRUE
Snowflake ermöglicht das Auslösen automatischer Aktualisierungen der Metadaten von Verzeichnistabellen.
FALSE
Snowflake ermöglicht nicht das Auslösen automatischer Aktualisierungen der Metadaten von Verzeichnistabellen. Sie müssen die Metadaten der Verzeichnistabelle manuell mit ALTER STAGE … REFRESH aktualisieren, um die Metadaten mit der aktuellen Liste der Dateien im Stagingbereichspfad zu synchronisieren.
Standard:
FALSE
NOTIFICATION_INTEGRATION = '<Name_der_Benachrichtigungsintegration>'
Name der Benachrichtigungsintegration, die zur automatischen Aktualisierung der Metadaten der Tabelle im Verzeichnis unter Verwendung von Azure Event Grid-Benachrichtigungen verwendet wird. Eine Benachrichtigungsintegration ist ein Snowflake-Objekt, das eine Schnittstelle zwischen Snowflake und Cloud-Nachrichtenwarteschlangendiensten von Drittanbietern bereitstellt.
Formattypoptionen (formatTypeOptions
)¶
Je nach angegebenem Dateiformattyp (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 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 Hex-Werte (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
Hex-Werte (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
\r\n
als neue Zeile für Dateien auf einer Windows-Plattform verstanden wird.- Entladen von Daten
Neue-Zeile-Zeichen (
\n
).
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 Hex-Werte (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
Hex-Werte (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
).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 ist 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
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-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
Nur Laden von Daten
- Definition
Boolescher Wert, der angibt, ob ungültige UTF-8-Zeichen durch das Unicode-Ersetzungszeichen ersetzt werden sollen (
�
). Die Kopieroption führt eine 1:1-Zeichenersetzung durch.- 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
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 das UnicodezeichenU+FFFD
(d. h. „Ersetzungszeichen“) ersetzt.Bemerkung
Diese Kopieroption entfernt beim Laden der Daten alle Nicht-UTF-8-Zeichen, aber es gibt keine Garantie für eine 1:1-Ersetzung von Zeichen. Wir empfehlen, stattdessen die Kopieroption REPLACE_INVALID_CHARACTERS zu verwenden.
- 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
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
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
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
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
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
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 das UnicodezeichenU+FFFD
(d. h. „Ersetzungszeichen“) 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
Kopieroptionen (copyOptions
)¶
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_num | 'SKIP_FILE_num%' | ABORT_STATEMENT
- Verwendung
Nur Laden von Daten
- Definition
Zeichenfolge (Konstante), die die Fehlerbehandlung für die Ladeoperation angibt.
Wichtig
Prüfen Sie sorgfältig den Wert der ON_ERROR-Kopieroption. Der Standardwert ist in vielen Fällen angemessen, aber nicht immer die beste Option.
- Werte
CONTINUE
Bei Erkennen eines Fehlers wird mit dem Laden der Datei fortgefahren. Die COPY-Anweisung gibt eine Fehlermeldung für maximal einen gefundenen 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
Bei Erkennen eines Fehlers wird die Datei übersprungen.
Beachten Sie, dass bei der Aktion
SKIP_FILE
die gesamte Datei im Puffer gespeichert wird, unabhängig davon, ob Fehler gefunden werden oder nicht. Aus diesem Grund istSKIP_FILE
langsamer alsCONTINUE
oderABORT_STATEMENT
. Das Überspringen von Dateien bei nur wenigen Fehlern kann zu Verzögerungen und zur Vergeudung von Credits führen. Wenn Sie eine große Anzahl von Datensätzen aus Dateien laden, die keine logische Abgrenzung haben (z. B. weil die Dateien automatisch in groben Abständen generiert wurden), sollten Sie stattdessenCONTINUE
angeben.Zusätzliche Muster:
SKIP_FILE_num
(z. B.SKIP_FILE_10
)Überspringt die Datei, wenn die Anzahl der in der Datei gefundenen Fehlerzeilen gleich oder größer als die hier angegebene Anzahl ist.
'SKIP_FILE_num%'
(z. B.'SKIP_FILE_10%'
)Überspringt die Datei, wenn der Prozentsatz der in der Datei gefundenen Fehlerzeilen den hier angegebenen Prozentsatz überschreitet.
ABORT_STATEMENT
Bricht die Ladeoperation ab, wenn in einer Datendatei ein Fehler gefunden wird.
Beachten Sie, dass die Ladeoperation nicht abgebrochen wird, wenn die Datendatei nicht gefunden werden kann (z. B. weil sie nicht vorhanden ist oder nicht auf sie zugegriffen werden kann), außer eine explizit im Parameter
FILES
angegebene Datendatei kann nicht gefunden werden.
- Standard
- Massenladen mit COPY
ABORT_STATEMENT
- Snowpipe
SKIP_FILE
SIZE_LIMIT = num
- Verwendung
Nur Laden von Daten
- Definition
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 desSIZE_LIMIT
-Schwellenwerts abbrechen.Beachten Sie, dass mindestens eine Datei unabhängig von dem für
SIZE_LIMIT
angegebenen Wert geladen wird, es sei denn, es ist keine Datei zu laden.- Standard
Null (keine Größenbeschränkung)
PURGE = TRUE | FALSE
- Verwendung
Nur Laden von Daten
- Definition
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
- Verwendung
Nur Laden von Daten
- Definition
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
- Verwendung
Nur Laden von Daten
- Definition
Zeichenfolge, die angibt, ob semistrukturierte Daten in Spalten der Zieltabelle geladen werden sollen, die den in den Daten dargestellten Spalten entsprechen.
Diese Kopieroption wird für die folgenden Datenformate unterstützt:
JSON
Avro
ORC
Parquet
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.
- Werte
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.
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
oderCASE_INSENSITIVE
gesetzt ist, führt ein leerer Spaltenwert (z. B."col1": ""
) zu einem Fehler.
- Standard
NONE
ENFORCE_LENGTH = TRUE | FALSE
- Verwendung
Nur Laden von Daten
- Definition
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.
Diese Kopieroption unterstützt CSV-Daten sowie Zeichenfolgenwerte in semistrukturierten Daten, wenn sie in separate Spalten von relationalen Tabellen geladen werden.
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.
- Standard
TRUE
TRUNCATECOLUMNS = TRUE | FALSE
- Verwendung
Nur Laden von Daten
- Definition
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.
Diese Kopieroption unterstützt CSV-Daten sowie Zeichenfolgenwerte in semistrukturierten Daten, wenn sie in separate Spalten von relationalen Tabellen geladen werden.
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.
- Standard
FALSE
FORCE = TRUE | FALSE
- Verwendung
Nur Laden von Daten
- Definition
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 neu lädt und möglicherweise Daten in einer Tabelle dupliziert.
- Standard
FALSE
Anforderungen an die Zugriffssteuerung¶
Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:
Berechtigung |
Objekt |
Anmerkungen |
---|---|---|
USAGE |
Speicherintegration |
Nur erforderlich, wenn der Zugriff auf einen Cloudspeicherdienst über eine Speicherintegration erfolgt. |
CREATE STAGE |
Schema |
|
USAGE |
Dateiformat |
Nur erforderlich, wenn in der Stagingbereichsdefinition auf ein benanntes Dateiformat verwiesen wird. |
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
Das Wiederherstellen eines Stagingbereichs (unter Verwendung von CREATE OR REPLACE STAGE) hat die folgenden zusätzlichen, potenziell unerwünschten Folgen:
Die vorhandene Verzeichnistabelle für den Stagingbereich, sofern vorhanden, wird gelöscht. Wenn der Stagingbereich mit einer Verzeichnistabelle neu erstellt wird, ist das Verzeichnis standardmäßig leer.
Die Zuordnung zwischen dem Stagingbereich und jeder externen Tabelle, die darauf verweist, wird aufgehoben.
Grund ist, dass eine externe Tabelle mit einem Stagingbereich verknüpft ist, wobei anstelle des Namens des Stagingbereichs 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 einen Stagingbereich 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.
Alle Pipes, die auf den Stagingbereich verweisen, beenden das Laden der Daten. Der Ausführungsstatus der Pipes ändert sich in
STOPPED_STAGE_DROPPED
. Um das Laden von Daten fortzusetzen, müssen diese Pipeobjekte neu erstellt werden (mit der CREATE OR REPLACE PIPE-Syntax).
CREATE STAGE überprüft nicht, ob die angegebene URL oder die Anmeldeinformationen gültig sind. Wenn die Anmeldeinformationen nicht gültig sind, gibt das System beim Versuch, den Stagingbereich zu verwenden, einen Fehler zurück.
Wenn Sie ein Dateiformat im aktuellen Namespace referenzieren, können Sie die einfachen Anführungszeichen um den Formatbezeichner herum weglassen.
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.
Beispiele¶
Interne Stagingbereiche¶
Erstellen Sie einen internen Stagingbereich mit dem Standarddateiformattyp (CSV
):
Alle zugehörigen standardmäßigen CSV-Dateiformatoptionen werden verwendet.
Mit Ausnahme von
ON_ERROR
werden alle Standard-Kopieroptionen verwendet. Wenn ein COPY INTO <Tabelle>-Befehl, der auf diesen Stagingbereich verweist, in einem der Datensätze auf einen Datenfehler stößt, wird die Datei übersprungen.CREATE STAGE my_int_stage COPY_OPTIONS = (ON_ERROR='skip_file');
Ähnlich wie im vorherigen Beispiel, jedoch mit Angabe der serverseitigen Verschlüsselung für den Stagingbereich:
CREATE STAGE my_int_stage ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE') COPY_OPTIONS = (ON_ERROR='skip_file');
Erstellen Sie einen temporären internen Stagingbereich mit den gleichen Eigenschaften wie im vorherigen Beispiel, mit Ausnahme der Kopieroption zum Überspringen von Dateien bei Fehlern:
CREATE TEMPORARY STAGE my_temp_int_stage;
Erstellen Sie einen temporären internen Stagingbereich, der auf ein Dateiformat mit dem Namen my_csv_format
verweist (erstellt mit CREATE FILE FORMAT):
CREATE TEMPORARY STAGE my_int_stage FILE_FORMAT = my_csv_format;Wenn Sie den Stagingbereich in einer COPY INTO <Tabelle>-Anweisung referenzieren, werden die Dateiformatoptionen automatisch festgelegt.
Erstellen Sie einen internen Stagingbereich, der eine Verzeichnistabelle enthält. Der Stagingbereich verweist auf ein Dateiformat mit dem Namen myformat
:
CREATE STAGE mystage DIRECTORY = (ENABLE = TRUE) FILE_FORMAT = myformat;
Externe Stagingbereiche¶
Amazon S3
Erstellen Sie mithilfe eines privaten/geschützten S3-Buckets namens
load
einen externen Stagingbereich mit einem Ordnerpfad namensfiles
. Sicherer Zugriff auf den S3-Bucket erfolgt über die Speicherintegrationmyint
:CREATE STAGE my_ext_stage URL='s3://load/files/' STORAGE_INTEGRATION = myint;Erstellen Sie mithilfe eines privaten/geschützten S3-Buckets namens
load
einen externen Stagingbereich mit einem Ordnerpfad namensfiles
. Da die Snowflake-Zugriffsberechtigungen für den S3-Bucket einem IAM-Benutzer zugeordnet sind, sind IAM-Anmeldeinformationen erforderlich:CREATE STAGE my_ext_stage1 URL='s3://load/files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');Beachten Sie, dass die in diesem Beispiel verwendeten Werte AWS_KEY_ID und AWS_SECRET_KEY nur zur Veranschaulichung dienen.
Erstellen Sie mithilfe eines S3-Buckets namens
load
einen externen Stagingbereich mit einem Ordnerpfad namensencrypted_files
und clientseitiger Verschlüsselung (Standard-Verschlüsselungstyp) mit dem Hauptschlüssel, um im Bucket gespeicherte Dateien zu entschlüsseln/verschlüsseln:CREATE STAGE my_ext_stage2 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z') ENCRYPTION=(MASTER_KEY = 'eSx...');Erstellen Sie mithilfe eines S3-Buckets namens
load
einen externen Stagingbereich mit einem Ordnerpfad namensencrypted_files
und serverseitiger AWS_SSE_KMS-Verschlüsselung mit der ID für den Hauptschlüssel zum Entschlüsseln/Verschlüsseln von im Bucket gespeicherten Dateien:CREATE STAGE my_ext_stage3 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z') ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');Gleiches Beispiel wie das unmittelbar vorhergehende Beispiel, mit der Ausnahme, dass die Snowflake-Zugriffsberechtigungen für den S3-Bucket einer IAM-Rolle und nicht einem IAM-Benutzer zugeordnet sind. Beachten Sie, dass Anmeldeinformationen getrennt von anderen Stagingbereichsparametern behandelt werden, wie z. B.
ENCRYPTION
. Die Unterstützung für diese anderen Parameter ist dieselbe, unabhängig von den Anmeldeinformationen, die für den Zugriff auf Ihren externen S3-Bucket verwendet werden:CREATE STAGE my_ext_stage3 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_ROLE='arn:aws:iam::001234567890:role/mysnowflakerole') ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');Erstellen Sie einen Stagingbereich mit einer Verzeichnistabelle im aktiven Schema für die Benutzersitzung. Die Cloudspeicher-URL enthält den Pfad
files
. Der Stagingbereich verweist auf eine Speicherintegration mit dem Namenmy_storage_int
:CREATE STAGE mystage URL='s3://load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true );
Google Cloud Storage
Erstellen Sie mithilfe eines privaten/geschützten GCS-Buckets namens
load
einen externen Stagingbereich mit einem Ordnerpfad namensfiles
: Sicherer Zugriff auf den GCS-Bucket erfolgt über die Speicherintegrationmyint
:CREATE STAGE my_ext_stage URL='gcs://load/files/' STORAGE_INTEGRATION = myint;Erstellen Sie einen Stagingbereich namens
mystage
mit einer Verzeichnistabelle im aktiven Schema für die Benutzersitzung. Die Cloudspeicher-URL enthält den Pfadfiles
. Der Stagingbereich verweist auf eine Speicherintegration mit dem Namenmy_storage_int
:CREATE STAGE mystage URL='gcs://load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT' );
Microsoft Azure
Erstellen Sie mithilfe eines privaten/geschützten Azure-Containers namens
load
einen externen Stagingbereich mit einem Ordnerpfad namensfiles
. Sicherer Zugriff auf den Container erfolgt über die Speicherintegrationmyint
:CREATE STAGE my_ext_stage URL='azure://myaccount.blob.core.windows.net/load/files/' STORAGE_INTEGRATION = myint;Erstellen Sie mit einem Azure-Speicherkonto namens
myaccount
und einem Container namensmycontainer
einen externen Stagingbereich mit einem Ordnerpfad namensfiles
und aktivierter clientseitiger Verschlüsselung. Der Stagingbereich verweist auf ein Dateiformat mit dem Namenmy_csv_format
:CREATE STAGE mystage URL='azure://myaccount.blob.core.windows.net/mycontainer/files/' CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D') ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPx...') FILE_FORMAT = my_csv_format;(Die in diesem Beispiel verwendeten Werte für
AZURE_SAS_TOKEN
undMASTER_KEY
sind keine tatsächlichen Werte; sie dienen nur zur Veranschaulichung.)Erstellen Sie einen Stagingbereich mit einer Verzeichnistabelle im aktiven Schema für die Benutzersitzung. Die Cloudspeicher-URL enthält den Pfad
files
. Der Stagingbereich verweist auf eine Speicherintegration mit dem Namenmy_storage_int
:CREATE STAGE mystage URL='azure://myaccount.blob.core.windows.net/load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT' );