CREATE FILE FORMAT¶
Crée un format de fichier nommé qui décrit un ensemble de données en zone de préparation à accéder ou à charger dans des tables Snowflake.
Cette commande prend en charge les variantes suivantes :
- CREATE OR ALTER FILE FORMAT : crée un format de fichier nommé s’il n’existe pas ou modifie un format de fichier existant. 
- Voir aussi :
- ALTER FILE FORMAT , DROP FILE FORMAT , SHOW FILE FORMATS , DESCRIBE FILE FORMAT - COPY INTO <emplacement> , COPY INTO <table> , CREATE OR ALTER <objet> 
Syntaxe¶
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY | VOLATILE } ] FILE FORMAT [ IF NOT EXISTS ] <name>
  [ TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM} [ formatTypeOptions ] ]
  [ COMMENT = '<string_literal>' ]
Où :
formatTypeOptions ::= -- If TYPE = CSV COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE RECORD_DELIMITER = '<string>' | NONE FIELD_DELIMITER = '<string>' | NONE MULTI_LINE = TRUE | FALSE 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 MULTI_LINE = 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 USE_VECTORIZED_SCANNER = 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_AUTO_CONVERT = TRUE | FALSE REPLACE_INVALID_CHARACTERS = TRUE | FALSE SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Syntaxe des variantes¶
CREATE OR ALTER FILE FORMAT¶
Crée un nouveau format de fichier nommé s’il n’existe pas déjà, ou transforme un format de fichier existant en celui défini dans l’instruction. Une instruction CREATE OR ALTER FILEFORMAT suit les règles syntaxiques d’une instruction CREATE FILEFORMAT et présente les mêmes limitations qu’une instruction ALTER FILE FORMAT.
Les modifications prises en charge comprennent les changements des propriétés formatTypeOptions et COMMENT. Vous ne pouvez pas modifier la propriété TYPE.
Pour plus d’informations, voir Notes sur l’utilisation de CREATE OR ALTER FILEFORMAT.
CREATE OR ALTER [ { TEMP | TEMPORARY | VOLATILE } ] FILE FORMAT <name>
  [ TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] ]
  [ COMMENT = '<string_literal>' ]
Paramètres requis¶
- name
- Indique l’identificateur du format de fichier ; il doit être unique pour le schéma dans lequel le format de fichier est créé. - La valeur de l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple - "My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.- Pour plus de détails, voir Exigences relatives à l’identificateur. 
Paramètres facultatifs¶
- { TEMP | TEMPORARY | VOLATILE }
- Spécifie que le format du fichier ne persiste que pendant la durée de la session dans laquelle vous l’avez créé. Un format de fichier temporaire est supprimé à la fin de la session. - Par défaut : aucune valeur. Si un format de fichier n’est pas déclaré comme - TEMPORARY, le format de fichier est permanent.- Si vous voulez éviter des conflits inattendus, évitez de nommer les formats de fichiers temporaires d’après des formats de fichiers qui existent déjà dans le schéma. - Si vous avez créé un format de fichier temporaire portant le même nom qu’un autre format de fichier du schéma, toutes les requêtes et opérations utilisées sur le format de fichier n’affectent que le format de fichier temporaire dans la session, jusqu’à ce que vous supprimiez le format de fichier temporaire. Si vous supprimez le format de fichier à l’aide d’une commande DROP FILE FORMAT, vous supprimez le format de fichier temporaire et non le format de fichier qui existe déjà dans le schéma. 
- TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML [ ... ]
- Spécifie le format des fichiers d’entrée (pour le chargement des données) ou de sortie (pour le déchargement des données). Suivant le type de format, vous pouvez spécifier des options supplémentaires spécifiques au format. Pour plus d’informations, voir Options de type de format (dans cette rubrique). - Les valeurs valides varient suivant que le format de fichier est destiné au chargement ou au déchargement de données : - CSV(pour le chargement ou le déchargement)
- Tout fichier texte brut, plat et délimité qui utilise des caractères spécifiques tels que les suivants : - Séparateurs de champs dans des enregistrements (par exemple, virgules). 
- Séparateurs d’enregistrements (par exemple, caractères de retour à la ligne). 
 - Bien que le nom (CSV) suggère des valeurs séparées par des virgules, vous pouvez utiliser n’importe quel caractère valide comme séparateur de champ. 
- JSON(pour le chargement ou le déchargement)
- Tout fichier texte brut contenant un ou plusieurs documents JSON (tels que des objets ou des tableaux). JSON est un format de fichier semi-structuré. Les documents peuvent être séparés par des virgules et éventuellement inclus dans un grand tableau. Un seul document JSON peut s’étendre sur plusieurs lignes. - Note - Lorsque vous chargez des données à partir de fichiers dans des tables, Snowflake prend en charge soit le format standard NDJSON (JSON délimité par des retours à la ligne), soit le format JSON séparé par des virgules. 
- Lorsque vous déchargez des données de table dans des fichiers, la sortie de Snowflake se présente uniquement au format NDJSON. 
 
