DataX-将ODPS数据离线同步到Clickhouse
(一)准备
1.下载并安装DataX
(1)下载DataX
① 打开DataX Github网址:https://github.com/alibaba/DataX。
② 找到Quick Start,点击“DataX下载地址”,即可下载datax.tar.gz。

(2)安装DataX
① 上传到linux服务器。
② 执行如下命令解压压缩包。
tar -xvzf datax.tar.gz -C /home/;
2.准备测试表和数据
(1)在ODPS中创建测试表
CREATE TABLE IF NOT EXISTS nation ( n_nationkey BIGINT, n_name STRING, n_regionkey BIGINT, n_comment STRING ) lifecycle 30 ; insert into nation values(1,'00001',1,'00001'),(2,'00002',2,'00002'),(3,'00003',3,'00003');
(2)在clickhouse中创建目标表
create table nation_local ( `n_nationkey` Int64, `n_name` String, `n_regionkey` Int64, `n_comment` String ) ENGINE = MergeTree ORDER BY (n_name,n_regionkey) SETTINGS index_granularity = 8192 ;
(二)配置job任务
编辑datax的配置文件:
vi /home/datax/job/job.json ;
设置odpsreader和clickhousewriter的内容:
{ "job":{ "content": [ { "reader": { "name": "odpsreader", "parameter": { "accessId": "<yourAccessId>", "accessKey": "<yourAccessKey>", "project": "<yourProjectName>", "table": "table1", "partition": [], "column": ["N_NATIONKEY","N_NAME","N_REGIONKEY","N_COMMENT"], "packageAuthorizedProject": "", "splitMode": "", "odpsServer": "http://service.****************.com.cn/api" } }, "writer": { "name": "clickhousewriter", "parameter": { "username": "default", "password": "123456", "column": ["n_nationkey", "n_name", "n_regionkey","n_comment"], "connection": [ { "jdbcUrl": "jdbc:clickhouse://<host>:<port>[/<database>]", "table": ["table1"] } ], "preSql": [], "postSql": [], "batchSize": 65536, "batchByteSize": 134217728, "dryRun": false, "writeMode": "insert" }
} } ], "setting":{ "speed":{ "channel":"1" } } } }
关键参数说明:

odpsreader的配置demo可以进入/home/datax/plugin/reader/odpsreader中找到对应的示例,即plugin_job_template.json。
clickhousewrite的配置demo可以进入/home/datax/plugin/writer/clickhousewriter中找到对应的示例,即plugin_job_template.json。
(三)测试job任务
1.启动执行job任务
cd /home/datax/bin/;
python datax.py myjob.json ;
2.查看clickhouse数据是否成功
(1)登录clickhouse客户端,使用tpch100g数据库。
clickhouse-client --port 9001 --password 123456
注意:我这里使用的客户端端口不是默认的端口。
连接成功后,进入tpch100g数据库。
use tpch100g;

(2)查询目标表数据
select * from nation_local ;

(3)退出连接
quit ;

本文来自博客园,作者:业余砖家,转载请注明原文链接:https://www.cnblogs.com/yeyuzhuanjia/articles/16876146.html

浙公网安备 33010602011771号