ClickHouse Kafka 数据接入 —— Schema 修改流程
这个流程针对 Kafka 数据实时接入 ClickHouse 的情况下,
Schema 增加字段的同时,能够保证实时数据进入 ClickHouse 的 EOS。
DETACH 物化视图
停止 Kakfa 数据的消费
1 | DETACH TABLE source_target_mv; |
删除 kafka_source 表
因为后续要 ATTACH 物化视图,所以先删掉 kafka_source
防止消费 kafka_source 的数据
1 | DROP table kafka_source; |
修改 target 表
1 | -- 增加字段 |
ATTACH 物化视图
这里 ATTACH 物化视图看起来很奇怪
不直接删除物化视图,而是先 ATTACH 物化视图
因为在 DETACH 状态的物化视图是不能执行删除操作的
1 | ATTACH TABLE source_target_mv; |
删除物化视图
1 | DROP VIEW source_target_mv; |
重建 kafka_source
在重建物化视图前先重建 kafka_source,因为创建物化视图会检查 kafka_source 是否存在
如果 kafka_source 不存在,物化视图创建会报错
1 | CREATE TABLE kafka_source ( |
重建物化视图
1 | CREATE MATERIALIZED VIEW source_target_mv TO target AS |