跳到主要内容
版本: 最新版本-3.5

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 支持导出 engineolapmysql 的表的数据。

  • 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。有效值:truefalse。值 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 表的两个分区 p1p2 的数据导出到 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"
);