- AVRO(pour le chargement uniquement ; vous ne pouvez pas décharger de données au format AVRO)
- Fichier binaire au format AVRO. 
- ORC(pour le chargement uniquement ; vous ne pouvez pas décharger de données au format ORC)
- Fichier binaire au format ORC. 
- PARQUET(pour le chargement ou le déchargement)
- Fichier binaire au format PARQUET. 
- XML(pour le chargement uniquement ; vous ne pouvez pas décharger de données au format XML)
- Fichier texte brut contenant des éléments XML. 
- CUSTOM(pour charger les données non structurées uniquement)
- 
Ce type de format 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 copie FILE_PROCESSOR.
 - Pour plus d’informations sur le format CSV, voir Notes sur l’utilisation dans cette rubrique. Pour plus d’informations sur le format JSON et sur les autres formats de fichiers semi-structurés, voir Introduction au chargement de données semi-structurées. Pour plus d’informations sur le type - CUSTOM, voir Chargement de données non structurées avec Document AI.- Par défaut : - CSV
- COMMENT = 'string_literal'
- Spécifie un commentaire pour le format de fichier. - Par défaut : aucune valeur 
Options de type de format (formatTypeOptions)¶
En fonction du type de format de fichier spécifié (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- \xou- 0x). 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\nsera 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- \xou- 0x). 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 ( - ,)
 
- MULTI_LINE = TRUE | FALSE
- Utilisation:
- Chargement de données et tables externes 
- Définition:
- Booléen qui spécifie si les lignes multiples sont autorisées. Si MULTI_LINE a pour valeur - FALSEet que le délimiteur d’enregistrement spécifié est présent dans un champ CSV, l’enregistrement contenant le champ sera interprété comme une erreur.
- Par défaut:
- TRUE
 - Note - Si vous chargez de gros fichiers CSV non compressés (supérieurs à 128MB) qui suivent la spécification RFC4180, Snowflake prend en charge l’analyse parallèle de ces fichiers CSV lorsque MULTI_LINE est défini sur - FALSE, COMPRESSION est défini sur- NONE, et ON_ERROR est défini sur- ABORT_STATEMENTou- CONTINUE.
- 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ù- compressionest l’extension ajoutée par la méthode de compression, si- COMPRESSIONest défini.
 - Note - Si l’option de copie - SINGLEest- TRUE, alors la commande COPY décharge un fichier sans extension par défaut. Pour spécifier une extension de fichier, fournissez un nom de fichier et une extension dans le chemin- internal_locationou- external_location(par exemple,- 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_BYou 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_DELIMITERou- RECORD_DELIMITERdans 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 fichier- RECORD_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 sur- NONE.
- 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 - ESCAPEest 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 - TRUEpour 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 que- FIELD_DELIMITER = '|'et- FIELD_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 - 2est spécifié comme valeur, toutes les instances de- 2sous 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’est-à-dire NULL, qui suppose que la- ESCAPE_UNENCLOSED_FIELDvaleur 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 - FALSEest 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 des données, spécifie s’il faut insérer SQL NULL pour les champs vides d’un fichier d’entrée, qui sont représentés par deux délimiteurs successifs (par exemple, - ,,).- 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. Lorsque- FIELD_OPTIONALLY_ENCLOSED_BY = NONE, le paramètre- EMPTY_FIELD_AS_NULL = FALSEspé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_BYdoit 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 - TRUEpour 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
 
- MULTI_LINE = TRUE | FALSE
- Utiliser : Chargement de données et tables externes - Définition:
- Booléen qui spécifie si les lignes multiples sont autorisées. Si MULTI_LINE est défini sur - FALSEet qu’une nouvelle ligne est présente dans un enregistrement JSON, l’enregistrement contenant la nouvelle ligne sera interprété comme une erreur.
- Par défaut:
- TRUE
 
- 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 - 2est spécifié comme valeur, toutes les instances de- 2sous 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’est-à-dire NULL)
 
- 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ù- compressionest l’extension ajoutée par la méthode de compression, si- COMPRESSIONest 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 sur- TRUE:- 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 - FALSEest 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 Unicode- U+FFFD(c.-à-d. un « caractère de remplacement »).- Si - FALSEest 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 - TRUEpour 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 - FALSEest 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 - 2est spécifié comme valeur, toutes les instances de- 2sous 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’est-à-dire NULL)
 
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 - TRUEpour 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 - FALSEest 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 - 2est spécifié comme valeur, toutes les instances de- 2sous 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’est-à-dire NULL)
 
