功能边界:数据导入导出
本文介绍了 StarRocks 导入导出的能力边界以及所涉及功能的支持版本。
文件格式
导入文件格式
数据源 | 文件格式 | |||||||
---|---|---|---|---|---|---|---|---|
CSV | JSON [3] | Parquet | ORC | Avro | ProtoBuf | Thrift | ||
Stream Load | 本地文件系统、应用及 Connector | Yes | Yes | 待支持 | 待支持 | 待支持 | ||
INSERT from FILES | HDFS, S3, OSS, Azure, GCS | 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。
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 | 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 导出数据。
文件格式相关参数
导入文件格式相关参数
文件格式 | 参数 | 导入方式 | ||||
---|---|---|---|---|---|---|
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+) | 待支持 | N/A |
ORC |
认证
导入认证
认证功能 | 导入方式 | ||||
---|---|---|---|---|---|
Stream Load | INSERT from FILES | Broker Load | Routine Load | External Catalog | |
单 Kerberos | N/A | Yes (v3.1+) | Yes [1] (versions earlier than v2.5) | Yes [2] (v3.1.4+) | Yes |
Kerberos 自动续签 | N/A | 待支持 | Yes (v3.1.10+/v3.2.1+) | ||
单 KDC 多 Kerberos | N/A | ||||
用户名密码认证 (Access Key pair, IAM Role) | N/A | Yes (HDFS 和兼容 S3 的对象存储) | Yes [3] | Yes |
[1]:对于HDFS,StarRocks 支持简单认证和 Kerberos 认证。
[2]:当安全协议设置为 sasl_plaintext
或 sasl_ssl
时,支持 SASL 和 GSSAPI(Kerberos)认证。
[3]:当安全协议设置为 sasl_plaintext
或 sasl_ssl
时,支持 SASL 和 PLAIN 认证。
导出认证
INSERT INTO FILES | EXPORT | |
---|---|---|
单 Kerberos | 待支持 | 待支持 |
导入相关其他参数或功能
参数和功能 | 导入方式 | |||||||
---|---|---|---|---|---|---|---|---|
Stream Load | INSERT from FILES | INSERT from SELECT/VALUES | Broker Load | PIPE | Routine Load | Spark Load | ||
partial_update | Yes (v3.0+) | Yes [1] (v3.3+) | Yes (v3.0+) | N/A | Yes (v3.0+) | 待支持 | ||
partial_update_mode | Yes (v3.1+) | 待支持 | Yes (v3.1+) | N/A | 待支持 | 待支持 | ||
COLUMNS FROM PATH | N/A | Yes (v3.2+) | N/A | Yes | N/A | N/A | Yes | |
timezone 或 Session 变量 time_zone [2] | Yes [3] | Yes [4] | Yes [4] | Yes [4] | 待支持 | Yes [4] | 待支持 | |
时间精度 - Microsecond | Yes | Yes | Yes | Yes (v3.1.11+/v3.2.6+) | 待支持 | Yes | Yes |
[1]:从 v3.3 版本开始,StarRocks 支持在 INSERT INTO 操作中通过指定 Column List 进行部分更新。
[2]:通过参数或 Session 变量设置时区会影响 strftime()
、alignment_timestamp()
和 from_unixtime()
等函数返回的结果。
[3]:仅支持参数 timezone
。
[4]:仅支持 Session 变量 time_zone
。
导出相关其他参数或功能
参数和功能 | INSERT INTO FILES | EXPORT |
---|---|---|
target_max_file_size | Yes (v3.2+) | 待支持 |
single | ||
Partitioned_by | ||
Session variable time_zone | 待支持 | |
Time accuracy - Microsecond | 待支持 | 待支持 |