CSV
描述
逗号分隔值格式 (RFC)。 格式化时,行用双引号括起来。 字符串内的双引号将输出为连续的两个双引号。 没有其他字符转义规则。
- 日期和日期时间包含在双引号中。
- 数字输出时不带引号。
- 值由分隔符分隔,默认情况下为
,
。 分隔符在 format_csv_delimiter 设置中定义。 - 行使用 Unix 换行符 (LF) 分隔。
- 数组在 CSV 中按如下方式序列化
- 首先,数组被序列化为字符串,就像在 TabSeparated 格式中一样
- 生成的字符串在 CSV 中用双引号输出。
- CSV 格式的元组被序列化为单独的列(即,它们在元组中的嵌套丢失)。
$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv
注意
默认情况下,分隔符为 ,
。 有关更多信息,请参阅 format_csv_delimiter 设置。
解析时,所有值都可以带引号或不带引号解析。 支持双引号和单引号。
行也可以在不带引号的情况下排列。 在这种情况下,它们将被解析到分隔符或换行符(CR 或 LF)。 但是,违反 RFC 的是,当解析不带引号的行时,前导和尾随空格和制表符将被忽略。 换行符支持:Unix (LF)、Windows (CR LF) 和 Mac OS Classic (CR LF) 类型。
NULL
根据 format_csv_null_representation 设置进行格式化(默认值为 \N
)。
在输入数据中,ENUM
值可以表示为名称或 ID。 首先,我们尝试将输入值与 ENUM 名称匹配。 如果失败且输入值为数字,我们将尝试将此数字与 ENUM ID 匹配。 如果输入数据仅包含 ENUM ID,建议启用 input_format_csv_enum_as_number 设置以优化 ENUM
解析。