在前面我们介绍了一些doris的数据导入方式,这篇文章我们再介绍一个使用Datax的方式把数据导入到doris中去。
datax是阿里巴巴开源的一款数据迁移工具,在工作中我们经常会使用到。他可以从一个数据源把数据写入另外一个数据源。非常的方便,因此这里我们演示下使用Datax把数据导入到Doris中去。
下面我们演示的场景是使用datax从源mysql把数据导入到doris中去。
一、下载Datax的doris writer
这里的编译的话,可以参考此文章《使用Datax源码编译DorisWriter介绍》。编译完之后,我们把他放到datax的plugin/writer目录下。
二、在mysql中创建表
使用如下sql创建表
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL COMMENT '姓名', `age` tinyint(3) DEFAULT NULL COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
然后插入几条数据
INSERT INTO `demo`.`user` (`id`, `name`, `age`) VALUES (1, '张三', 25); INSERT INTO `demo`.`user` (`id`, `name`, `age`) VALUES (2, '李四', 20);
这里我们的表是:
三、在doris中创建一张user表
在doris中我们创建一张user表,用来装载mysql导入过来的数据,创建表的sql语句如下:
CREATE TABLE `user` ( `id` int(11) NOT NULL COMMENT "", `name` varchar(20) NULL COMMENT "姓名", `age` tinyint(4) NULL COMMENT "年龄" ) ENGINE=OLAP UNIQUE KEY(`id`) COMMENT "OLAP" DISTRIBUTED BY HASH(`id`) BUCKETS 1 PROPERTIES ( "replication_allocation" = "tag.location.default: 1", "in_memory" = "false", "storage_format" = "V2" );
这里我们创建的是一张和mysql一样的表。
四、编写datax的配置文件
这里我们直接粘贴datax的配置文件即可。
{ "job": { "setting": { "speed": { "channel": 3, "byte": 1048576 }, "errorLimit": { "record": 0, "percentage": 0.02 } }, "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "yRjwDFuoPKlqya9h9H2Amg==", "password": "XCYVpFosvZBBWobFzmLWvA==", "column": [ "`id`", "`name`", "`age`" ], "splitPk": "", "connection": [ { "table": [ "user" ], "jdbcUrl": [ "jdbc:mysql://121.37.103.180:3307/demo?useUnicode=true&useJDBCCompliantTimezoneShift=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8" ] } ] } }, "writer": { "name": "doriswriter", "parameter": { "loadUrl": [ "121.37.103.180:8040" ], "column": [ "id", "name", "age" ], "username": "root", "password": "", "flushInterval": 30000, "connection": [ { "jdbcUrl": "jdbc:mysql://121.37.103.180:9030/demo", "selectedDatabase": "demo", "table": [ "user" ] } ], "loadProps": { "format": "json", "strip_outer_array": true } } } } ] } }
然后我们执行一下
可以看到执行成功了,然后我们再去看下doris表是否有数据
没有任何问题,这里我们使用doris导入就成功了。
备注:
1、在datax的配置文件里面,doris的loadurl端口需要写成8040,官网使用的是8030,导入会出问题。报错:Caused by: org.apache.http.ProtocolException: Content-Length header already present。所以我们直接使用be的端口即可,这里的8040是Be的端口,8030是Fe的端口。
2、本文的贴图使用的是datax-web,具体的使用可参考如下文章:《使用datax-web搭建一个可视化的数据迁移平台》
还没有评论,来说两句吧...