You need to enable JavaScript to run this app.
导航

MaterializedMySQL

最近更新时间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引擎中,每个表都有一个后台线程,它将调度任务。

SQL语法

创建MaterializedMySQL引擎

可选设置

  • materialized_mysql_tables_list - 默认情况下,引擎将同步数据库中的所有表。您还可以在设置中定义要同步的特定表。
  • cnch_vw_write - 默认情况下,我们使用一个内部虚拟仓库免费提供。但是,免费层限制了性能。为了获得更好的性能,建议您设置一个单独的虚拟仓库来管理数据摄取。
  • read_only_replica_info - 用于AWS RDS MySQL,需要为第一次同步提供读副本。例如'{"host_name":"qa-global-mat-5-com-read.c1ozupm9r3vl.ap-southeast-1.rds.amazonaws.com","port":"3306","user_name":"xxx","password
-- 单库同步
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"}';             

更新MaterializedMySQL数据库

当您添加或删除表时,可以使用更新命令,否则更改可能需要长达10分钟才能同步。

UPDATE MATERIALIZED_MYSQL_TABLES FOR db_mysql_sync_naga

停止/开始同步

您可以使用“停止”暂停同步,并使用“启动”恢复同步。同步将从离开的地方恢复。

system stop MATERIALIZEDMYSQL {materializedmysql_database_name}
system start MATERIALIZEDMYSQL {materializedmysql_database_name}

删除MaterializedMySQL引擎

这将删除同步的数据以及连接信息。

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

支持



创建表

删除表

重命名表

添加列

删除列

重命名列

重命名列