功能支持:数据导入和导出
功能支持:数据导入和导出
本文档概述了 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 设备作为 NFS 挂载到每个 BE 或 CN 节点的同一目录下,才能通过 file:// 协议访问 NFS 中的文件。
JSON CDC 格式
| Stream Load | Routine Load | Broker Load | INSERT from FILES | Kafka Connector [1] | |
|---|---|---|---|---|---|
| Debezium | 待支持 | 待支持 | 待支持 | 待支持 | 是 (v3.0+) |
| Canal | 待支持 | ||||
| Maxwell | |||||
[1]: 将 Debezium CDC 格式的数据加载到 StarRocks 的 Primary Key 表中时,您必须配置 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 设备作为 NFS 挂载到每个 BE 或 CN 节点的同一目录下,才能通过 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 的 Partial Updates。
[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 | 待支持 | |
| 时间精度 - 微秒 | 待支持 | 待支持 |