功能边界:数据导入导出
本文介绍了 StarRocks 导入导出的能力边界以及所涉及功能的支持版本。
文件格式
导入文件格式
数据源 | 文件格式 | |||||||
---|---|---|---|---|---|---|---|---|
CSV | JSON [3] | Parquet | ORC | Avro | ProtoBuf | Thrift | ||
Stream Load | 本地文件系统、应用及 Connector | Yes | Yes | 待支持 | 待支持 | 待支持 | ||
INSERT from FILES | HDFS, S3, OSS, Azure, GCS, NFS(NAS) [5] | Yes (v3.3+) | 待支持 | Yes (v3.1+) | Yes (v3.1+) | 待支持 | ||
Broker Load | Yes | Yes (v3.2.3+) | Yes | Yes | 待支持 | |||
Routine Load | Kafka | Yes | Yes | 待支持 | 待支持 | Yes (v3.0+) [1] | 待支持 | 待支持 |
Spark Load | Yes | 待支持 | Yes | Yes | 待支持 | |||
Connectors | Flink, Spark | Yes | Yes | 待支持 | 待支持 | 待支持 | ||
Kafka Connector [2] | Kafka | Yes (v3.0+) | 待支持 | 待支持 | Yes (v3.0+) | 待支持 | ||
PIPE [4] | 同 INSERT from FILES |
[1], [2]:需要 依赖 Schema Registry。
[3]:JSON 支持多种 CDC 格式。有关 StarRocks 支持的 JSON CDC 格式的详细信息,参见 JSON CDC 格式。
[4]:PIPE 当前只支持 INSERT from FILES。
[5]:需要将同一 NAS 设备作为 NFS 挂载到每个 BE 或 CN 节点的相同目录下,才能通过 file://
协议访问 NFS 中的文件。
JSON CDC 格式
Stream Load | Routine Load | Broker Load | INSERT from FILES | Kafka Connector | |
---|---|---|---|---|---|
Debezium | 将在 v3.4 版本中支持 | 将在 v3.4 版本中支持 | 待支持 | 待支持 | Yes (v3.0+) [1] |
Canal | 待支持 | ||||
Maxwell |
[1]:在将 Debezium CDC 格式数据导入到 StarRocks 主键表时,必须配置 transforms
参数。
导出文件格式
导出目标 | 文件格式 | |||||
---|---|---|---|---|---|---|
表格式 | 远端存储 | CSV | JSON | Parquet | ORC | |
INSERT INTO FILES | N/A | HDFS, S3, OSS, Azure, GCS, NFS(NAS) [3] | Yes (v3.3+) | 待支持 | Yes (v3.2+) | Yes (v3.3+) |
INSERT INTO Catalog | Hive | HDFS, S3, OSS, Azure, GCS | Yes (v3.3+) | 待支持 | Yes (v3.2+) | Yes (v3.3+) |
Iceberg | HDFS, S3, OSS, Azure, GCS | 待支持 | 待支持 | Yes (v3.2+) | 待支持 | |
Hudi/Delta | 待支持 | |||||
EXPORT | N/A | HDFS, S3, OSS, Azure, GCS | Yes [1] | 待支持 | 待支持 | 待支持 |
PIPE | 待支持 [2] |
[1]:支持配置 Broker 进程。
[2]:目前,不支持使用 PIPE 导 出数据。
[3]:需要将同一 NAS 设备作为 NFS 挂载到每个 BE 或 CN 节点的相同目录下,才能通过 file://
协议访问 NFS 中的文件。
文件格式相关参数
导入文件格式相关参数
文件格式 | 参数 | 导入方式 | ||||
---|---|---|---|---|---|---|
Stream Load | INSERT from FILES | Broker Load | Routine Load | Spark Load | ||
CSV | column_separator | Yes | Yes (v3.3+) | Yes [1] | ||
row_delimiter | Yes | Yes [2] (v3.1+) | Yes [3] (v2.2+) | 待支持 | ||
enclose | Yes (v3.0+) | Yes (v3.0+) | Yes (v3.0+) | 待支持 | ||
escape | ||||||
skip_header | 待支持 | |||||
trim_space | Yes (v3.0+) | |||||
JSON | jsonpaths | Yes | 待支持 | Yes (v3.2.3+) | Yes | 待支持 |
strip_outer_array | ||||||
json_root | ||||||
ignore_json_size | 待支持 |
[1]:对应的参数是 COLUMNS TERMINATED BY。
[2]:对应的参数是 ROWS TERMINATED BY。
[3]:对应的参数是 ROWS TERMINATED BY。
导出文件格式相关参数
文件格式 | 参数 | 导出方式 | |
---|---|---|---|
INSERT INTO FILES | EXPORT | ||
CSV | column_separator | Yes (v3.3+) | Yes |
line_delimiter [1] |
[1]:数据导入中对应的参数是 row_delimiter
.
压缩格式
导入压缩格式
文件格式 | 压缩格式 | 导入方式 | ||||
---|---|---|---|---|---|---|
Stream Load | Broker Load | INSERT from FILES | Routine Load | Spark Load | ||
CSV |
| Yes [1] | Yes [2] | 待支持 | 待支持 | 待支持 |
JSON | Yes (v3.2.7+) [3] | 待支持 | N/A | 待支持 | N/A | |
Parquet |
| N/A | Yes [4] | 待支持 | Yes [4] | |
ORC |
[1]:目前,仅在使用 Stream Load 导入 CSV 文件时,支持通过 format=gzip
的方式指定压缩格式。除 gzip 外,还支持 deflate 和 bzip2 格式。
[2]:Broker Load 不支持通过 format
参数指定 CSV 文件的压缩格式。Broker Load 通过文件的后缀识别压缩格式。gzip 压缩文件的后缀是 .gz
,zstd 压缩文件的后缀是 .zst
。此外,Broker Load 也不支持其他格式相关参数,如 trim_space
和 enclose
。
[3]:支持通过配置 compression = gzip
的方式指定压缩格式。
[4]:由 Arrow Library 提供支持。无需配置压缩参数。
导出压缩格式
文件格式 | 压缩格式 | 导出方式 | ||||
---|---|---|---|---|---|---|
INSERT INTO FILES | INSERT INTO Catalog | EXPORT | ||||
Hive | Iceberg | Hudi/Delta | ||||
CSV |
| 待支持 | 待支持 | 待支持 | 待支持 | 待支持 |
JSON | N/A | N/A | N/A | N/A | N/A | N/A |
Parquet |
| Yes (v3.2+) | Yes (v3.2+) | Yes (v3.2+) |