将 MySQL 数据复制到 ClickHouse
Replicate MySQL Data to ClickHouse
我想定期将 MySQL 数据库中的数据插入 clickHouse,即,当 mySQL 数据库中的数据为 added/updated 时,我希望该数据自动添加到 clickHouse .
我正在考虑使用更改数据捕获 (CDC)。 CDC 是一种捕获对 MySQL 中的数据所做的更改并将其应用于目标 ClickHouse table 的技术。它只导入更改的数据,而不是整个数据库。要将 CDC 方法与 MySQL 数据库一起使用,我们必须利用二进制更改日志 (binlog)。 Binlog 允许我们将更改数据捕获为流,从而实现近乎实时的复制。
Binlog 不仅捕获数据更改(INSERT、UPDATE、DELETE),而且还捕获 table 模式更改,例如 ADD/DROP COLUMN。它还确保从 MySQL 中删除的行也在 ClickHouse 中删除。
修改完成后,如何插入到ClickHouse中?
[实验]物化MySQL
使用 MySQL 中存在的所有表以及这些表中的所有数据创建 ClickHouse 数据库。
ClickHouse 服务器充当 MySQL 副本。它读取 binlog 并执行 DDL 和 DML 查询。
https://clickhouse.tech/docs/en/engines/database-engines/materialized-mysql/
https://altinity.com/blog/2018/6/30/realtime-mysql-clickhouse-replication-in-practice
https://altinity.com/blog/dictionaries-explained
https://altinity.com/blog/2020/5/19/clickhouse-dictionaries-reloaded
我想定期将 MySQL 数据库中的数据插入 clickHouse,即,当 mySQL 数据库中的数据为 added/updated 时,我希望该数据自动添加到 clickHouse .
我正在考虑使用更改数据捕获 (CDC)。 CDC 是一种捕获对 MySQL 中的数据所做的更改并将其应用于目标 ClickHouse table 的技术。它只导入更改的数据,而不是整个数据库。要将 CDC 方法与 MySQL 数据库一起使用,我们必须利用二进制更改日志 (binlog)。 Binlog 允许我们将更改数据捕获为流,从而实现近乎实时的复制。
Binlog 不仅捕获数据更改(INSERT、UPDATE、DELETE),而且还捕获 table 模式更改,例如 ADD/DROP COLUMN。它还确保从 MySQL 中删除的行也在 ClickHouse 中删除。
修改完成后,如何插入到ClickHouse中?
[实验]物化MySQL 使用 MySQL 中存在的所有表以及这些表中的所有数据创建 ClickHouse 数据库。
ClickHouse 服务器充当 MySQL 副本。它读取 binlog 并执行 DDL 和 DML 查询。
https://clickhouse.tech/docs/en/engines/database-engines/materialized-mysql/
https://altinity.com/blog/2018/6/30/realtime-mysql-clickhouse-replication-in-practice
https://altinity.com/blog/dictionaries-explained https://altinity.com/blog/2020/5/19/clickhouse-dictionaries-reloaded