Files
doris/docs/zh-CN/sql-reference/sql-statements/Data Manipulation/EXPORT.md
Mingyu Chen fcd15edbf9 [Export] Support export job with label (#6835)
```
EXPORT TABLE xxx
...
PROPERTIES
(
    "label" = "mylabel",
    ...
);
```

And than user can use label to get the info by SHOW EXPORT stmt:
```
show export from db where label="mylabel";
```

For compatibility, if not specified, a random label will be used. And for history jobs, the label will be "export_job_id";

Not like LOAD stmt, here we specify label in `properties` because this will not cause grammatical conflicts,
and there is no need to modify the meta version of the metadata.
2021-10-15 10:18:11 +08:00

4.6 KiB

title, language
title language
EXPORT zh-CN

EXPORT

description

该语句用于将指定表的数据导出到指定位置。
该功能通过 broker 进程实现。对于不同的目的存储系统,需要部署不同的 broker。可以通过 SHOW BROKER 查看已部署的 broker。
这是一个异步操作,任务提交成功则返回。执行后可使用 SHOW EXPORT 命令查看进度。

语法:
    EXPORT TABLE table_name
    [PARTITION (p1[,p2])]
    [WHERE [expr]]
    TO export_path
    [opt_properties]
    [broker|S3];

1. table_name
  当前要导出的表的表名,目前支持engine为olap和mysql的表的导出。

2. partition
  可以只导出指定表的某些指定分区

3. expr
  导出满足 where 条件的行,选填。不填则默认导出所有行。

4. export_path
  导出的路径,需为目录。支持导出到本地,hdfs,百度bos,s3协议的其他存储系统。

5. opt_properties
  用于指定一些特殊参数。
      语法:
      [PROPERTIES ("key"="value", ...)]
    
      可以指定如下参数:
        label: 指定一个自定义作业标识。后续可以使用这个标识查看作业状态。
        column_separator: 指定导出的列分隔符,默认为\t。支持不可见字符,比如 '\x07'。
        column: 指定待导出的列,使用英文逗号隔开,如果不填这个参数默认是导出表的所有列。
        line_delimiter: 指定导出的行分隔符,默认为\n。支持不可见字符,比如 '\x07'。
        exec_mem_limit: 导出在单个 BE 节点的内存使用上限,默认为 2GB,单位为字节。
        timeout:导入作业的超时时间,默认为1天,单位是秒。
        tablet_num_per_task:每个子任务能分配的最大 Tablet 数量。

6. broker|s3
  指定使用broker导出或者通过S3协议导出
      语法:
      WITH [BROKER broker_name | S3] ("key"="value"[,...])
      这里需要指定具体的broker name, 以及所需的broker属性, 如果使用S3协议则无需指定broker name

  对于不同存储系统对应的 broker,这里需要输入的参数不同。具体参数可以参阅:`help broker load` 中 broker 所需属性。
  导出到本地时,不需要填写这部分。

example

1. 将 testTbl 表中的所有数据导出到 hdfs 上
    EXPORT TABLE testTbl TO "hdfs://hdfs_host:port/a/b/c" WITH BROKER "broker_name" ("username"="xxx", "password"="yyy");

2. 将 testTbl 表中的分区p1,p2导出到 hdfs 上
    EXPORT TABLE testTbl PARTITION (p1,p2) TO "hdfs://hdfs_host:port/a/b/c" WITH BROKER "broker_name" ("username"="xxx", "password"="yyy");

3. 将 testTbl 表中的所有数据导出到 hdfs 上,以","作为列分隔符,并指定label
    EXPORT TABLE testTbl TO "hdfs://hdfs_host:port/a/b/c" PROPERTIES ("label" = "mylabel", "column_separator"=",") WITH BROKER "broker_name" ("username"="xxx", "password"="yyy");

4. 将 testTbl 表中 k1 = 1 的行导出到 hdfs 上。
    EXPORT TABLE testTbl TO "hdfs://hdfs_host:port/a/b/c" WHERE k1=1 WITH BROKER "broker_name" ("username"="xxx", "password"="yyy");

5. 将 testTbl 表中的所有数据导出到本地。
    EXPORT TABLE testTbl TO "file:///home/data/a";

6. 将 testTbl 表中的所有数据导出到 hdfs 上,以不可见字符 "\x07" 作为列或者行分隔符。
    EXPORT TABLE testTbl TO "hdfs://hdfs_host:port/a/b/c" PROPERTIES ("column_separator"="\\x07", "line_delimiter" = "\\x07") WITH BROKER "broker_name" ("username"="xxx", "password"="yyy")

7. 将 testTbl 表的 k1, v1 列导出到本地。
    EXPORT TABLE testTbl TO "file:///home/data/a" PROPERTIES ("columns" = "k1,v1");

keyword

EXPORT