【发布时间】:2021-08-16 16:31:45
【问题描述】:
我想定期将 MySQL 数据库中的数据插入 clickHouse,即,当在 mySQL 数据库中添加/更新数据时,我希望该数据自动添加到 clickHouse。
我正在考虑使用变更数据捕获 (CDC)。 CDC 是一种捕获对 MySQL 中的数据所做的更改并将其应用于目标 ClickHouse 表的技术。它只导入更改的数据,而不是整个数据库。要将 CDC 方法与 MySQL 数据库一起使用,我们必须使用二进制更改日志 (binlog)。 Binlog 允许我们以流的形式捕获更改数据,从而实现近乎实时的复制。
Binlog 不仅捕获数据更改(INSERT、UPDATE、DELETE),还捕获表架构更改,例如 ADD/DROP COLUMN。它还确保从 MySQL 中删除的行也会在 ClickHouse 中被删除。
更改后,如何将其插入到 ClickHouse 中?
【问题讨论】:
-
你需要设计你的ETL流程。到目前为止你做了什么,你在哪里卡住了?
-
哦,为什么你认为你的问题应该由程序员来回答(你在 SO,这是一个编程问答网站)而不是 DBA 或系统管理员?
-
有几种方法可以做到这一点: 1. 运行SELECT FROM MySQL -> INSERT INTO ClickHouse。按原样进行轮询。 2. ClickHouse提供MySQL存储引擎,可以直接访问MySQL数据。 3. 为写入 ClickHouse 的 MySQL 引入复制 slave。
标签: mysql clickhouse