EXPORT
将表中的数据导出到指定位置。
这是一个异步操作。提交导出任务后会返回导出结果。您可以使用 SHOW EXPORT 查看导出任务的进度。
注意
只有拥有 StarRocks 表的 EXPORT 权限的用户才能导出 StarRocks 表中的数据。如果您没有 EXPORT 权限,请按照 GRANT 中提供的说明,将 EXPORT 权限授予您用于连接 StarRocks 集群的用户。
语法
EXPORT TABLE <table_name>
[PARTITION (<partition_name>[, ...])]
[(<column_name>[, ...])]
TO <export_path>
[opt_properties]
WITH BROKER
[broker_properties]
参数
-
table_name
表的名称。StarRocks 支持导出
engine
为olap
或mysql
的表的数据。 -
partition_name
要从中导出数据的分区。默认情况下,如果您不指定此参数,StarRocks 会导出表中所有分区的数据。
-
column_name
要从中导出数据的列。您使用此参数指定的列的顺序可以与表的模式不同。默认情况下,如果您不指定此参数,StarRocks 会导出表中所有列的数据。
-
export_path
要将表的数据导出到的位置。如果该位置包含路径,请确保路径以斜杠 (/) 结尾。否则,路径中最后一个斜杠 (/) 之后的部分将用作导出文件名的前缀。默认情况下,如果未指定文件名,则使用
data_
作为文件名前缀。 -
opt_properties
您可以为导出任务配置的可选属性。
语法
[PROPERTIES ("<key>"="<value>", ...)]
属性 描述 column_separator 要在导出文件中使用的列分隔符。默认值: \t
。line_delimiter 要在导出文件中使用的行分隔符。默认值: \n
。load_mem_limit 每个 BE 上导出任务允许的最大内存。单位:字节。默认最大内存为 2 GB。 timeout 导出任务超时的时间。单位:秒。默认值: 86400
,表示 1 天。include_query_id 指定导出的文件名是否包含 query_id
。有效值:true
和false
。值true
指定文件名包含query_id
,值false
指定文件名不包含query_id
。 -
WITH BROKER
在 v2.4 及更早版本中,输入
WITH BROKER "<broker_name>"
以指定要使用的 Broker。从 v2.5 开始,您不再需要指定 Broker,但仍需要保留WITH BROKER
关键字。 -
broker_properties
用于验证源数据的信息。身份验证信息因数据源而异。有关更多信息,请参见 BROKER LOAD。
示例
将表的所有数据导出到 HDFS
以下示例将 testTbl
表的所有数据导出到 HDFS 集群的 hdfs://<hdfs_host>:<hdfs_port>/a/b/c/
路径
EXPORT TABLE testTbl
TO "hdfs://<hdfs_host>:<hdfs_port>/a/b/c/"
WITH BROKER
(
"username"="xxx",
"password"="yyy"
);
将表中指定分区的数据导出到 HDFS
以下示例将 testTbl
表的两个分区 p1
和 p2
的数据导出到 HDFS 集群的 hdfs://<hdfs_host>:<hdfs_port>/a/b/c/
路径
EXPORT TABLE testTbl
PARTITION (p1,p2)
TO "hdfs://<hdfs_host>:<hdfs_port>/a/b/c/"
WITH BROKER
(
"username"="xxx",
"password"="yyy"
);
将表的所有数据导出到 HDFS,并指定列分隔符
以下示例将 testTbl
表的所有数据导出到 HDFS 集群的 hdfs://<hdfs_host>:<hdfs_port>/a/b/c/
路径,并指定逗号 (,
) 用作列分隔符
EXPORT TABLE testTbl
TO "hdfs://<hdfs_host>:<hdfs_port>/a/b/c/"
PROPERTIES
(
"column_separator"=","
)
WITH BROKER
(
"username"="xxx",
"password"="yyy"
);
以下示例将 testTbl
表的所有数据导出到 HDFS 集群的 hdfs://<hdfs_host>:<hdfs_port>/a/b/c/
路径,并指定 \x01
(Hive 支持的默认列分隔符)用作列分隔符
EXPORT TABLE testTbl
TO "hdfs://<hdfs_host>:<hdfs_port>/a/b/c/"
PROPERTIES
(
"column_separator"="\\x01"
)
WITH BROKER;
将表的所有数据导出到 HDFS,并指定文件名前缀
以下示例将 testTbl
表的所有数据导出到 HDFS 集群的 hdfs://<hdfs_host>:<hdfs_port>/a/b/c/
路径,并指定 testTbl_
用作导出文件名的前缀
EXPORT TABLE testTbl
TO "hdfs://<hdfs_host>:<hdfs_port>/a/b/c/testTbl_"
WITH BROKER;
将数据导出到 AWS S3
以下示例将 testTbl
表的所有数据导出到 AWS S3 存储桶的 s3-package/export/
路径
EXPORT TABLE testTbl
TO "s3a://s3-package/export/"
WITH BROKER
(
"aws.s3.access_key" = "xxx",
"aws.s3.secret_key" = "yyy",
"aws.s3.region" = "zzz"
);