TYPE = PARQUET¶
- COMPRESSION = AUTO | LZO | SNAPPY | NONE
- Utilisation:
- Déchargement des données et tables externes 
- Définition:
 - Lors du déchargement des données, spécifie l’algorithme de compression des colonnes dans les fichiers Parquet. 
 - 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 - TRUEpour 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 sera- TRUE.
 - 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. - Si - USE_VECTORIZED_SCANNERest défini sur- TRUE, le scanner vectorisé se comporte comme suit :- L’option - BINARY_AS_TEXTest toujours traitée comme- FALSEet l’option- USE_LOGICAL_TYPEest toujours traitée comme- TRUE, 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 - NULLdans 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_SCANNERest réglé sur- FALSE, 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 - NULLdans 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 - FALSEest 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 - 2est spécifié comme valeur, toutes les instances de- 2sous 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’est-à-dire NULL)
 
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 Unicode- U+FFFD(c.-à-d. un « caractère de remplacement »).- Si - FALSEest 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_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 - FALSEest 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 opération doit au minimum disposer des privilèges suivants :
| Privilège | Objet | Remarques | 
|---|---|---|
| CREATE FILE FORMAT | Schéma | |
| OWNERSHIP | Format de fichier | 
 Note that in a managed access schema, only the schema owner (i.e. the role with the OWNERSHIP privilege on the schema) or a role with the MANAGE GRANTS privilege can grant or revoke privileges on objects in the schema, including future grants. | 
Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma. Notez qu’un rôle doté d’un privilège quelconque sur un schéma permet à ce rôle de résoudre le schéma. Par exemple, un rôle doté du privilège CREATE sur un schéma peut créer des objets sur ce schéma sans également avoir le privilège USAGE attribué sur ce schéma.
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 de CREATE OR ALTER FILEFORMAT¶
- Toutes les limitations de la commande ALTER FILE FORMAT s’appliquent. 
- Vous ne pouvez pas transformer une commande TEMP FILE FORMAT en une commande FILE FORMAT normale et inversement. 
- Vous ne pouvez pas modifier la propriété TYPE. 
Notes sur l’utilisation¶
Prudence
Recréer un format de fichier (en utilisant CREATE OR REPLACE FILE FORMAT) rompt l’association entre le fichier de format et toute table externe qui y fait référence. Ceci est dû au fait qu’une table externe se lie à un format de préparation en utilisant un ID caché plutôt que le nom du format de fichier. En coulisse, la syntaxe CREATE OR REPLACE détruit un objet et le recrée avec un ID caché différent.
Si vous devez recréer un format de fichier après qu’il a été lié à une ou plusieurs tables externes, vous devez recréer chacune des tables externes (en utilisant CREATE OR REPLACE EXTERNAL TABLE) pour rétablir l’association. Appelez la fonction GET_DDL pour récupérer une instruction DDL afin de recréer chacune des tables externes.
- Les valeurs de format de fichier contradictoires dans une instruction SQL produisent une erreur. Un conflit se produit lorsque la même option est spécifiée plusieurs fois avec des valeurs différentes (par exemple : - ...TYPE = 'CSV' ... TYPE = 'JSON'...).
- 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. 
- Les clauses - OR REPLACEet- IF NOT EXISTSs’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.
- Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction. 
Exemples¶
Créez un format de fichier CSV nommé my_csv_format qui utilise toutes les options de format CSV par défaut :
CREATE OR REPLACE FILE FORMAT my_csv_format
  TYPE = CSV
  COMMENT = 'my_file_format';
Modifiez my_csv_format pour qu’il définisse les règles suivantes pour les fichiers de données et supprime le commentaire :
- Les champs sont délimités à l’aide du caractère de barre verticale ( - |).
- Les fichiers comprennent une seule ligne d’en-tête qui sera ignorée. 
- Les chaînes - NULLet- nullseront remplacées par des valeurs NULL.
- Les chaînes vides seront interprétées comme des valeurs NULL. 
- Les fichiers seront compressés / décompressés à l’aide de la compression GZIP. 
CREATE OR ALTER FILE FORMAT my_csv_format
  TYPE = CSV
  FIELD_DELIMITER = '|'
  SKIP_HEADER = 1
  NULL_IF = ('NULL', 'null')
  EMPTY_FIELD_AS_NULL = true
  COMPRESSION = gzip;
Créez un format de fichier JSON nommé my_json_format qui utilise toutes les options de format JSON par défaut :
CREATE OR REPLACE FILE FORMAT my_json_format
  TYPE = JSON;
Créez un format de fichier PARQUET nommé my_parquet_format qui utilise les types logiques PARQUET, au lieu des types physiques ou des types convertis hérités.
CREATE OR REPLACE FILE FORMAT my_parquet_format
  TYPE = PARQUET
  USE_VECTORIZED_SCANNER = TRUE
  USE_LOGICAL_TYPE = TRUE;
