最近更新时间:2023.08.10 17:07:51
首次发布时间:2023.06.15 22:37:15
Materialized MySQL通过读取MySQL数据库的binlog将MySQL数据复制到ByteHouse中的物化表中。这意味着数据可以在几秒钟内同步,因此支持变更数据捕获(CDC)和实时数据分析。
ByteHouse将创建一个具有MaterializedMySQL引擎的数据库,它将作为MySQL相应数据库的副本。第一个dump将读取所有数据。随后,对数据库的任何更改都将读取到ByteHouse中。
ByteHouse中的表是通过将DDL重写为CNCHMergeTree创建的。在MaterializedMySQL引擎中,每个表都有一个后台线程,它将调度任务。
可选设置
-- 单库同步 CREATE DATABASE db_mysql_sync_naga ENGINE = CnchMaterializedMySQL('192.0.0.123:3300', 'mysql_db_name', 'root', 'password') [SETTINGS materialized_mysql_tables_list ='table,table2', cnch_vw_write='vw123' ...] -- RDS 主从库同步 CREATE DATABASE db_mysql_sync_naga ENGINE = CnchMaterializedMySQL('192.0.0.123:3300', 'mysql_db_name', 'root', 'password') SETTINGS [materialized_mysql_tables_list ='mitu_push_campaign', cnch_vw_write='default_vw',] read_only_replica_info='{"host_name":"xxx","port":"3306","user_name":"bytehouse.user","password":"xxx"}';
当您添加或删除表时,可以使用更新命令,否则更改可能需要长达10分钟才能同步。
UPDATE MATERIALIZED_MYSQL_TABLES FOR db_mysql_sync_naga
您可以使用“停止”暂停同步,并使用“启动”恢复同步。同步将从离开的地方恢复。
system stop MATERIALIZEDMYSQL {materializedmysql_database_name} system start MATERIALIZEDMYSQL {materializedmysql_database_name}
这将删除同步的数据以及连接信息。
drop database db_mysql_sync
MaterializedMySQL用户界面允许您查看数据库的状态。
如果MaterializedMySQL正在运行,它将显示“正在同步”状态。
当您通过SQL停止MaterializedMySQL引擎时,它将显示“已停止”状态。
如果表同步线程中断,它将显示“失败”状态。
点击数据库-->异常
这将返回最后一个异常消息,它可以是警告消息或故障消息。警告消息意味着引擎存在问题,但仍在同步。故障消息意味着同步线程中断。
请注意,MaterializedMySQL引擎在故障状态下将继续重试,除非它被“停止”。
仅支持MySQL 5.7和8.0
仅同步表,不同表视图和物化视图
源环境 | 支持 |
---|---|
开源MySQL | ✓ |
火山MySQL | ✓ |
AWS RDS for MySQL | ✓ |
阿里云 PolarDB for MySQL | ✓ |
谷歌云 SQL | 路线上 |
DML | 支持 |
插入 | ✓ |
删除 | ✓ |
更改 | ✓ |
DDL | 支持 |
创建表 | ✓ |
删除表 | ✓ |
重命名表 | ✓ |
添加列 | ✓ |
删除列 | ✓ |
重命名列 | ✓ |
重命名列 | ✓ |