全量数据导出

          PALO

          全量数据导出

          全量数据导出(Export)是 Doris 提供的一种将数据导出的功能。

          该功能可以将用户指定的表或分区的数据,以文本的格式,通过 Broker 进程导出到远端存储上,如 HDFS/BOS 等。

          本文档主要介绍 Export 功能的基本使用方式。

          功能介绍

          Export 功能是一个异步执行的作业。用户通过 Export 语句指定需要导出的表或者表中某些分区后,系统将生成分布式数据扫描计划,由多个 Compute Node 节点共同完成数据扫描读取的工作,并通过 Broker 进程写到远端存储上。

          导出功能的最小粒度是表的分区。

          目前的导出功能较为简单,仅支持对表进行全列导出,不支持对表中列进行映射、转换和过滤操作。

          提交导出作业

          通过如下语句提交一个导出作业

          EXPORT TABLE example_tbl
          PARTITION(p1, p2)
          TO "bos://my_bucket/export/"
          WITH BROKER "bos"
          (
              "bos_endpoint" = "http://bj.bcebos.com",
              "bos_accesskey" = "xxxxxxxxxxxxxxxxxxxxxxxxxx",
              "bos_secret_accesskey"="yyyyyyyyyyyyyyyyyyyy"
          );

          该语句指定将 example_tbl 表的 p1p2 两个分区导出到 BOS 的 bos://my_bucket/export/ 目录下。

          导出命令的详细帮助,请参阅 EXPORT

          导出作业的执行

          导出作业会生成多个查询计划,每个查询计划负责扫描一部分数据分片(Tablet)。

          每个查询计划默认扫描 5 个 Tablet。即假设一共 100 个 Tablet,则会生成 20 个查询计划。

          用户也可以在提交作业时,通过作业属性 tablet_num_per_task 指定这个数值。

          一个作业的多个查询计划顺序执行。

          一个查询计划扫描多个分片,将读取的数据以行的形式组织,每 1024 行为一个批次,调用 Broker 写入到远端存储上。

          查询计划遇到错误会整体自动重试 3 次。如果一个查询计划重试 3 次依然失败,则整个作业失败。

          导出文件的结构

          导出作业会首先在指定的远端存储的路径中,建立一个名为 __doris_export_tmp_12345 的临时目录(其中 12345 为作业 id)。

          导出的数据首先会写入这个临时目录。每个查询计划会生成一个文件,文件名示例:

          export-data-c69fcf2b6db5420f-a96b94c1ff8bccef-1561453713822

          其中 c69fcf2b6db5420f-a96b94c1ff8bccef 为查询计划的 ID。1561453713822 为文件生成的时间戳。

          当所有数据都导出后,Doris 会将这些文件移动到用户指定的路径中。

          查看作业进度

          提交作业后,可以通过 SHOW EXPORT 命令查询导入作业状态。结果举例如下:

               JobId: 14008
               State: FINISHED
            Progress: 100%
            TaskInfo: {"partitions":["p1", "p2"],"exec mem limit":2147483648,"column separator":",","line delimiter":"\n","tablet num":1,"broker":"hdfs","coord num":1,"db":"default_cluster:db1","tbl":"tbl3"}
                Path: bos://my_bucket/export/
          CreateTime: 2019-06-25 17:08:24
           StartTime: 2019-06-25 17:08:28
          FinishTime: 2019-06-25 17:08:34
             Timeout: 3600
            ErrorMsg: N/A

          当作业状态为 FINISHED 时,即表示导出完成。

          关于 SHOW EXPORT 的详细帮助,请参阅:SHOW EXPORT

          上一篇
          导出总览
          下一篇
          导出查询结果集