复制MySQL数据到ClickHouse



我想定期从MySQL数据库插入数据到clickHouse,即,当数据在MySQL数据库中添加/更新时,我希望该数据自动添加到clickHouse。

我正在考虑使用变更数据捕获(CDC)。CDC是一种技术,它捕获对MySQL中的数据所做的更改,并将其应用于目标ClickHouse表。它只导入已更改的数据,而不是整个数据库。要对MySQL数据库使用CDC方法,我们必须使用二进制更改日志(binlog)。Binlog允许我们以流的形式捕获变更数据,实现近乎实时的复制。

Binlog不仅捕获数据更改(INSERT, UPDATE, DELETE),还捕获表模式更改(ADD/DROP COLUMN)。它还确保从MySQL中删除的行也在ClickHouse中删除。

更改后,如何将其插入ClickHouse?

[experimental] MaterializedMySQL创建ClickHouse数据库,包含MySQL中的所有表,以及这些表中的所有数据。

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://clickhouse.tech/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources/dicts-external_dicts_dict_sources-mysql

https://altinity.com/blog/dictionaries-explainedhttps://altinity.com/blog/2020/5/19/clickhouse-dictionaries-reloaded

最新更新