分享知识,分享快乐

0%

clickhouse实时同步mysql数据

clickhouse实时同步mysql数据

clickhouse-client -m --password ‘admin’

使用 MaterializedMySQL 引擎实时同步

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET allow_experimental_database_materialized_mysql = 1;


CREATE DATABASE dbtest ENGINE = MaterializedMySQL('10.6.123.23:3306', 'dbtest', 'cs_yangz', '***') SETTINGS allows_query_when_mysql_lost=true,max_wait_time_when_mysql_unavailable=10000;

-- 查看磁盘容量

SELECT
name,
path,
formatReadableSize(free_space) AS free,
formatReadableSize(total_space) AS total,
formatReadableSize(keep_free_space) AS reserved
FROM system.disks

安装配置 MySQL 同步用户

  • 创建用户
  • 全局赋予 replication client,replication slave, reload 权限
  • 对同步库 db 赋予 select 权限

如果赋予权限不正确,会报错,

1
2
3
4
CREATE USER 'clickhouse'@'%' IDENTIFIED BY 'alitrack';
GRANT select ON db.* TO 'clickhouse'@'%';
GRANT replication client,replication slave, reload on *.* to 'clickhouse'@'%';
FLUSH PRIVILEGES;

遇到没有主键的表,

如果没有初始化完成,删掉没有主键的表,直接重启clickhouse就可以了

如果已经初始化,修改GTID,再重启。

vim /data/clickhouse/metadata/dbtest/.metadata 修改GTID 跳过 重启clickhouse服务

– 不支持的数据类型

MaterializeMySQL don’t support the json,bit,time data type

–如果没有生成 .metadata 文件 查看日志, 可能是不支持的类型 ,或者没有主键

1
/var/log/clickhouse-server/clickhouse-server.err.log