Doris支持的数据导入方式
1、Broker load
通过 Broker 进程访问并读取外部数据源(如 HDFS)导入到 Doris。用户通过 Mysql协议提交导入作业后,异步执行。通过 SHOW LOAD 命令查看导入结果。
源数据在 Broker 可以访问的存储系统中,如 HDFS。数据量在几十到百 GB 级别。
创建导入的详细语法执行 HELP BROKER LOAD 查看语法帮助。这里主要介绍 Broker
load 的创建导入语法中参数意义和注意事项。
1)label
导入任务的标识。每个导入任务,都有一个在单 database 内部唯一的 Label。Label 是用户在导入命令中自定义的名称。通过这个 Label,用户可以查看对应导入任务的执行情况。
Label 的另一个作用,是防止用户重复导入相同的数据。强烈推荐用户同一批次数据使用相同的 label。这样同一批次数据的重复请求只会被接受一次,保证了 At-Most-Once 语义
当 Label 对应的导入作业状态为 CANCELLED 时,可以再次使用该 Label 提交导入作业。
2) 导入示例
|
2、Stream load
用户通过 HTTP 协议提交请求并携带原始数据创建导入。主要用于快速将本地文件或
数据流中的数据导入到 Doris。导入命令同步返回导入结果
3、insert
类似 MySQL 中的 Insert 语句,Doris 提供 INSERT INTO tbl SELECT ...; 的方式从
Doris 的表中读取数据并导入到另一张表。或者通过 INSERT INTO tbl VALUES(...); 插入单
条数据。
4、Multi load
用户通过 HTTP 协议提交多个导入作业。Multi Load 可以保证多个导入作业的原子生
效。
5、Routine load
用户通过 MySQL 协议提交例行导入作业,生成一个常驻线程,不间断的从数据源(如
Kafka)中读取数据并导入到 Doris 中。
6、通过 S3 协议直接导入
用户通过 S3 协议直接导入数据,用法和 Broker Load 类似。
Broker load 是一个异步的导入方式,支持的数据源取决于 Broker 进程支持的数据源。
用户需要通过 MySQL 协议创建 Broker load 导入,并通过查看导入命令检查导入结果。
