产品概述
基本概念
集群架构
产品优势
应用场景
+--------+| Client |+---+----+| 1. Submit Job|+---v--------------------+| FE || || +-------------------+ || | ExportPendingTask | || +-------------------+ || | 2. Generate Tasks| +--------------------+ || | ExportExporingTask | || +--------------------+ || || +-----------+ | +----+ +------+ +---------+| | QueryPlan +----------------> BE +--->Broker+---> || +-----------+ | +----+ +------+ | Remote || +-----------+ | +----+ +------+ | Storage || | QueryPlan +----------------> BE +--->Broker+---> || +-----------+ | +----+ +------+ +---------++------------------------+ 3. Execute Tasks
export_tablet_num_per_task 指定,默认为 5。即假设一共 100 个 Tablet,则会生成 20 个查询计划。用户也可以在提交作业时,通过作业属性 tablet_num_per_task 指定这个数值。
一个作业的多个查询计划顺序执行。__doris_export_tmp_12345 的临时目录(其中 12345 为作业 id)。导出的数据首先会写入这个临时目录。每个查询计划会- 生成一个文件,文件名示例:export-data-c69fcf2b6db5420f-a96b94c1ff8bccef-1561453713822。其中 c69fcf2b6db5420f-a96b94c1ff8bccef 为查询计划的 query id。1561453713822 为文件生成的时间戳。EXPORT TABLE db1.tbl1PARTITION (p1,p2)[WHERE [expr]]TO "hdfs://host/path/to/export/"PROPERTIES("label" = "mylabel","column_separator"=",","columns" = "col1,col2","exec_mem_limit"="2147483648","timeout" = "3600")WITH BROKER "hdfs"("username" = "user","password" = "passwd");
label:本次导出作业的标识。后续可以使用这个标识查看作业状态。column_separator:列分隔符。默认为 \\t。支持不可见字符,例如 '\\x07'。columns:要导出的列,使用英文状态逗号隔开,如果不填这个参数默认是导出表的所有列。line_delimiter:行分隔符。默认为 \\n。支持不可见字符,例如 '\\x07'。exec_mem_limit: 表示 Export 作业中,一个查询计划在单个 BE 上的内存使用限制。默认 2GB。单位字节。timeout:作业超时时间。默认 2小时。单位秒。tablet_num_per_task:每个查询计划分配的最大分片数。默认为 5。EXPORT TABLE db.tableTO "s3://your_bucket/xx_path"PROPERTIES("label"="your_label","line_delimiter"="\\n","column_separator"="\\001")WITH S3("AWS_ENDPOINT" = "http://cos.ap-beijing.myqcloud.com","AWS_ACCESS_KEY" = "AWS_ACCESS_KEY","AWS_SECRET_KEY"="AWS_SECRET_KEY","AWS_REGION"="AWS_REGION");
AWS_ACCESS_KEY/AWS_SECRET_KEY:是您访问 OSS API 的密钥。AWS_ENDPOINT:表示 OSS 的数据中心所在的地域。AWS_REGION:Endpoint 表示 OSS 对外服务的访问域名。mysql> show EXPORT\\G;*************************** 1. row ***************************JobId: 14008State: FINISHEDProgress: 100%TaskInfo: {"partitions":["*"],"exec mem limit":2147483648,"column separator":",","line delimiter":"\\n","tablet num":1,"broker":"hdfs","coord num":1,"db":"default_cluster:db1","tbl":"tbl3"}Path: hdfs://host/path/to/export/CreateTime: 2019-06-25 17:08:24StartTime: 2019-06-25 17:08:28FinishTime: 2019-06-25 17:08:34Timeout: 3600ErrorMsg: NULL1 row in set (0.01 sec)
* 表示所有分区。SHOW TABLET FROM tbl_name; 语句查看)。扫描-导出 两部分,不涉及需要太多内存的计算逻辑。所以通常 2GB 的默认内存限制可以满足需求。但在某些场景下,例如一个查询计划,在同一个 BE 上需要扫描的 Tablet 过多,或者 Tablet 的数据版本过多时,可能会导致内存不足。此时需要通过这个参数设置更大的内存,例如 4GB、8GB 等。
https://cos.[region_id].myqcloud.com

EXPORT TABLE lineitem TO "s3://doris-1301087413/doris-export/export_test"WITH s3 ("AWS_ENDPOINT" = "https://cos.ap-guangzhou.myqcloud.com","AWS_ACCESS_KEY" = "xxxSecretId","AWS_SECRET_KEY"="xxxSecretKey","AWS_REGION" = "ap-guangzhou");

LOAD LABEL test_db.exmpale_label_4(DATA INFILE("s3://doris-1301087413/doris-export/export_test/*")INTO TABLE test_tb COLUMNS TERMINATED BY "\\t")WITH S3("AWS_ENDPOINT" = "https://cos.ap-guangzhou.myqcloud.com","AWS_ACCESS_KEY" = "xxxxx", "AWS_SECRET_KEY"="xxxx","AWS_REGION" = "ap-guangzhou")PROPERTIES("timeout" = "7600");
EXPORT TABLE orders TO "hdfs://hdfs_ip:hdfs_port/your_path"PROPERTIES ("column_separator"="\\t","line_delimiter" = "\\n")WITH BROKER "Broker_Doris" ("username"="-","password"="-")

LOAD LABEL tpchdb.load_orders_recover(DATA INFILE("hdfs://hdfs_ip:hdfs_port/your_path/*")INTO TABLE orders_recoverCOLUMNS TERMINATED BY "\\t")WITH BROKER "Broker_Doris"("username" = "-","password" = "-!")PROPERTIES("timeout"="1200","max_filter_ratio"="0.1");

ADMIN SET FRONTEND CONFIG ("max_bytes_per_broker_scanner" = "52949672960");ADMIN SET FRONTEND CONFIG ("max_broker_concurrency" = "3");
__doris_export_tmp_xxx 临时目录,以及已经生成的文件不会被删除,需要用户手动删除。__doris_export_tmp_xxx 目录,根据远端存储的文件系统语义,可能会保留,也可能会被清除。例如在百度对象存储(BOS)中,通过 rename 操作将一个目录中的最后一个文件移走后,该目录也会被删除。如果该目录没有被清除,用户可以手动清除。SHOW EXPORT 展示的作业的部分信息会丢失,无法查看。export_checker_interval_second:Export 作业调度器的调度间隔,默认为 5 秒。设置该参数需重启 FE。export_running_job_num_limit:正在运行的 Export 作业数量限制。如果超过,则作业将等待并处于 PENDING 状态。默认为 5,可以运行时调整。export_task_default_timeout_second:Export 作业默认超时时间。默认为 2 小时。可以运行时调整。export_tablet_num_per_task:一个查询计划负责的最大分片数。默认为 5。文档反馈