功能边界:数据导入导出
本文介绍了 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 | 待支持 | 待支持 |