clickhouse + ProxySQL 单机部署及增量同步数据

本文介绍了在CentOS 7.6上单机部署clickhouse和proxysql,以及如何从MySQL同步数据到clickhouse,强调了clickhouse在OLAP场景中的优势。同步程序依赖python-mysql-replication,并且使用redis存储binlog位置。配置包括clickhouse的创建表和MergeTree引擎,以及proxysql的设置。通过自开发同步程序,实现了数据一致性且延迟较小。
摘要由CSDN通过智能技术生成

背景:

        随着数据量的上升,OLAP一直是被讨论的话题,虽然druid,kylin能够解决OLAP问题,但是druid,kylin也是需要和hadoop全家桶一起用的,异常的笨重。故引进clickhoue

  • clickhouse官网:ClickHouse - fast open-source OLAP DBMS
  • clickhouse官方性能测试:Page Redirection
  • clickhouse面对海量数据,比如单表过百亿可以使用集群(复制+分片);如果数据量比较小,比如单表10-20亿使用单机就足以满足查询需求。
  • 如果使用复制需要使用zk。

操作系统版本:

        目前线上使用的是centos 7.0的系统。之所以使用7.0的系统,是因为同步数据的程序是用python写的,而且用到的 一个核心包:python-mysql-replication需要使用python 2.7的环境。

        同时由于clickhouse(老版本)不兼容mysql协议,为了方便开发接入系统不用过多更改代码,引入了proxysql兼容mysql协议,clickhouse最新版本已经支持mysql协议,支持clickhouse的proxysql也需要python 2.7的环境,所以干脆直接用centos 7.0系统

测试环境:
服务器数量:1台
操作系统:centos 7.6
安装服务:clickhouse,mysql
 

clickhouse安装:

1、添加yum源并安装

curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash
yum install -y clickhouse-server clickhouse-client

2、服务启动

/etc/init.d/clickhouse-server start

默认数据存放位置是: /var/lib/clickhouse/

3、登录,查看数据库(默认用户是default,密码为空)

[root@ck-server-01 sync]# clickhouse-client -h 127.0.0.1
ClickHouse client version 19.9.2.4.
Connecting to 127.0.0.1:9000 as user default.
Connected to ClickHouse server version 19.9.2 revision 54421.

ck-server-01 :) show databases;

SHOW DATABASES

┌─name────┐
│ default │
│ system  │
└─────────┘

2 rows in set. Elapsed: 0.003 sec. 

ck-server-01 :)

default数据库里面没有任何东西,和mysql里面的test库是一样的。

补充一点,在官方的文档里面有几点建议:
1. 关闭大页
2. 调整内存使用
3. 关闭cpu节能模式

echo 'performance' | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
echo 0 > /proc/sys/vm/overcommit_memory
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled   

mysql部署,略。

如果想从mysql同步数据那么binlog 格式必须是row,binlog_row_image=full

安装同步程序依赖的包:

同步程序可以放在clickhouse服务器上面,也可以单独放在其他服务器。

同步程序使用pypy启动,所以安装包的时候需要安装如下包

yum -y install pypy-libs pypy pypy-devel
wget https://bootstrap.pypa.io/get-pip.py
pypy get-pip.py
/usr/lib64/pypy-5.0.1/bin/pip install MySQL-python
/usr/lib64/pypy-5.0.1/bin/pip install mysql-replication
/usr/lib64/pypy-5.0.1/bin/pip install clickhouse-driver==0.0.20
/usr/lib64/pypy-5.0.1/bin/pip install redis

这里也安装了redis模块  是因为同步的binlog pos可以存放在redis里面,当然程序也是支持存放在文件里面。

proxysql安装

主要是为了clickhouse兼容mysql协议:

proxysql在这里下载:Releases · sysown/proxysql · GitHub

wget https://github.com/sysown/proxysql/releases/download/v2.0.3/proxysql-2.0.3-1-clickhouse-centos7.x86_64.rpm

选择带clickhouse的包下载,否则不会支持clickhouse。

ps:较新版本的clickhouse已经原生兼容mysql协议。

proxysql安装及配置

yum -y localinstall proxysql-2.0.3-1-clickhouse-centos7.x86_64.rpm

启动(必须这样启动,否则是不支持clickhouse的): 

[root@VM-20-11-centos bin]# ps -ef|grep proxysql
root
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值