1.datax介绍:
DataX是一个单进程多线程的ETL工具,解压后配置好任务的json文件即可使用,即使是单节点但Datax在大数据量下的同步数据依然飞快。
2.下载安装:
# 下载
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
# 解压缩,即可完成安装
tar -zxvf datax.tar.gz
3.使用
3.1 Datax最重要的两个组件,一是Reader负责读取数据源,二是Writer负责写数据目的地。在datax的plugin目录下,会有着reader和writer两个目录,在reader目录下的文件夹,代表datax可以与对应的数据库组件建立连接,从而读取数据,其实datax对应的reader文件夹下都是对应的jdbc连接jar包。而writer目录下,则是可以进行写入的数据库组件。


3.2 创建hbase表:
# 测试表,只创建一个列族
create 'datax','info'
3.3 datax的json配置文件编写:
{
"job": {
"setting": {
"speed": {
"channel": 5
}
},
"content": [
{
"reader": {
"name": "clickhousereader",
"parameter": {
"connection": [
{
#查询clickhouse的语句,本次查询两个字段,date1作为rowkey,date2作为hbase的info列族的q1列的值
"querySql": ["select date1, date2 from ods_test_date_all"],
"jdbcUrl": [
"jdbc:clickhouse://clickhouse:8123/default?socket_timeout=7200000"
]
}
],
"column": [
{
"index": 0,
"type": "String"
},
{
"index": 1,
"type": "string"
}
],
"encoding": "utf-8",
"username": "root",
"password": "root"
}
},
"writer": {
"name": "hbase11xwriter",
"parameter": {
"hbaseConfig": {
"hbase.zookeeper.quorum": "hadoop1:2181,hadoop2:2181,hadoop3:2181"
},
"table": "datax1",
"mode": "normal",
"rowkeyColumn": [ # 选择那个字段作为rowkey
{
"index":0, #下标0,也就是clickhosue查询语句的第一个字段
"type":"string"
}
],
"column": [ # 定义列族的值
{
"index":1, #下标1,也就是clickhosue查询语句的第二个字段
"name": "info:q1",
"type": "string"
}
],
"versionColumn":{
"index": -1,
"value":"123456789"
},
"encoding": "utf-8"
}
}
}
]
}
}
3.4 同步140万数据测试一下: 可以看到,从clickhouse同步140万条数据到hbase只需要20秒,可以说是非常之快的。
