Doris进阶——数据导入

本文详细介绍了Doris的数据导入方式,包括Broker Load(支持HDFS,大规模数据导入)、StreamLoad(同步导入,支持CSV、JSON)、RoutineLoad(从Kafka导入数据)和Binlog Load(通过Mysql binlog实现增量同步)。每种方式的原理、使用示例和相关操作命令均有阐述。
摘要由CSDN通过智能技术生成

数据导入:

将用户的原始数据导入到Doris中,导入成功后可以通过Mysql客户端进行查询。所有的导入方式都支持CSV格式,其中Broker Load 中支持parquet和orc数据格式。

Broker Load导入方式:

通过Broker进程访问读取外部数据源(HDFS)的数据导入到Doris中,数据量在几十到百GB级别。通过SHOW LOAD命令查看导入结果。

基本原理:用户在提交导入任务后,FE会生成对应的Plan并根据目前BE的个数和文件的大小,将Plan分给多个Plan执行,每个BE执行一部分导入数据。BE在执行的过程中会从Borker拉去数据,在对数据transform之后将数据导入系统。所有BE均完成导入,由FE最终决定是否导入成功。

LOAD LABEL db_name.label_name -- 数据库.导入任务的标识
(data_desc, ...) 
WITH BROKER broker_name broker_properties -- broker的名称
[PROPERTIES (key1=value1, ... )]

* data_desc:

    DATA INFILE ('file_path', ...) -- 数据源地址
    [NEGATIVE]
    INTO TABLE tbl_name -- 导入的表名
    [PARTITION (p1, p2)] -- 导入分区指定
    [COLUMNS TERMINATED BY separator ] -- 指定分隔符
    [(col1, ...)] -- 可指定列(c1,c2,c3,c4)
    [PRECEDING FILTER predicate]
    [SET (k1=f1(xx), k2=f2(xx))] -- 对应列名(id=ci,name=c2......)
    [WHERE predicate]

* broker_properties: 

    (key1=value1, ...) -- 指定一些数据源的参数,比如HDFS开启了HA模式,要指定相应的参数

示例:

--建Doris表 
create table broker_test
(
id int ,
name varchar(50),
age int 
)
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 8;

-- 创建Broker的导入任务

LOAD LABEL test.broker_2
(
DATA INFILE("hdfs://test01:8020/student.csv")
INTO TABLE `broker_test`
COLUMNS TERMINATED BY ","
FORMAT AS "csv"
(id, name, age)
)
WITH BROKER broker_name
(
--HDFS HA模式参数
"dfs.nameservices" = "my_cluster",
"dfs.ha.namenodes.my_cluster" = "nn1,nn2,nn3",
"dfs.namenode.rpc-address.my_cluster.nn1" = "test01:8020",
"dfs.namenode.rpc-address.my_cluster.nn2" = "test02:8020",
"dfs.namenode.rpc-address.my_cluster.nn3" = "test03:8020",
"dfs.client.failover.proxy.provider" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyPro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小眼睛的Ayuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值