使用Clickhouse作为从库

        描述:以MySQL数据库为主库,建立Click House为从库,通过触发器和物化视图建立数据统计。

        问题:1、必须升级MySQL5.5到更高版本,MySql低版本无法获取DATETIME_PRECISION(日期精确度),ClickHouse必须获取日期精确度,同时gtid模式无法设置开启。

                   2、MariaDB也无法作为MySQL的从库使用,因为gtid模式无法设置开启。

                   3、MySQL8.0 dateTime 不支持数据为0000-00-00 00:00:00。

                   4、ClickHouse物化引擎(MaterializedMySQL)创建必须存在主键,否则将卡住,执行不了。

        

        配置:

                   1、MySql8.0配置:docker里面无法编辑,使用"docker cp /my.cnf 4f32afaf3d08:/etc/my.cnf" (4f32afaf3d08:docker id)

                        log_bin=mysql-bin

                        server-id=9

                        gtid-mode=ON

                        enforce-gtid-consistency=1

                        log-slave-updates=1

                        log_bin_use_v1_row_events=OFF

                        binlog_row_image=FULL

                        default-authentication-plugin=mysql_native_password

                   2、ClickHouse23.7.3.14配置:

                        执行SQL:set allow_experimental_database_materialized_mysql=1

                        设置监听listen_host:文件“/etc/clickhouse-server/config.xml”

                         添加用户:文件“/etc/clickhouse-server/users.xml”

        操作:

                  1、安装ClickHouse文档:安装 | ClickHouse Docs

                  2、启动ClickHouse:/etc/init.d/clickhouse-server start

                  3、ClickHouse Client 连接指令:clickhouse-client -udefault

                  4、数据库物化通道创建(同步当前数据):

                        create database 数据库

                        ENGINE = MaterializedMySQL('192.168.11.9:3309', '数据库', 'root', '123456');

                  5、数据表映射创建(这会导致每次查询都同步一下数据):

                        create table 表名

                        ENGINE = MySQL('192.168.11.9:3309', '数据库', '数据表', 'root', '123456');

                   6、日志留存时间设置

                        ALTER table `system`.trace_log MODIFY TTL event_date + toIntervalDay(3);
                        ALTER table `system`.asynchronous_metric_log MODIFY TTL event_date + toIntervalDay(3);
                        ALTER table `system`.metric_log MODIFY TTL event_date + toIntervalDay(3);
                        ALTER table `system`.part_log MODIFY TTL event_date + toIntervalDay(3);
                        ALTER table `system`.query_log MODIFY TTL event_date + toIntervalDay(3);
                        ALTER table `system`.query_thread_log MODIFY TTL event_date + toIntervalDay(3);
                        ALTER table `system`.session_log MODIFY TTL event_date + toIntervalDay(3);

                  7、创建文件夹软链,避免磁盘过小问题

                        cd /data/

                        mkdir clickhouse/data

                        #映射目录权限修改,一定要修改否则没权限就启动不了

                        sudo chown -Rc clickhouse:clickhouse /data/clickhouse/data

                        sudo mv /var/lib/clickhouse /data/clickhouse/data

                        #建立软连接

                        sudo ln -s /data/clickhouse/data   /var/lib/clickhouse

                        sudo  chown -R clickhouse:clickhouse /var/lib/clickhouse

                        sudo ls -l /var/lib/clickhouse

                8、操作

                        systemctl stop clickhouse-server

                        service clickhouse-server restart

                        service clickhouse-server reload

        端口说明:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值