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 ;

 

 

posted @ 2022-11-10 10:01  业余砖家  阅读(1113)  评论(0)    收藏  举报