ALTER STAGE¶
Modifie les propriétés d’une zone de préparation interne ou externe nommée existante.
- Voir aussi :
Syntaxe¶
ALTER STAGE [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER STAGE [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER STAGE <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
-- Internal stage
ALTER STAGE [ IF EXISTS ] <name> SET
[ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
{ [ COMMENT = '<string_literal>' ] }
-- External stage
ALTER STAGE [ IF EXISTS ] <name> SET {
[ externalStageParams ]
[ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
[ COMMENT = '<string_literal>' ]
}
Où :
externalStageParams (for Amazon S3) ::= [ URL = '<protocol>://<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' | 'NONE' } ] [ MASTER_KEY = '<string>' ] ) ]formatTypeOptions ::= -- If TYPE = CSV COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE RECORD_DELIMITER = '<string>' | NONE FIELD_DELIMITER = '<string>' | NONE FILE_EXTENSION = '<string>' PARSE_HEADER = TRUE | FALSE SKIP_HEADER = <integer> SKIP_BLANK_LINES = TRUE | FALSE DATE_FORMAT = '<string>' | AUTO TIME_FORMAT = '<string>' | AUTO TIMESTAMP_FORMAT = '<string>' | AUTO BINARY_FORMAT = HEX | BASE64 | UTF8 ESCAPE = '<character>' | NONE ESCAPE_UNENCLOSED_FIELD = '<character>' | NONE TRIM_SPACE = TRUE | FALSE FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | NONE NULL_IF = ( '<string>' [ , '<string>' ... ] ) ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE EMPTY_FIELD_AS_NULL = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE ENCODING = '<string>' | UTF8 -- If TYPE = JSON COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE DATE_FORMAT = '<string>' | AUTO TIME_FORMAT = '<string>' | AUTO TIMESTAMP_FORMAT = '<string>' | AUTO BINARY_FORMAT = HEX | BASE64 | UTF8 TRIM_SPACE = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) FILE_EXTENSION = '<string>' ENABLE_OCTAL = TRUE | FALSE ALLOW_DUPLICATE = TRUE | FALSE STRIP_OUTER_ARRAY = TRUE | FALSE STRIP_NULL_VALUES = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE IGNORE_UTF8_ERRORS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE -- If TYPE = AVRO COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = ORC TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = PARQUET COMPRESSION = AUTO | LZO | SNAPPY | NONE SNAPPY_COMPRESSION = TRUE | FALSE BINARY_AS_TEXT = TRUE | FALSE USE_LOGICAL_TYPE = TRUE | FALSE TRIM_SPACE = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE NULL_IF = ( '<string>' [ , '<string>' ... ] ) -- If TYPE = XML COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE IGNORE_UTF8_ERRORS = TRUE | FALSE PRESERVE_SPACE = TRUE | FALSE STRIP_OUTER_ELEMENT = TRUE | FALSE DISABLE_SNOWFLAKE_DATA = TRUE | FALSE DISABLE_AUTO_CONVERT = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Syntaxe de la table des répertoires¶
ALTER STAGE [ IF EXISTS ] <name> SET DIRECTORY = ( { ENABLE = TRUE | FALSE } )
ALTER STAGE [ IF EXISTS ] <name> REFRESH [ SUBPATH = '<relative-path>' ]
Paramètres¶
name
Indique l’identificateur de la zone de préparation à modifier. Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
RENAME TO new_name
Indique le nouvel identificateur de la zone de préparation ; il doit être unique pour le schéma.
Pour plus de détails, voir Exigences relatives à l’identificateur.
Vous pouvez déplacer l’objet vers une autre base de données et/ou un autre schéma tout en renommant éventuellement l’objet. Pour ce faire, spécifiez une valeur
new_name
qualifiée qui inclut le nouveau nom de la base de données et/ou du schéma sous la formedb_name.schema_name.object_name
ouschema_name.object_name
, respectivement.Note
La base de données et/ou le schéma de destination doivent déjà exister. En outre, un objet portant le même nom ne peut pas déjà exister dans le nouvel emplacement ; sinon, l’instruction renvoie une erreur.
Le déplacement d’un objet vers un schéma d’accès géré est interdit sauf si le propriétaire de l’objet (c’est-à-dire le rôle qui a le privilège OWNERSHIP sur l’objet) est également propriétaire du schéma cible.
SET ...
Spécifie les options/propriétés à définir pour la zone de préparation :
URL = ' ... '
, .STORAGE_INTEGRATION = ...
, .CREDENTIALS = ( ... )
, .ENCRYPTION = ( ... )
Modifie l’URL, l’intégration ou les identifiants de connexion du stockage, et/ou le chiffrement spécifiques au Cloud pour la zone de préparation externe. Pour plus de détails, voir Paramètres de zone de préparation externe (dans ce chapitre).
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
Spécifie le nom de la balise et la valeur de la chaîne de la balise.
La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.
Pour plus d’informations sur la spécification des balises dans une instruction, voir Quotas de balises pour les objets et les colonnes.
COMMENT = 'string_literal'
Ajoute un commentaire ou remplace un commentaire existant pour la zone de préparation.
FILE_FORMAT = ( FORMAT_NAME = 'file_format_name' )
ou .FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ] )
Modifie le format de fichier de la zone de préparation, qui peut être, au choix :
FORMAT_NAME = file_format_name
Spécifie un objet de format de fichier existant à utiliser pour la zone de préparation. L’objet de format de fichier spécifié détermine le type de format (CSV, JSON, etc.) et les autres options de format des fichiers de données.
Notez qu’aucune option de format supplémentaire n’est spécifiée dans la chaîne. Au lieu de cela, l’objet de format de fichier nommé définit les autres options de format de fichier utilisées pour charger/décharger les données. Pour plus d’informations, voir CREATE FILE FORMAT.
TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ]
Spécifie le type de format de fichier pour la zone de préparation :
Le chargement des données d’une zone de préparation (à l’aide de COPY INTO <table>) accepte tous les types de format de fichier pris en charge.
Le déchargement des données dans une zone de préparation (à l’aide de COPY INTO <emplacement>) accepte les formats CSV, JSON ou PARQUET.
Si un type de format de fichier est spécifié, des options supplémentaires spécifiques au format peuvent être modifiées. Pour plus d’informations, voir les Options de type de format (dans ce chapitre).
Le type de format
CUSTOM
spécifie que la zone de préparation sous-jacente contient des données non structurées et ne peut être utilisée qu’avec l’option de copieFILE_PROCESSOR
.Note
FORMAT_NAME
etTYPE
s’excluent mutuellement ; vous ne pouvez spécifier que l’un ou l’autre pour une zone de préparation.
Note
Ne spécifiez pas d’options de copie à l’aide des commandes CREATE STAGE, ALTER STAGE, CREATE TABLE ou ALTER TABLE. Nous vous recommandons d’utiliser la commande COPY INTO <table> pour spécifier les options de copie.
Paramètres de zone de préparation externe (externalStageParams
)¶
URL = 'cloud_specific_url'
Si une zone de préparation n’a pas d’URL, c’est une zone de préparation interne
Avertissement
La modification du paramètre
URL
d’une zone de préparation peut interrompre les fonctionnalités suivantes pour les objets qui dépendent de la zone de préparation :Objets de canal qui exploitent la messagerie Cloud pour déclencher des chargements de données (c’est-à-dire où
AUTO_INGEST = TRUE
).Tables externes qui exploitent la messagerie Cloud pour déclencher des actualisations de métadonnées (c’est-à-dire où
AUTO_REFRESH = TRUE
).
Amazon S3
URL = 'protocol://bucket[/path/]'
Modifie l’URL de l’emplacement externe (compartiment S3 existant) utilisé pour stocker les fichiers de données pour le chargement/déchargement, où :
protocol
est l’un des éléments suivants :s3
fait référence au stockage S3 dans les régions AWS publiques hors de Chine.s3china
fait référence au stockage S3 dans les régions AWS publiques en Chine.s3gov
fait référence au stockage S3 dans les régions gouvernementales.
L’accès au stockage Cloud dans une région gouvernementale à l’aide d’une intégration de stockage est limité aux comptes Snowflake hébergés dans la même région gouvernementale.
De même, si vous devez accéder au stockage cloud dans une région en Chine, vous pouvez utiliser une intégration de stockage uniquement à partir d’un compte Snowflake hébergé dans la même région en Chine.
Dans ces cas, utilisez le paramètre CREDENTIALS dans la commande CREATE STAGE (plutôt que d’utiliser une intégration de stockage) pour fournir les identifiants de connexion pour l’authentification.
bucket
est le nom du compartiment S3.Notez que les compartiments S3 dans les régions AWS non publiques, telles que les régions gouvernementales, ne sont pas pris en charge.
path
est un chemin facultatif respectant la casse pour les fichiers dans l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne en commun) qui limite l’ensemble de fichiers à charger. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.
Google Cloud Storage
URL = 'gcs://bucket[/path/]'
Modifie l’URL de l’emplacement externe (compartiment GCS existant) utilisé pour stocker les fichiers de données pour le chargement/déchargement, où :
bucket
est le nom du compartiment GCS.path
est un chemin facultatif respectant la casse pour les fichiers dans l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne en commun) qui limite l’ensemble de fichiers à charger. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.
Microsoft Azure
URL = 'azure://account.blob.core.windows.net/container[/path/]'
Modifie l’URL de l’emplacement externe (conteneur Azure existant) utilisé pour stocker les fichiers de données pour le chargement, où :
account
est le nom du compte Azure (par ex.myaccount
). Utilisez le point de terminaisonblob.core.windows.net
pour tous les types de comptes de stockage Azure Blob pris en charge, dont Data Lake Storage Gen2.container
est le nom du conteneur Azure (par ex.mycontainer
).path
est un chemin facultatif respectant la casse pour les fichiers dans l’emplacement de stockage Cloud (c’est-à-dire que les fichiers ont des noms qui commencent par une chaîne en commun) qui limite l’ensemble de fichiers à charger. Les chemins sont appelés préfixes ou dossiers selon les services de stockage Cloud.
STORAGE_INTEGRATION = integration_name
ou .CREDENTIALS = ( cloud_specific_credentials )
Requis uniquement si Amazon S3, Google Cloud Storage ou Microsoft Azure est privé ; non requis pour les compartiments/conteneurs publics
Amazon S3
STORAGE_INTEGRATION = integration_name
Spécifie le nom de l’intégration de stockage utilisée pour déléguer la responsabilité de l’authentification pour le stockage en Cloud externe à une entité Gestion des identités et des accès Snowflake (IAM). Pour plus de détails, voir CREATE STORAGE INTEGRATION.
Note
Nous recommandons fortement l’utilisation d’intégrations de stockage. Cette option évite d’avoir à fournir des informations d’identification de stockage Cloud à l’aide du paramètre CREDENTIALS lors de la création de zones de préparation ou du chargement de données.
CREDENTIALS = ( AWS_KEY_ID = 'string' AWS_SECRET_KEY = 'string' [ AWS_TOKEN = 'string' ] )
ou .CREDENTIALS = ( AWS_ROLE = 'string' )
Modifie les identifiants de connexion de sécurité pour se connecter à AWS et accéder au compartiment S3 privé dans lequel les fichiers à charger/décharger sont mis en zone de préparation. Pour plus d’informations, voir Configuration de l’accès sécurisé à Amazon S3.
Les informations d’identification que vous spécifiez varient selon que vous avez associé les autorisations d’accès Snowflake au compartiment à un utilisateur AWS IAM (Identity & Access Management) ou à un rôle :
Utilisateur IAM : les informations d’identification IAM sont requises. Les informations d’identification temporaires (alias « étendues ») sont générées par le service d’émission de jeton de sécurité AWS (STS) et se composent de trois éléments :
AWS_KEY_ID
AWS_SECRET_KEY
AWS_TOKEN
Tous les trois sont nécessaires pour accéder à un compartiment privé. Au bout d’une certaine période de temps, les identifiants de connexion temporaires expirent et ne peuvent plus être utilisés. Vous devez ensuite générer un nouvel ensemble d’informations d’identification temporaires valides.
Important
La commande COPY permet également d’utiliser des informations d’identification permanentes (alias « à long terme ») ; cependant, pour des raisons de sécurité, Snowflake vous déconseille de les utiliser. Si vous devez utiliser des identifiants permanents, Snowflake recommande de générer périodiquement de nouveaux identifiants permanents pour des zones de préparation externes.
Rôle IAM : n’indiquez pas d’identifiants de sécurité et de clés d’accès et, à la place, identifiez le rôle en utilisant
AWS_ROLE
et spécifiez le rôle AWS ARN (Amazon Resource Name).Important
La possibilité d’utiliser un rôle IAM AWS pour accéder à un compartiment S3 privé pour charger ou décharger des données est désormais obsolète (c’est-à-dire que la prise en charge sera supprimée dans une prochaine version, à déterminer). Nous vous recommandons vivement de modifier toutes les zones de préparation S3 existantes qui utilisent cette fonctionnalité pour référencer à la place des objets d’intégration de stockage. Pour obtenir des instructions, voir Option 1 : Configuration d’une intégration de stockage Snowflake pour accéder à Amazon S3.
Google Cloud Storage
STORAGE_INTEGRATION = integration_name
Spécifie le nom de l’intégration de stockage utilisée pour déléguer la responsabilité de l’authentification pour le stockage en Cloud externe à une entité Gestion des identités et des accès Snowflake (IAM). Pour plus de détails, voir CREATE STORAGE INTEGRATION.
Microsoft Azure
STORAGE_INTEGRATION = integration_name
Spécifie le nom de l’intégration de stockage utilisée pour déléguer la responsabilité de l’authentification pour le stockage en Cloud externe à une entité Gestion des identités et des accès Snowflake (IAM). Pour plus de détails, voir CREATE STORAGE INTEGRATION.
Note
Nous recommandons fortement l’utilisation d’intégrations de stockage. Cette option évite d’avoir à fournir des informations d’identification de stockage Cloud à l’aide du paramètre CREDENTIALS lors de la création de zones de préparation ou du chargement de données.
CREDENTIALS = ( AZURE_SAS_TOKEN = 'string' )
Modifie le jeton SAS (signature d’accès partagé) pour se connecter à Azure et accéder au conteneur privé dans lequel les fichiers contenant des données chargées sont mis en zone de préparation. Les identifiants de connexion sont générés par Azure.
ENCRYPTION = ( cloud_specific_encryption )
Nécessaire uniquement pour le chargement/déchargement dans des fichiers chiffrés ; inutile si l’emplacement de stockage et les fichiers ne sont pas chiffrés
- Chargement des données:
Modifie les paramètres de chiffrement utilisés pour décoder des fichiers chiffrés dans l’emplacement de stockage et extraire les données.
- Déchargement des données:
Spécifie les paramètres de chiffrement utilisés pour chiffrer les fichiers déchargés dans l’emplacement de stockage.
Amazon S3
ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] [ MASTER_KEY = '<string>' ] | [ TYPE = 'AWS_SSE_S3' ] | [ TYPE = 'AWS_SSE_KMS' ] [ KMS_KEY_ID = '<string>' ] | [ TYPE = 'NONE' ] )
TYPE = ...
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
AWS_CSE
: chiffrement côté client (nécessite une valeurMASTER_KEY
). Actuellement, la clé maître côté client que vous fournissez ne peut être qu’une clé symétrique. Notez que, lorsqu’une valeurMASTER_KEY
est fournie, Snowflake part du principe queTYPE = AWS_CSE
(plus précisément, lorsqu’une valeurMASTER_KEY
est fournie,TYPE
n’est pas nécessaire).AWS_SSE_S3
: chiffrement côté serveur qui ne nécessite aucun paramètre de chiffrement supplémentaire.AWS_SSE_KMS
: chiffrement côté serveur qui accepte une valeurKMS_KEY_ID
facultative.
Pour plus d’informations sur les types de chiffrement, voir la documentation AWS pour le chiffrement côté client ou le chiffrement côté serveur.
NONE
: pas de chiffrement.
MASTER_KEY = 'string'
(s’applique uniquement au chiffrementAWS_CSE
)Spécifie la clé maître côté client qui a été utilisée pour chiffrer les fichiers dans le compartiment. La clé maître doit être une clé de 128 ou 256 bits codée au format Base64.
KMS_KEY_ID = 'string'
(s’applique uniquement au chiffrementAWS_SSE_KMS
)Spécifie éventuellement l’ID de la clé AWS gérée par KMS qui est utilisée pour chiffrer les fichiers déchargés dans le compartiment. Si aucune valeur n’est fournie, l’ID de votre clé KMS par défaut est utilisé pour chiffrer les fichiers au déchargement.
Notez que cette valeur est ignorée pour le chargement des données.
Google Cloud Storage
ENCRYPTION = ( [ TYPE = 'GCS_SSE_KMS' | 'NONE' ] [ KMS_KEY_ID = 'string' ] )
TYPE = ...
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
GCS_SSE_KMS
: chiffrement côté serveur qui accepte une valeurKMS_KEY_ID
facultative.Pour plus d’informations, consultez la documentation de Google Cloud Platform :
NONE
: pas de chiffrement.
KMS_KEY_ID = 'string'
(s’applique uniquement au chiffrementGCS_SSE_KMS
)Spécifie éventuellement l’ID de la clé gérée par Cloud KMS qui est utilisée pour chiffrer les fichiers déchargés dans le compartiment. Si aucune valeur n’est fournie, l’ID de votre clé KMS par défaut est utilisé pour chiffrer les fichiers au déchargement.
Notez que cette valeur est ignorée pour le chargement des données. L’opération de chargement doit réussir si le compte de service dispose des autorisations suffisantes pour déchiffrer les données dans le compartiment.
Microsoft Azure
ENCRYPTION = ( [ TYPE = 'AZURE_CSE' | 'NONE' ] [ MASTER_KEY = 'string' ] )
TYPE = ...
Indique le type de chiffrement utilisé. Les valeurs possibles sont les suivantes :
AZURE_CSE
: chiffrement côté client (nécessite une valeur MASTER_KEY). Pour plus d’informations, voir les informations de chiffrement côté client dans la documentation Microsoft Azure.NONE
: pas de chiffrement.
MASTER_KEY = 'string'
(s’applique uniquement au chiffrement AZURE_CSE)Spécifie la clé maître côté client utilisée pour chiffrer ou déchiffrer les fichiers. La clé maître doit être une clé de 128 ou 256 bits codée au format Base64.
Paramètres de la table de répertoire¶
ENABLE = TRUE | FALSE
Spécifie s’il faut ajouter une table de répertoire à la zone de préparation. Lorsque la valeur est TRUE, une table de répertoire est ajoutée à la zone de préparation.
Note
La définition de ce paramètre sur TRUE n’est pas prise en charge pour les zones de préparation externes compatibles S3. Les métadonnées des zones de préparation externes compatibles S3 ne peuvent pas être actualisées automatiquement.
Par défaut :
FALSE
REFRESH
Accède aux fichiers de données mis en zone de préparation, et référencés dans la définition de table de répertoire et met à jour les métadonnées de la table :
Les nouveaux fichiers dans le chemin sont ajoutés aux métadonnées de la table.
Les modifications apportées aux fichiers dans le chemin sont mises à jour dans les métadonnées de la table.
Les fichiers qui ne figurent plus dans le chemin sont supprimés des métadonnées de la table.
Vous pouvez exécuter cette commande chaque fois que des fichiers sont ajoutés à la zone de préparation, mis à jour ou supprimés. Cette étape synchronise les métadonnées avec le dernier ensemble de fichiers associés dans la définition de la zone de préparation pour la table de répertoire.
SUBPATH = '<relative-path>'
Spécifiez éventuellement un chemin relatif pour actualiser les métadonnées pour un sous-ensemble spécifique des fichiers de données.
Options de type de format (formatTypeOptions
)¶
En fonction du type de format de fichier spécifié (FILE_FORMAT = ( TYPE = ... )
), vous pouvez inclure une ou plusieurs des options suivantes, spécifiques au format (séparées par des espaces, des virgules ou de nouvelles lignes) :
TYPE = CSV¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.
Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.
- Valeurs:
Valeurs prises en charge
Remarques
AUTO
Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.
GZIP
BZ2
BROTLI
Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.
ZSTD
Zstandard v0.8 (et supérieur) est pris en charge.
DEFLATE
Fichiers compressés Deflate (avec en-tête zlib, RFC1950).
RAW_DEFLATE
Fichiers bruts compressés Deflate (sans en-tête, RFC1951).
NONE
Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.
- Par défaut:
AUTO
RECORD_DELIMITER = 'string' | NONE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Un ou plusieurs caractères à un octet ou à plusieurs octets qui séparent les enregistrements dans un fichier d’entrée (chargement de données) ou un fichier déchargé (déchargement de données). Accepte les séquences d’échappement courantes ou les caractères à un octet ou à plusieurs octets suivants :
- Caractères à un octet:
Valeurs octales (préfixées par
\\
) ou les valeurs hexadécimales (préfixées par\x
ou0x
). Par exemple, pour les enregistrements délimités par le caractère accent circonflexe (^
), spécifiez la valeur octale (\\136
) ou hexadécimale (0x5e
).- Caractères multi-octets:
Valeurs hexagonales (préfixées par
\x
). Par exemple, pour les enregistrements délimités par le caractère cent (¢
), spécifiez la valeur hexadécimale (\xC2\xA2
).Le délimiteur pour RECORD_DELIMITER ou FIELD_DELIMITER ne peut pas être une sous-chaîne du délimiteur pour l’autre option de format de fichier (par exemple
FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb'
).
Le délimiteur spécifié doit être un caractère UTF-8 valide et non une séquence aléatoire d’octets. Notez également que le délimiteur est limité à un maximum de 20 caractères.
Accepte également une valeur de
NONE
.- Par défaut:
- Chargement des données:
Caractère de nouvelle ligne. Notez que « nouvelle ligne » fait sens, de sorte que
\r\n
sera compris comme une nouvelle ligne pour les fichiers sur une plate-forme Windows.- Déchargement des données:
Caractère de nouvelle ligne (
\n
).
FIELD_DELIMITER = 'string' | NONE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Un ou plusieurs caractères à un octet ou à plusieurs octets qui séparent les champs d’un fichier d’entrée (chargement de données) ou d’un fichier déchargé (déchargement de données). Accepte les séquences d’échappement courantes ou les caractères à un octet ou à plusieurs octets suivants :
- Caractères à un octet:
Valeurs octales (préfixées par
\\
) ou les valeurs hexadécimales (préfixées par\x
ou0x
). Par exemple, pour les enregistrements délimités par le caractère accent circonflexe (^
), spécifiez la valeur octale (\\136
) ou hexadécimale (0x5e
).- Caractères multi-octets:
Valeurs hexagonales (préfixées par
\x
). Par exemple, pour les enregistrements délimités par le caractère cent (¢
), spécifiez la valeur hexadécimale (\xC2\xA2
).Le délimiteur pour RECORD_DELIMITER ou FIELD_DELIMITER ne peut pas être une sous-chaîne du délimiteur pour l’autre option de format de fichier (par exemple
FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb'
).Note
Pour les caractères autres que ASCII, vous devez utiliser la valeur de la séquence d’octets hexagonale pour obtenir un comportement déterministe.
Le délimiteur spécifié doit être un caractère UTF-8 valide et non une séquence aléatoire d’octets. Notez également que le délimiteur est limité à un maximum de 20 caractères.
Accepte également une valeur de
NONE
.- Par défaut:
virgule (
,
)
FILE_EXTENSION = 'string' | NONE
- Utilisation:
Déchargement des données uniquement
- Définition:
Spécifie l’extension des fichiers déchargés dans une zone de préparation. Accepte toute extension. L’utilisateur est chargé de spécifier une extension de fichier qui peut être lue par tout logiciel ou service désiré.
- Par défaut:
null, ce qui signifie que l’extension du fichier est déterminée par le type de format :
.csv[compression]
, oùcompression
est l’extension ajoutée par la méthode de compression, siCOMPRESSION
est défini.
Note
Si l’option de copie
SINGLE
estTRUE
, alors la commande COPY décharge un fichier sans extension par défaut. Pour spécifier une extension de fichier, fournissez un nom et une extension de fichier dans le chemininternal_location
ouexternal_location
(par ex.copy into @stage/data.csv
).PARSE_HEADER = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut utiliser les en-têtes de la première ligne des fichiers de données pour déterminer les noms des colonnes.
Cette option de format de fichier s’applique uniquement aux actions suivantes :
Détection automatique des définitions de colonnes à l’aide de la fonction INFER_SCHEMA.
Chargement de données CSV dans des colonnes séparées en utilisant la fonction INFER_SCHEMA et l’option de copie MATCH_BY_COLUMN_NAME.
Si l’option est définie sur TRUE, les en-têtes de la première ligne seront utilisés pour déterminer les noms des colonnes. La valeur par défaut FALSE renvoie les noms de colonnes sous la forme c , où est la position de la colonne.
Note
Cette option n’est pas prise en charge pour les tables externes.
L’option SKIP_HEADER n’est pas prise en charge si vous définissez
PARSE_HEADER = TRUE
.
Par défaut :
FALSE
SKIP_HEADER = integer
- Utilisation:
Chargement de données et tables externes
- Définition:
Nombre de lignes au début du fichier à ignorer.
Notez que SKIP_HEADER n’utilise pas les valeurs RECORD_DELIMITER ou FIELD_DELIMITER pour déterminer la nature d’une ligne d’en-tête. Au lieu de cela, il ignore simplement le nombre spécifié de lignes délimitées par CRLF (retour chariot, saut de ligne) dans le fichier. RECORD_DELIMITER et FIELD_DELIMITER sont ensuite utilisés pour déterminer les lignes de données à charger.
- Par défaut:
0
SKIP_BLANK_LINES = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui indique d’ignorer toutes les lignes vides rencontrées dans les fichiers de données ; sinon, les lignes vides produisent une erreur de fin d’enregistrement (comportement par défaut).
Par défaut :
FALSE
DATE_FORMAT = 'string' | AUTO
- Utilisation:
Chargement et déchargement des données
- Définition:
Définit le format des valeurs de date dans les fichiers de données (chargement des données) ou la table (déchargement des données). Si une valeur n’est pas spécifiée ou est
AUTO
, la valeur du paramètre DATE_INPUT_FORMAT (chargement de données) ou DATE_OUTPUT_FORMAT (déchargement de données) est utilisée.- Par défaut:
AUTO
TIME_FORMAT = 'string' | AUTO
- Utilisation:
Chargement et déchargement des données
- Définition:
Définit le format des valeurs temporelles dans les fichiers de données (chargement des données) ou la table (déchargement des données). Si une valeur n’est pas spécifiée ou est
AUTO
, la valeur du paramètre TIME_INPUT_FORMAT (chargement de données) ou TIME_OUTPUT_FORMAT (déchargement de données) est utilisée.- Par défaut:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- Utilisation:
Chargement et déchargement des données
- Définition:
Définit le format des valeurs d’horodatage dans les fichiers de données (chargement des données) ou la table (déchargement des données). Si une valeur n’est pas spécifiée ou est
AUTO
, la valeur du paramètre TIMESTAMP_INPUT_FORMAT (chargement de données) ou TIMESTAMP_OUTPUT_FORMAT (déchargement de données) est utilisée.- Par défaut:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- Utilisation:
Chargement et déchargement des données
- Définition:
Définit le format d’encodage pour l’entrée ou la sortie binaire. L’option peut être utilisée pour charger ou décharger des données à partir de colonnes binaires dans une table.
- Par défaut:
HEX
ESCAPE = 'character' | NONE
- Utilisation:
Chargement et déchargement des données
- Définition:
Chaîne de caractères à un octet utilisée comme caractère d’échappement pour les valeurs de champs délimitées ou non délimitées. Un caractère d’échappement appelle une autre interprétation sur les caractères suivants dans une séquence de caractères. Vous pouvez utiliser le caractère ESCAPE pour interpréter les instances du caractère
FIELD_OPTIONALLY_ENCLOSED_BY
ou dans les données comme des littéraux.Accepte les séquences d’échappement, les valeurs octales ou les valeurs hexadécimales courantes.
- Chargement des données:
Spécifie le caractère d’échappement pour les champs délimités uniquement. Spécifiez le caractère utilisé pour délimiter les champs en définissant
FIELD_OPTIONALLY_ENCLOSED_BY
.Note
Cette option de format de fichier ne prend en charge que les caractères à un seul octet. Notez que le codage des caractères UTF-8 représente les caractères ASCII d’ordre supérieur comme des caractères à plusieurs octets. Si votre fichier de données est codé avec le jeu de caractères UTF-8, vous ne pouvez pas spécifier un caractère ASCII d’ordre supérieur comme valeur d’option.
En outre, si vous spécifiez un caractère ASCII d’ordre élevé, nous vous recommandons de définir l’option de format de fichier
ENCODING = 'string'
comme codage de caractères pour vos fichiers de données afin de garantir la bonne interprétation du caractère.- Déchargement des données:
Si cette option est activée, elle remplace le jeu de caractères d’échappement pour
ESCAPE_UNENCLOSED_FIELD
.- Par défaut:
NONE
ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Chaîne de caractères à un octet utilisée comme caractère d’échappement pour les valeurs de champs non délimitées uniquement. Un caractère d’échappement appelle une autre interprétation sur les caractères suivants dans une séquence de caractères. Vous pouvez utiliser le caractère ESCAPE pour interpréter les instances des caractères
FIELD_DELIMITER
ouRECORD_DELIMITER
dans les données comme des littéraux. Le caractère d’échappement peut également être utilisé pour échapper les instances de lui-même dans les données.Accepte les séquences d’échappement, les valeurs octales ou les valeurs hexadécimales courantes.
- Chargement des données:
Spécifie le caractère d’échappement pour les champs non délimités uniquement.
Note
La valeur par défaut est
\\
. Si une ligne d’un fichier de données se termine par une barre oblique inverse (\
), ce caractère échappe le caractère de nouvelle ligne ou de retour chariot spécifié pour l’option de format de fichierRECORD_DELIMITER
. Par conséquent, l’opération de chargement considère cette ligne et la suivante comme une seule ligne de données. Pour éviter ce problème, définissez la valeur surNONE
.Cette option de format de fichier ne prend en charge que les caractères à un seul octet. Notez que le codage des caractères UTF-8 représente les caractères ASCII d’ordre supérieur comme des caractères à plusieurs octets. Si votre fichier de données est codé avec le jeu de caractères UTF-8, vous ne pouvez pas spécifier un caractère ASCII d’ordre supérieur comme valeur d’option.
En outre, si vous spécifiez un caractère ASCII d’ordre élevé, nous vous recommandons de définir l’option de format de fichier
ENCODING = 'string'
comme codage de caractères pour vos fichiers de données afin de garantir la bonne interprétation du caractère.
- Déchargement des données:
Si
ESCAPE
est défini, le jeu de caractères d’échappement pour cette option de format de fichier l’emporte sur cette option.- Par défaut:
barre oblique inverse (
\\
)
TRIM_SPACE = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui spécifie s’il faut supprimer les espaces blancs des champs.
Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur
TRUE
pour supprimer les espaces indésirables pendant le chargement des données.Comme autre exemple, si les espaces d’en-tête ou de fin entourent des guillemets qui délimitent les chaînes de caractères, vous pouvez supprimer les espaces environnants en utilisant cette option et le caractère guillemet en utilisant l’option
FIELD_OPTIONALLY_ENCLOSED_BY
. Notez que tous les espaces entre les guillemets sont préservés. Par exemple, en supposant queFIELD_DELIMITER = '|'
etFIELD_OPTIONALLY_ENCLOSED_BY = '"'
:|"Hello world"| /* loads as */ >Hello world< |" Hello world "| /* loads as */ > Hello world < | "Hello world" | /* loads as */ >Hello world<
(les parenthèses dans cet exemple ne sont pas chargées ; elles sont utilisées pour délimiter le début et la fin des chaînes chargées)
- Par défaut:
FALSE
FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Caractère utilisé pour délimiter des chaînes. La valeur peut être
NONE
, un caractère guillemet simple ('
) ou un caractère guillemet double ("
). Pour utiliser le caractère guillemet simple, utilisez la représentation octale ou hexadécimale (0x27
) ou le double échappement en guillemet simple (''
).- Déchargement des données uniquement:
Lorsqu’un champ de la table source contient ce caractère, Snowflake effectue un échappement dessus en utilisant le même caractère que celui utilisé pour le déchargement. Par exemple, si la valeur est le caractère de guillemet double et qu’un champ contient la chaîne
A "B" C
, Snowflake effectue un échappement des guillemets doubles pour le déchargement comme suit :A ""B"" C
- Par défaut:
NONE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Chaîne utilisée pour les conversions entrante et sortante de SQL NULL :
Lors du chargement des données, Snowflake remplace ces valeurs de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.
Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si
2
est spécifié comme valeur, toutes les instances de2
sous forme de chaîne ou de nombre sont converties.Par exemple :
NULL_IF = ('\N', 'NULL', 'NUL', '')
Notez que cette option peut inclure des chaînes vides.
Lors du déchargement des données, Snowflake convertit les valeurs NULL SQL vers la première valeur de la liste.
- Par défaut:
\\N
(c.-à-d. NULL, qui suppose que la valeurESCAPE_UNENCLOSED_FIELD
est\\
)
ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut générer une erreur d’analyse si le nombre de colonnes délimitées (c’est-à-dire de champs) dans un fichier d’entrée ne correspond pas au nombre de colonnes de la table correspondante.
Si ce paramètre est réglé sur
FALSE
, aucune erreur n’est générée et le chargement continue. Si le fichier est chargé correctement :Si le fichier d’entrée contient des enregistrements contenant plus de champs que de colonnes dans la table, les champs correspondants sont chargés par ordre d’occurrence dans le fichier et les autres champs ne sont pas chargés.
Si le fichier d’entrée contient des enregistrements avec moins de champs que de colonnes dans la table, les colonnes qui ne correspondent pas dans la table sont chargées avec des valeurs NULL.
Cette option suppose que tous les enregistrements du fichier d’entrée ont la même longueur (c’est-à-dire qu’un fichier contenant des enregistrements de longueur variable renvoie une erreur quelle que soit la valeur spécifiée pour ce paramètre).
- Par défaut:
TRUE
Note
Lors de la transformation des données pendant le chargement (c’est-à-dire, en utilisant une requête comme source pour la commande COPY), cette option est ignorée. Il n’est pas nécessaire que vos fichiers de données aient le même nombre et le même ordre de colonnes que votre table cible.
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (
�
).
S’il est défini sur
TRUE
, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
EMPTY_FIELD_AS_NULL = TRUE | FALSE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Lors du chargement de données, spécifie s’il faut insérer SQL NULL pour les champs vides dans un fichier d’entrée, qui sont représentés par deux délimiteurs successifs (par ex.,
,,
).Si l’option est définie sur
FALSE
, Snowflake essaie de placer un champ vide dans le type de colonne correspondant. Une chaîne vide est insérée dans les colonnes de type STRING. Pour les autres types de colonne, la commande COPY produit une erreur.Lors du déchargement des données, cette option est utilisée en combinaison avec
FIELD_OPTIONALLY_ENCLOSED_BY
. LorsqueFIELD_OPTIONALLY_ENCLOSED_BY = NONE
, le paramètreEMPTY_FIELD_AS_NULL = FALSE
spécifie de décharger les chaînes vides dans les tables pour vider les valeurs de chaîne sans guillemets entourant les valeurs de champ.S’il est défini sur
TRUE
,FIELD_OPTIONALLY_ENCLOSED_BY
doit spécifier un caractère pour entourer les chaînes.
- Par défaut:
TRUE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut ignorer le BOM (marque d’ordre d’octet), s’il est présent dans un fichier de données. Une marque BOM est un code de caractère placé au début d’un fichier de données qui définit l’ordre des octets et la forme de l’encodage.
S’il est réglé sur
FALSE
, Snowflake reconnaît n’importe quel BOM dans les fichiers de données, ce qui pourrait entraîner une erreur BOM ou une fusion dans la première colonne du tableau.- Par défaut:
TRUE
ENCODING = 'string'
- Utilisation:
Chargement de données et tables externes
- Définition:
Chaîne (constante) qui spécifie le jeu de caractères des données sources lors du chargement des données dans une table.
Jeu de caractères
Valeur
ENCODING
Langues acceptées
Remarques
Big5
BIG5
Chinois traditionnel
EUC-JP
EUCJP
Japonais
EUC-KR
EUCKR
Coréen
GB18030
GB18030
Chinois
IBM420
IBM420
Arabe
IBM424
IBM424
Hébreu
IBM949
IBM949
Coréen
ISO-2022-CN
ISO2022CN
Chinois simplifié
ISO-2022-JP
ISO2022JP
Japonais
ISO-2022-KR
ISO2022KR
Coréen
ISO-8859-1
ISO88591
Allemand, anglais, danois, français, italien, norvégien, néerlandais, portugais, suédois
ISO-8859-2
ISO88592
Tchèque, hongrois, polonais, roumain
ISO-8859-5
ISO88595
Russe
ISO-8859-6
ISO88596
Arabe
ISO-8859-7
ISO88597
Grec
ISO-8859-8
ISO88598
Hébreu
ISO-8859-9
ISO88599
Turc
ISO-8859-15
ISO885915
Allemand, anglais, danois, français, italien, norvégien, néerlandais, portugais, suédois
Identique à ISO-8859-1 à l’exception des 8 caractères, y compris le symbole monétaire Euro.
KOI8-R
KOI8R
Russe
Shift_JIS
SHIFTJIS
Japonais
UTF-8
UTF8
Toutes les langues
Pour charger des données à partir de fichiers délimités (CSV, TSV, etc.), UTF-8 est la valeur par défaut. . . Pour charger des données à partir de tous les autres formats de fichier pris en charge (JSON, Avro, etc.), ainsi que pour décharger des données, UTF-8 est le seul jeu de caractères pris en charge.
UTF-16
UTF16
Toutes les langues
UTF-16BE
UTF16BE
Toutes les langues
UTF-16LE
UTF16LE
Toutes les langues
UTF-32
UTF32
Toutes les langues
UTF-32BE
UTF32BE
Toutes les langues
UTF-32LE
UTF32LE
Toutes les langues
fenêtres-874
WINDOWS874
Thaïlandais
windows-949
WINDOWS949
Coréen
windows-1250
WINDOWS1250
Tchèque, hongrois, polonais, roumain
windows-1251
WINDOWS1251
Russe
windows-1252
WINDOWS1252
Allemand, anglais, danois, français, italien, norvégien, néerlandais, portugais, suédois
windows-1253
WINDOWS1253
Grec
windows-1254
WINDOWS1254
Turc
windows-1255
WINDOWS1255
Hébreu
windows-1256
WINDOWS1256
Arabe
- Par défaut:
UTF8
Note
Snowflake stocke toutes les données en interne dans le jeu de caractères UTF-8. Les données sont converties en UTF-8 avant d’être chargées dans Snowflake.
TYPE = JSON¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Utilisation:
Chargement de données et tables externes
- Définition:
Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.
Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.
- Valeurs:
Valeurs prises en charge
Remarques
AUTO
Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.
GZIP
BZ2
BROTLI
Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.
ZSTD
Zstandard v0.8 (et supérieur) est pris en charge.
DEFLATE
Fichiers compressés Deflate (avec en-tête zlib, RFC1950).
RAW_DEFLATE
Fichiers bruts compressés Deflate (sans en-tête, RFC1951).
NONE
Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.
- Par défaut:
AUTO
DATE_FORMAT = 'string' | AUTO
- Utilisation:
Chargement des données uniquement
- Définition:
Définit le format des valeurs de chaîne de date dans les fichiers de données. Si une valeur n’est pas spécifiée ou est
AUTO
, la valeur du paramètre DATE_INPUT_FORMAT est utilisée.Cette option de format de fichier s’applique uniquement aux actions suivantes :
Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.
Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).
- Par défaut:
AUTO
TIME_FORMAT = 'string' | AUTO
- Utilisation:
Chargement des données uniquement
- Définition:
Définit le format des valeurs de la chaîne de temps dans les fichiers de données. Si une valeur n’est pas spécifiée ou est
AUTO
, la valeur du paramètre TIME_INPUT_FORMAT est utilisée.Cette option de format de fichier s’applique uniquement aux actions suivantes :
Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.
Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).
- Par défaut:
AUTO
TIMESTAMP_FORMAT = string' | AUTO
- Utilisation:
Chargement des données uniquement
- Définition:
Définit le format des valeurs de chaîne d’horodatage dans les fichiers de données. Si une valeur n’est pas spécifiée ou est
AUTO
, la valeur du paramètre TIMESTAMP_INPUT_FORMAT est utilisée.Cette option de format de fichier s’applique uniquement aux actions suivantes :
Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.
Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).
- Par défaut:
AUTO
BINARY_FORMAT = HEX | BASE64 | UTF8
- Utilisation:
Chargement des données uniquement
- Définition:
Définit le format d’encodage des valeurs de chaînes binaires dans les fichiers de données. L’option peut être utilisée pour charger des données à partir de colonnes binaires dans une table.
Cette option de format de fichier s’applique uniquement aux actions suivantes :
Chargement des données JSON dans des colonnes séparées en utilisant l’option de copie MATCH_BY_COLUMN_NAME.
Chargement des données JSON dans des colonnes distinctes en spécifiant une requête dans l’instruction COPY (c’est-à-dire une transformation COPY).
- Par défaut:
HEX
TRIM_SPACE = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.
Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur
TRUE
pour supprimer les espaces indésirables pendant le chargement des données.Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données JSON dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
- Par défaut:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Utilisation:
Chargement des données uniquement
- Définition:
Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.
Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données JSON dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si
2
est spécifié comme valeur, toutes les instances de2
sous forme de chaîne ou de nombre sont converties.Par exemple :
NULL_IF = ('\N', 'NULL', 'NUL', '')
Notez que cette option peut inclure des chaînes vides.
- Par défaut:
\\N
(c.-à-d. NULL, qui suppose que la valeurESCAPE_UNENCLOSED_FIELD
est\\
)
FILE_EXTENSION = 'string' | NONE
- Utilisation:
Déchargement des données uniquement
- Définition:
Spécifie l’extension des fichiers déchargés dans une zone de préparation. Accepte toute extension. L’utilisateur est chargé de spécifier une extension de fichier qui peut être lue par tout logiciel ou service désiré.
- Par défaut:
null, ce qui signifie que l’extension du fichier est déterminée par le type de format :
.json[compression]
, oùcompression
est l’extension ajoutée par la méthode de compression, siCOMPRESSION
est défini.
ENABLE_OCTAL = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui permet d’analyser les nombres octaux.
- Par défaut:
FALSE
ALLOW_DUPLICATE = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui indique d’autoriser les noms de champs d’objets dupliqués (seul le dernier sera conservé).
- Par défaut:
FALSE
STRIP_OUTER_ARRAY = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui demande à l’analyseur JSON de supprimer les crochets extérieurs (comme
[ ]
).- Par défaut:
FALSE
STRIP_NULL_VALUES = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui demande à l’analyseur JSON de supprimer les champs d’objets ou les éléments de tableau contenant des valeurs
null
. Par exemple, lorsque défini surTRUE
:Avant
Après
[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}}
- Par défaut:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (
�
). Cette option permet de remplacer un caractère par un autre.- Valeurs:
S’il est défini sur
TRUE
, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
IGNORE_UTF8_ERRORS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie si les erreurs d’encodage UTF-8 produisent des conditions d’erreur. Il s’agit d’une syntaxe alternative pour
REPLACE_INVALID_CHARACTERS
.- Valeurs:
Si ce paramètre est réglé sur
TRUE
, toute séquence UTF-8 non valide est remplacée discrètement par le caractère UnicodeU+FFFD
(c.-à-d. un « caractère de remplacement »).Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut ignorer le BOM (marque d’ordre d’octet), s’il est présent dans un fichier de données. Une marque BOM est un code de caractère placé au début d’un fichier de données qui définit l’ordre des octets et la forme de l’encodage.
S’il est réglé sur
FALSE
, Snowflake reconnaît n’importe quel BOM dans les fichiers de données, ce qui pourrait entraîner une erreur BOM ou une fusion dans la première colonne du tableau.- Par défaut:
TRUE
TYPE = AVRO¶
COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Utilisation:
Chargement des données uniquement
- Définition:
Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.
Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.
- Valeurs:
Valeurs prises en charge
Remarques
AUTO
Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.
GZIP
BROTLI
Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.
ZSTD
Zstandard v0.8 (et supérieur) est pris en charge.
DEFLATE
Fichiers compressés Deflate (avec en-tête zlib, RFC1950).
RAW_DEFLATE
Fichiers bruts compressés Deflate (sans en-tête, RFC1951).
NONE
Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.
- Par défaut:
AUTO
.
Note
Nous vous recommandons d’utiliser l’option par défaut AUTO
car elle déterminera à la fois la compression du fichier et celle du codec. La spécification d’une option de compression fait référence à la compression de fichiers, et non à la compression de blocs (codecs).
TRIM_SPACE = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.
Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur
TRUE
pour supprimer les espaces indésirables pendant le chargement des données.Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Avro dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
- Par défaut:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (
�
). Cette option permet de remplacer un caractère par un autre.- Valeurs:
S’il est défini sur
TRUE
, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Utilisation:
Chargement des données uniquement
- Définition:
Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.
Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Avro dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si
2
est spécifié comme valeur, toutes les instances de2
sous forme de chaîne ou de nombre sont converties.Par exemple :
NULL_IF = ('\N', 'NULL', 'NUL', '')
Notez que cette option peut inclure des chaînes vides.
- Par défaut:
\\N
(c.-à-d. NULL, qui suppose que la valeurESCAPE_UNENCLOSED_FIELD
est\\
)
TYPE = ORC¶
TRIM_SPACE = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.
Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur
TRUE
pour supprimer les espaces indésirables pendant le chargement des données.Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement des données Orc dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
- Par défaut:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (
�
). Cette option permet de remplacer un caractère par un autre.- Valeurs:
S’il est défini sur
TRUE
, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Utilisation:
Chargement de données et tables externes
- Définition:
Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.
Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement des données Orc dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si
2
est spécifié comme valeur, toutes les instances de2
sous forme de chaîne ou de nombre sont converties.Par exemple :
NULL_IF = ('\N', 'NULL', 'NUL', '')
Notez que cette option peut inclure des chaînes vides.
- Par défaut:
\\N
(c.-à-d. NULL, qui suppose que la valeurESCAPE_UNENCLOSED_FIELD
est\\
)
TYPE = PARQUET¶
COMPRESSION = AUTO | LZO | SNAPPY | NONE
- Utilisation:
Chargement de données, déchargement de données et tables externes
- Définition:
Lors du chargement des données, spécifie l’algorithme de compression actuel pour les colonnes des fichiers Parquet.
Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.
- Valeurs:
Valeurs prises en charge
Remarques
AUTO
Lors du chargement des données, l’algorithme de compression est détecté automatiquement. Prend en charge les algorithmes de compression suivants : Brotli, gzip, Lempel–Ziv–Oberhumer (LZO), LZ4, Snappy ou Zstandard v0.8 (et versions ultérieures). . Lors du déchargement des données, les fichiers déchargés sont compressés en utilisant l’algorithme de compression Snappy par défaut.
LZO
Lors du déchargement des données, les fichiers sont compressés à l’aide de l’algorithme Snappy par défaut. Si vous déchargez des données dans des fichiers LZO compressés, spécifiez cette valeur.
SNAPPY
Lors du déchargement des données, les fichiers sont compressés à l’aide de l’algorithme Snappy par défaut. Vous pouvez spécifier cette valeur en option.
NONE
Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.
- Par défaut:
AUTO
SNAPPY_COMPRESSION = TRUE | FALSE
- Utilisation:
Déchargement des données uniquement
Valeurs prises en charge
Remarques
AUTO
Les fichiers déchargés sont compressés à l’aide de l’algorithme de compression Snappy par défaut.
SNAPPY
Peut être spécifié si vous déchargez des fichiers compressés avec Snappy.
NONE
Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.
- Définition:
Booléen qui spécifie si les fichiers déchargés sont compressés en utilisant l’algorithme SNAPPY.
Note
Obsolète. Utilisez plutôt
COMPRESSION = SNAPPY
.- Limitations:
Uniquement pris en charge pour les opérations de déchargement de données.
- Par défaut:
TRUE
BINARY_AS_TEXT = TRUE | FALSE
- Utilisation:
Chargement de données et tables externes
- Définition:
Booléen qui spécifie s’il faut interpréter les colonnes sans type de données logiques défini comme du texte UTF-8. Lorsqu’il est réglé sur
FALSE
, Snowflake interprète ces colonnes comme des données binaires.- Par défaut:
TRUE
Note
Snowflake vous recommande de définir BINARY_AS_TEXT sur FALSE pour éviter tout problème de conversion éventuel.
TRIM_SPACE = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut supprimer les espaces blancs de début et de fin des chaînes.
Par exemple, si votre logiciel de base de données externe contient des champs entre guillemets, mais insère un espace d’en-tête, Snowflake lit l’espace d’en-tête plutôt que le caractère guillemet comme début du champ (c’est-à-dire que les guillemets sont interprétés comme faisant partie de la chaîne des données du champ). Définissez cette option sur
TRUE
pour supprimer les espaces indésirables pendant le chargement des données.Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Parquet dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
- Par défaut:
FALSE
USE_LOGICAL_TYPE = TRUE | FALSE
- Utilisation:
Chargement de données, interrogation de données dans des fichiers en zone de préparation et détection de schémas.
- Définition:
Booléen qui spécifie s’il faut utiliser les types logiques Parquet. Avec cette option de format de fichier, Snowflake peut interpréter les types logiques Parquet lors du chargement des données. Pour plus d’informations, consultez Définitions de types logiques Parquet. Pour activer les types logiques Parquet, définissez USE_LOGICAL_TYPE sur TRUE lorsque vous créez une nouvelle option de format de fichier.
- Limitations:
Non pris en charge pour le déchargement de données.
USE_VECTORIZED_SCANNER = TRUE | FALSE
- Utilisation:
Chargement de données et interrogation de données dans des fichiers en zone de préparation
- Définition:
Booléen qui spécifie s’il faut utiliser un scanner vectorisé pour charger les fichiers Parquet.
- Par défaut:
FALSE
. Dans un futur BCR, la valeur par défaut seraTRUE
.
L’utilisation du scanner vectorisé peut considérablement réduire la latence pour le chargement de fichiers Parquet, car ce scanner est bien adapté au format de colonne d’un fichier Parquet. Le scanner ne télécharge en mémoire que les sections pertinentes du fichier Parquet, telles que le sous-ensemble de colonnes sélectionnées.
Vous ne pouvez activer le scanner vectorisé que si les conditions suivantes sont remplies :
L’option
ON_ERROR
doit être réglée surABORT_STATEMENT
ou surSKIP_FILE
.Les autres valeurs,
CONTINUE
,SKIP_FILE_num
,'SKIP_FILE_num%'
ne sont pas prises en charge.
Si
USE_VECTORIZED_SCANNER
est défini surTRUE
, le scanner vectorisé se comporte comme suit :L’option
BINARY_AS_TEXT
est toujours traitée commeFALSE
et l’optionUSE_LOGICAL_TYPE
est toujours traitée commeTRUE
, quelle que soit la valeur réelle.Le scanner vectorisé prend en charge les types de carte Parquet. La sortie de l’analyse d’un type de carte est la suivante :
"my_map": { "k1": "v1", "k2": "v2" }
Le scanner vectorisé affiche les valeurs
NULL
dans la sortie, comme le montre l’exemple suivant :"person": { "name": "Adam", "nickname": null, "age": 34, "phone_numbers": [ "1234567890", "0987654321", null, "6781234590" ] }
Le scanner vectorisé traite l’heure et l’horodatage comme suit :
Parquet
Scanner vectorisé Snowflake
TimeType(isAdjustedToUtc=Vrai/Faux, unité=MILLIS/MICROS/NANOS)
TIME
TimestampType(isAdjustedToUtc=Vrai, unité=MILLIS/MICROS/NANOS)
TIMESTAMP_LTZ
TimestampType(isAdjustedToUtc=Faux, unité=MILLIS/MICROS/NANOS)
TIMESTAMP_NTZ
INT96
TIMESTAMP_LTZ
Si
USE_VECTORIZED_SCANNER
est réglé surFALSE
, le scanner se comporte comme suit :Cette option ne prend pas en charge les cartes Parquet. La sortie de l’analyse d’un type de carte est la suivante :
"my_map": { "key_value": [ { "key": "k1", "value": "v1" }, { "key": "k2", "value": "v2" } ] }
Cette option n’affiche pas explicitement les valeurs
NULL
dans la sortie de l’analyse, comme le montre l’exemple suivant :"person": { "name": "Adam", "age": 34 "phone_numbers": [ "1234567890", "0987654321", "6781234590" ] }
Cette option traite l’heure et l’horodatage comme suit :
Parquet
Lorsque USE_LOGICAL_TYPE = TRUE
Lorsque USE_LOGICAL_TYPE = FALSE
TimeType(isAdjustedToUtc=Vrai/Faux, unité=MILLIS/MICROS)
TIME
TIME (Si ConvertedType est présent)
INTEGER (Si ConvertedType n’est pas présent)
TimeType(isAdjustedToUtc=Vrai/Faux, unité=NANOS)
TIME
INTEGER
TimestampType(isAdjustedToUtc=Vrai, unité=MILLIS/MICROS)
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TimestampType(isAdjustedToUtc=Vrai, unité=NANOS)
TIMESTAMP_LTZ
INTEGER
TimestampType(isAdjustedToUtc=Faux, unité=MILLIS/MICROS)
TIMESTAMP_NTZ
TIMESTAMP_LTZ (Si ConvertedType est présent)
INTEGER (Si ConvertedType n’est pas présent)
TimestampType(isAdjustedToUtc=Faux, unité=NANOS)
TIMESTAMP_NTZ
INTEGER
INT96
TIMESTAMP_NTZ
TIMESTAMP_NTZ
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (
�
). Cette option permet de remplacer un caractère par un autre.- Valeurs:
S’il est défini sur
TRUE
, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Utilisation:
Chargement des données uniquement
- Définition:
Chaîne utilisée pour les conversions entrante et sortante de SQL NULL. Snowflake remplace ces chaînes de la source de chargement des données par SQL NULL. Pour spécifier plus d’une chaîne, mettez la liste des chaînes entre parenthèses et utilisez des virgules pour séparer chaque valeur.
Cette option de format de fichier est appliquée aux actions suivantes uniquement lors du chargement de données Parquet dans des colonnes séparées à l’aide de l’option de copie MATCH_BY_COLUMN_NAME.
Notez que Snowflake convertit toutes les instances de la valeur en NULL, quel que soit le type de données. Par exemple, si
2
est spécifié comme valeur, toutes les instances de2
sous forme de chaîne ou de nombre sont converties.Par exemple :
NULL_IF = ('\N', 'NULL', 'NUL', '')
Notez que cette option peut inclure des chaînes vides.
- Par défaut:
\\N
(c.-à-d. NULL, qui suppose que la valeurESCAPE_UNENCLOSED_FIELD
est\\
)
TYPE = XML¶
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Utilisation:
Chargement des données uniquement
- Définition:
Lors du chargement des données, spécifie l’algorithme de compression actuel pour le fichier de données. Snowflake utilise cette option pour détecter comment un fichier de données déjà compressé a été compressé afin que les données compressées dans le fichier puissent être extraites pour le chargement.
Lors du déchargement des données, compresse le fichier de données en utilisant l’algorithme de compression spécifié.
- Valeurs:
Valeurs prises en charge
Remarques
AUTO
Lors du chargement des données, l’algorithme de compression est détecté automatiquement, sauf pour les fichiers compressés par Brotli, qui ne peuvent actuellement pas être détectés automatiquement. Lors du déchargement des données, les fichiers sont automatiquement compressés en utilisant la valeur par défaut, qui est gzip.
GZIP
BZ2
BROTLI
Doit être spécifié lors du chargement/déchargement de fichiers compressés Brotli.
ZSTD
Zstandard v0.8 (et supérieur) est pris en charge.
DEFLATE
Fichiers compressés Deflate (avec en-tête zlib, RFC1950).
RAW_DEFLATE
Fichiers bruts compressés Deflate (sans en-tête, RFC1951).
NONE
Lors du chargement des données, indique que les fichiers n’ont pas été compressés. Lors du déchargement des données, spécifie que les fichiers déchargés ne sont pas compressés.
- Par défaut:
AUTO
IGNORE_UTF8_ERRORS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie si les erreurs d’encodage UTF-8 produisent des conditions d’erreur. Il s’agit d’une syntaxe alternative pour
REPLACE_INVALID_CHARACTERS
.- Valeurs:
Si ce paramètre est réglé sur
TRUE
, toute séquence UTF-8 non valide est remplacée discrètement par le caractère UnicodeU+FFFD
(c.-à-d. un « caractère de remplacement »).Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
PRESERVE_SPACE = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie si l’analyseur XML préserve les espaces d’en-tête et de fin dans le contenu des éléments.
- Par défaut:
FALSE
STRIP_OUTER_ELEMENT = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie si l’analyseur XML supprime l’élément externe XML, exposant les éléments de 2e niveau comme des documents séparés.
- Par défaut:
FALSE
DISABLE_SNOWFLAKE_DATA = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie si l’analyseur XML désactive la reconnaissance des balises de données semi-structurées Snowflake.
- Par défaut:
FALSE
DISABLE_AUTO_CONVERT = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie si l’analyseur XML désactive la conversion automatique des valeurs numériques et booléennes du texte en représentation native.
- Par défaut:
FALSE
REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Utilisation:
Chargement de données et table externe
- Définition:
Booléen qui spécifie s’il faut remplacer les caractères UTF-8 non valides par le caractère de remplacement Unicode (
�
). Cette option permet de remplacer un caractère par un autre.- Valeurs:
S’il est défini sur
TRUE
, Snowflake remplace les caractères UTF-8 non valides par le caractère de remplacement Unicode.Si
FALSE
est défini, l’opération de chargement génère une erreur lorsqu’un codage de caractères UTF-8 non valide est détecté.- Par défaut:
FALSE
SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Utilisation:
Chargement des données uniquement
- Définition:
Booléen qui spécifie s’il faut sauter n’importe quel BOM (marque d’ordre d’octet) présent dans un fichier d’entrée. Une marque BOM est un code de caractère placé au début d’un fichier de données qui définit l’ordre des octets et la forme de l’encodage.
S’il est réglé sur
FALSE
, Snowflake reconnaît n’importe quel BOM dans les fichiers de données, ce qui pourrait entraîner une erreur BOM ou une fusion dans la première colonne du tableau.- Par défaut:
TRUE
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :
Privilège |
Objet |
Remarques |
---|---|---|
OWNERSHIP |
Zone de préparation |
Nécessaire pour modifier les propriétés de la zone de préparation et pour activer ou désactiver une table de répertoire dans la zone de préparation à l’aide de ALTER STAGE … SET DIRECTORY. OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
WRITE |
Zone de préparation |
Nécessaire pour actualiser les métadonnées à l’aide de ALTER STAGE … REFRESH. |
Notez que l’exploitation d’un objet dans un schéma requiert également le privilège USAGE sur la base de données et le schéma parents.
Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.
Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.
Notes sur l’utilisation¶
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
Renommer my_int_stage
en new_int_stage
:
ALTER STAGE my_int_stage RENAME TO new_int_stage;
Modifiez my_ext_stage
(créé dans les exemples CREATE STAGE) pour changer l’URL pour référencer un sous-dossier nommé new
dans le dossier files
. Si une commande COPY INTO <table> qui fait référence à cette zone de préparation rencontre une erreur de données sur l’un des enregistrements, elle ignore le fichier. Toutes les autres options de copie sont réglées sur les valeurs par défaut.
Si le compartiment S3 se trouve dans une région en Chine, utilisez le protocole s3china://
pour le paramètre URL.
ALTER STAGE my_ext_stage SET URL='s3://loading/files/new/' COPY_OPTIONS = (ON_ERROR='skip_file');
Modifiez my_ext_stage
pour remplacer les informations d’identification fournies par une référence à une intégration de stockage nommée myint
:
ALTER STAGE my_ext_stage SET STORAGE_INTEGRATION = myint;
Modifiez my_ext_stage
pour spécifier un nouvel ID de clé d’accès et une clé d’accès secrète pour la zone de préparation :
ALTER STAGE my_ext_stage SET CREDENTIALS=(AWS_KEY_ID='d4c3b2a1' AWS_SECRET_KEY='z9y8x7w6');(les valeurs des informations d’identification utilisées dans l’exemple ci-dessus sont données à titre indicatif)
Modifiez my_ext_stage3
pour activer le type de chiffrement AWS_SSE_S3
côté serveur pour le chiffrement de la zone de préparation :
ALTER STAGE my_ext_stage3 SET ENCRYPTION=(TYPE='AWS_SSE_S3');
Exemples de tables de répertoire¶
Ajoutez une table de répertoire à une zone de préparation existante nommée mystage
:
ALTER STAGE mystage SET DIRECTORY = ( ENABLE = TRUE );
Actualiser manuellement les métadonnées de la table de répertoire dans une zone de préparation nommée mystage
:
ALTER STAGE mystage REFRESH;
+-------------------------+----------------+-------------------------------+
| file | status | description |
|-------------------------+----------------+-------------------------------|
| data/json/myfile.json | REGISTERED_NEW | File registered successfully. |
+-------------------------+----------------+-------------------------------+
Actualisez manuellement les métadonnées de la table de répertoire pour les fichiers du chemin data
dans une zone de préparation nommée mystage
:
ALTER STAGE mystage REFRESH SUBPATH = 'data';