- 通过 S3 ClickPipes 执行初始快照
- 通过 Kinesis ClickPipes 进行实时更新
ReplacingMergeTree 中。该表引擎常用于 CDC (变更数据捕获) 场景,以便应用更新操作。有关此模式的更多信息,请参阅以下博客文章:
- PostgreSQL 与 ClickHouse 的变更数据捕获 (CDC (变更数据捕获) ) - 第 1 部分
- PostgreSQL 与 ClickHouse 的变更数据捕获 (CDC (变更数据捕获) ) - 第 2 部分
1. 设置 Kinesis 数据流
2. 创建快照
3. 将快照导入 ClickHouse
创建所需的表
JSONExtract 函数来实现。
我们需要创建三个表:
- 一个用于存储来自 DynamoDB 的原始数据的表
- 一个用于存储最终展平后数据的表 (目标表)
- 一个用于展平数据的 materialized view
- 该表必须是
ReplacingMergeTree表 - 该表必须包含一个
version列- 在后续步骤中,我们会将 Kinesis 数据流 中的
ApproximateCreationDateTime字段映射到version列。
- 在后续步骤中,我们会将 Kinesis 数据流 中的
- 该表应将分区键用作排序键 (由
ORDER BY指定)- 具有相同排序键的行会根据
version列去重。
- 具有相同排序键的行会根据
创建快照 ClickPipe
- 摄取路径:您需要找到 S3 中导出的 JSON 文件路径。该路径大致如下:
- 格式: JSONEachRow
- 表: 你的快照表 (例如上述示例中的
default.snapshot)
4. 创建 Kinesis ClickPipe
- Stream:第 1 步中使用的 Kinesis 数据流
- Table:你的目标表 (例如上述示例中的
default.destination) - Flatten object:true
- Column mappings:
ApproximateCreationDateTime:version- 按下图所示,将其他字段映射到相应的目标列