datax将clickhouse数据导入Hbase数据库,详细教程

1,645 阅读1分钟

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秒,可以说是非常之快的。