clickhouse在上一篇转载的博客中已初步介绍,最近在公司项目中,遇到了数据库大量数据查询慢的问题,借此来实战clickhouse,本文重点介绍数据同步。
接下来重点讲一下,使用flume同步oracle数据至clickhouse。
安装flume
1. 下载flume
wget http://www.apache.org/dist/flume/1.5.2/apache-flume-1.5.2-bin.tar.gz
2. 解压安装
tar zxvf apache-flume-1.5.2-bin.tar.gz
打包flume-ng-sql-source
1. 在github上下载源码
https://github.com/keedio/flume-ng-sql-source
2. 本地编译打包
(1)为了能正确同步到clickhouse,需修改代码,如图:
将默认分隔符由‘,’改为‘\t’;(不改的话,插入数据到clickhouse会报错)
(2)编译打包:mvn package -Dmaven.test.skip=true
(3)将打包的jar包flume-ng-sql-source-1.5.2.jar,上传至flume的lib目录下。
打包flume-clickhouse-sink
这个相对麻烦一些,网上没有详细的资料,我这里尽量详细叙述,有问题可以联系我。
1. 下载flume-ng-kafka-sink
https://github.com/camathieu/flume-ng-kafka-sink.git
这里为什么下载flume-ng-kafka-sink,主要作为参考,将项目中的kafka-sink改为clickhouse-sink。
2. 改造
(1)将org.apache.flume.sink.kafka包下的KafkaSink全部屏蔽。
(2)修改pom,如图:
内容如下:
<project xmlns=