Passer au contenu principal

Description

Format Comma Separated Values (RFC). Lors du formatage, les lignes sont placées entre guillemets doubles. Un guillemet double à l’intérieur d’une chaîne est représenté par deux guillemets doubles consécutifs. Il n’y a pas d’autres règles d’échappement des caractères.
  • Les dates et les dates-heures sont placées entre guillemets doubles.
  • Les nombres sont affichés sans guillemets.
  • Les valeurs sont séparées par un caractère délimiteur, qui est , par défaut. Le caractère délimiteur est défini dans le paramètre format_csv_delimiter.
  • Les lignes sont séparées par le caractère de saut de ligne Unix (LF).
  • Les Arrays sont sérialisés en CSV comme suit :
    • d’abord, l’Array est sérialisé en chaîne comme dans le format TabSeparated
    • la chaîne obtenue est ensuite affichée en CSV entre guillemets doubles.
  • Les Tuples au format CSV sont sérialisés en colonnes distinctes (c’est-à-dire que leur imbrication dans le tuple est perdue).
$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv
Par défaut, le délimiteur est , Consultez le paramètre format_csv_delimiter pour plus d’informations.
Lors de l’analyse, toutes les valeurs peuvent être analysées avec ou sans guillemets. Les guillemets doubles et simples sont pris en charge. Les lignes peuvent également être écrites sans guillemets. Dans ce cas, elles sont analysées jusqu’au caractère délimiteur ou au saut de ligne (CR ou LF). Cependant, contrairement à la RFC, lors de l’analyse de lignes sans guillemets, les espaces et tabulations en début et en fin de ligne sont ignorés. Les types de fin de ligne pris en charge sont les suivants : Unix (LF), Windows (CR LF) et Mac OS Classic (CR LF). NULL est formaté selon le paramètre format_csv_null_representation (la valeur par défaut est \N). Dans les données d’entrée, les valeurs ENUM peuvent être représentées sous forme de noms ou d’identifiants. Nous essayons d’abord de faire correspondre la valeur d’entrée au nom de l’ENUM. En cas d’échec, si la valeur d’entrée est un nombre, nous essayons de faire correspondre ce nombre à l’identifiant de l’ENUM. Si les données d’entrée ne contiennent que des identifiants d’ENUM, il est recommandé d’activer le paramètre input_format_csv_enum_as_number pour optimiser l’analyse des ENUM.

Exemple d’utilisation

Paramètres de format

ParamètreDescriptionPar défautNotes
format_csv_delimiterle caractère à considérer comme délimiteur dans les données CSV.,
format_csv_allow_single_quotesautoriser les chaînes entre guillemets simples.true
format_csv_allow_double_quotesautoriser les chaînes entre guillemets doubles.true
format_csv_null_representationreprésentation personnalisée de NULL dans le format CSV.\N
input_format_csv_empty_as_defaulttraiter les champs vides dans l’entrée CSV comme des valeurs par défaut.truePour les expressions par défaut complexes, input_format_defaults_for_omitted_fields doit également être activé.
input_format_csv_enum_as_numbertraiter les valeurs enum insérées dans les formats CSV comme des indices d’enum.false
input_format_csv_use_best_effort_in_schema_inferenceutiliser certains ajustements et heuristiques pour inférer le schéma dans le format CSV. Si ce paramètre est désactivé, tous les champs seront inférés comme des Strings.true
input_format_csv_arrays_as_nested_csvlors de la lecture d’un Array depuis un CSV, s’attendre à ce que ses éléments aient été sérialisés en CSV imbriqué puis placés dans une chaîne.false
output_format_csv_crlf_end_of_linesi ce paramètre est défini sur true, la fin de ligne du format de sortie CSV sera \r\n au lieu de \n.false
input_format_csv_skip_first_linesignorer le nombre de lignes spécifié au début des données.0
input_format_csv_detect_headerdétecter automatiquement un en-tête contenant les noms et les types dans le format CSV.true
input_format_csv_skip_trailing_empty_linesignorer les lignes vides à la fin des données.false
input_format_csv_trim_whitespacessupprimer les espaces et les tabulations dans les chaînes CSV non délimitées par des guillemets.true
input_format_csv_allow_whitespace_or_tab_as_delimiterautoriser l’utilisation d’espaces ou de tabulations comme délimiteur de champ dans les chaînes CSV.false
input_format_csv_allow_variable_number_of_columnsautoriser un nombre variable de colonnes dans le format CSV, ignorer les colonnes supplémentaires et utiliser des valeurs par défaut pour les colonnes manquantes.false
input_format_csv_use_default_on_bad_valuesautoriser la définition d’une valeur par défaut pour une colonne lorsque la désérialisation d’un champ CSV échoue en cas de valeur incorrecte.false
input_format_csv_try_infer_numbers_from_stringsessayer d’inférer des nombres à partir de champs de type chaîne lors de l’inférence de schéma.false
Dernière modification le 29 juin 2026