功能支持:数据导入和导出
本文档概述了 StarRocks 支持的各种数据加载和卸载方法的功能。
文件格式
导入文件格式
数据源 | 文件格式 | |||||||
---|---|---|---|---|---|---|---|---|
CSV | JSON [3] | Parquet | ORC | Avro | ProtoBuf | Thrift | ||
Stream Load | 本地文件系统,应用程序,连接器 | 是 | 是 | 待支持 | 待支持 | 待支持 | ||
INSERT from FILES | HDFS, S3, OSS, Azure, GCS, NFS(NAS) [5] | 是 (v3.3+) | 待支持 | 是 (v3.1+) | 是 (v3.1+) | 是 (v3.4.4+) | 待支持 | |
Broker Load | 是 | 是 (v3.2.3+) | 是 | 是 | 待支持 | |||
Routine Load | Kafka | 是 | 是 | 待支持 | 待支持 | 是 (v3.0+) [1] | 待支持 | 待支持 |
Spark Load | 是 | 待支持 | 是 | 是 | 待支持 | |||
连接器 | Flink, Spark | 是 | 是 | 待支持 | 待支持 | 待支持 | ||
Kafka Connector [2] | Kafka | 是 (v3.0+) | 待支持 | 待支持 | 是 (v3.0+) | 待支持 | ||
PIPE [4] | 与 INSERT from FILES 一致 |
[1], [2]: 需要 Schema Registry。
[3]: JSON 支持多种 CDC 格式。有关 StarRocks 支持的 JSON CDC 格式的详细信息,请参见 JSON CDC 格式。
[4]: 目前,只有 INSERT from FILES 支持通过 PIPE 进行加载。
[5]: 您需要将 NAS 设备挂载为每个 BE 或 CN 节点相同目录下的 NFS,才能通过 file://
协议访问 NFS 中的文件。
JSON CDC 格式
Stream Load | Routine Load | Broker Load | INSERT from FILES | Kafka Connector [1] | |
---|---|---|---|---|---|
Debezium | 待支持 | 待支持 | 待支持 | 待支持 | 是 (v3.0+) |
Canal | 待支持 | ||||
Maxwell |
[1]: 在 StarRocks 中将 Debezium CDC 格式数据加载到主键表时,必须配置 transforms
参数。
导出文件格式
目标 | 文件格式 | |||||
---|---|---|---|---|---|---|
表格式 | 远程存储 | CSV | JSON | Parquet | ORC | |
INSERT INTO FILES | N/A | HDFS, S3, OSS, Azure, GCS, NFS(NAS) [3] | 是 (v3.3+) | 待支持 | 是 (v3.2+) | 是 (v3.3+) |
INSERT INTO Catalog | Hive | HDFS, S3, OSS, Azure, GCS | 是 (v3.3+) | 待支持 | 是 (v3.2+) | 是 (v3.3+) |
Iceberg | HDFS, S3, OSS, Azure, GCS | 待支持 | 待支持 | 是 (v3.2+) | 待支持 | |
Hudi/Delta | 待支持 | |||||
EXPORT | N/A | HDFS, S3, OSS, Azure, GCS | 是 [1] | 待支持 | 待支持 | 待支持 |
PIPE | 待支持 [2] |
[1]: 支持配置 Broker 进程。
[2]: 目前,不支持使用 PIPE 导出数据。
[3]: 您需要将 NAS 设备挂载为每个 BE 或 CN 节点相同目录下的 NFS,才能通过 file://
协议访问 NFS 中的文件。
文件格式相关参数
导入文件格式相关参数
文件格式 | 参数 | 导入方式 | ||||
---|---|---|---|---|---|---|
Stream Load | INSERT from FILES | Broker Load | Routine Load | Spark Load | ||
CSV | column_separator | 是 | 是 (v3.3+) | 是 [1] | ||
row_delimiter | 是 | 是 [2] (v3.1+) | 是 [3] (v2.2+) | 待支持 | ||
enclose | 是 (v3.0+) | 是 (v3.0+) | 是 (v3.0+) | 待支持 | ||
escape | ||||||
skip_header | 待支持 | |||||
trim_space | 是 (v3.0+) | |||||
JSON | jsonpaths | 是 | 待支持 | 是 (v3.2.3+) | 是 | 待支持 |
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 | 是 (v3.3+) | 是 |
line_delimiter [1] |
[1]: 数据导入中对应的参数是 row_delimiter
。
压缩格式
导入压缩格式
文件格式 | 压缩格式 | 导入方式 | ||||
---|---|---|---|---|---|---|
Stream Load | Broker Load | INSERT from FILES | Routine Load | Spark Load | ||
CSV |
| 是 [1] | 是 [2] | 待支持 | 待支持 | 待支持 |
JSON | 是 (v3.2.7+) [3] | 待支持 | N/A | 待支持 | N/A | |
Parquet |
| N/A | 是 [4] | 待支持 | 是 [4] | |
ORC |
[1]: 目前,只有在使用 Stream Load 加载 CSV 文件时,才能使用 format=gzip
指定压缩格式,表示 gzip 压缩的 CSV 文件。也支持 deflate
和 bzip2
格式。
[2]: Broker Load 不支持使用参数 format
指定 CSV 文件的压缩格式。 Broker Load 通过文件的后缀名识别压缩格式。 gzip 压缩文件的后缀名为 .gz
,zstd 压缩文件的后缀名为 .zst
。 此外,不支持其他与 format
相关的参数,例如 trim_space
和 enclose
。
[3]: 支持使用 compression = gzip
指定压缩格式。
[4]: Arrow Library 支持。您无需配置 compression
参数。
导出压缩格式
文件格式 | 压缩格式 | 导出方式 | ||||
---|---|---|---|---|---|---|
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 |
| 是 (v3.2+) | 是 (v3.2+) | 是 (v3.2+) | 待支持 | N/A |
ORC |
凭据
导入 - 身份验证
身份验证 | 导入方式 | ||||
---|---|---|---|---|---|
Stream Load | INSERT from FILES | Broker Load | Routine Load | 外部 Catalog | |
单 Kerberos | N/A | 是 (v3.1+) | 是 [1] (v2.5 之前的版本) | 是 [2] (v3.1.4+) | 是 |
Kerberos Ticket Granting Ticket (TGT) | N/A | 待支持 | 是 (v3.1.10+/v3.2.1+) | ||
单 KDC 多 Kerberos | N/A | ||||
基本访问身份验证 (Access Key pair, IAM Role) | N/A | 是 (HDFS 和 S3 兼容的对象存储) | 是 [3] | 是 |
[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 | 是 (v3.0+) | 是 [1] (v3.3+) | 是 (v3.0+) | N/A | 是 (v3.0+) | 待支持 | ||
partial_update_mode | 是 (v3.1+) | 待支持 | 是 (v3.1+) | N/A | 待支持 | 待支持 | ||
COLUMNS FROM PATH | N/A | 是 (v3.2+) | N/A | 是 | N/A | N/A | 是 | |
timezone 或会话变量 time_zone [2] | 是 [3] | 是 [4] | 是 [4] | 是 [4] | 待支持 | 是 [4] | 待支持 | |
时间精度 - 微秒 | 是 | 是 | 是 | 是 (v3.1.11+/v3.2.6+) | 待支持 | 是 | 是 |
[1]: 从 v3.3 开始,StarRocks 支持通过指定列列表在行模式下对 INSERT INTO 进行部分更新。
[2]: 通过参数或会话变量设置时区会影响诸如 strftime(),alignment_timestamp() 和 from_unixtime() 等函数返回的结果。
[3]: 仅支持参数 timezone
。
[4]: 仅支持会话变量 time_zone
。
导出 - 其他参数和特性
参数和特性 | INSERT INTO FILES | EXPORT |
---|---|---|
target_max_file_size | 是 (v3.2+) | 待支持 |
single | ||
Partitioned_by | ||
会话变量 time_zone | 待支持 | |
时间精度 - 微秒 | 待支持 | 待支持 |