输入与输出文件格式
引入或更新: v1.2.530
Databend 接受多种文件格式作为数据加载或卸载的源和目标。本页解释了支持的文件格式及其可用选项。
语法
要在语句中指定文件格式,请使用以下语法:
-- 指定标准文件格式
... FILE_FORMAT = ( TYPE = { CSV | TSV | NDJSON | PARQUET | ORC } [ formatTypeOptions ] )
-- 指定自定义文件格式
... FILE_FORMAT = ( FORMAT_NAME = '<your-custom-format>' )
- Databend 目前仅支持 ORC 作为源。不支持将数据卸载到 ORC 文件。
- 如果在执行 COPY INTO 或 SELECT 操作时未指定 FILE_FORMAT,Databend 将使用您在创建阶段时最初为阶段定义的文件格式。如果在创建阶段时未明确指定文件格式,Databend 默认使用 PARQUET 格式。如果在操作中指定了与创建阶段时定义的不同的 FILE_FORMAT,Databend 将优先使用操作中指定的 FILE_FORMAT。
- 有关在 Databend 中管理自定义文件格式,请参阅 File Format。
formatTypeOptions
formatTypeOptions
包括一个或多个选项,用于描述文件的其他格式细节。选项因文件格式而异。请参阅下面的部分,了解每种支持的文件格式的可用选项。
formatTypeOptions ::=
RECORD_DELIMITER = '<character>'
FIELD_DELIMITER = '<character>'
SKIP_HEADER = <integer>
QUOTE = '<character>'
ESCAPE = '<character>'
NAN_DISPLAY = '<string>'
ROW_TAG = '<string>'
COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | XZ | NONE
CSV 选项
Databend 接受符合 RFC 4180 的 CVS 文件,并受以下条件限制:
- 如果字符串包含 QUOTE、ESCAPE、RECORD_DELIMITER 或 FIELD_DELIMITER 的字符,则必须用引号括起来。
- 引号字符串中除 QUOTE 外的字符不会被转义。
- FIELD_DELIMITER 和 QUOTE 之间不应有空格。
- 如果字符串来自序列化的 Array 或 Struct 字段,则会在 CSV 中用引号括起来。
- 如果您开发程序并从中生成 CSV 文件,Databend 建议使用编程语言的 CSV 库。
RECORD_DELIMITER
分隔输入文件中的记录。
可用值:
\r\n
- 一个单字节、非字母数字字符,如
#
和|
。 - 带有转义字符的字符:
\b
,\f
,\r
,\n
,\t
,\0
,\xHH
默认: \n
FIELD_DELIMITER
分隔记录中的字段。