- La instantánea inicial mediante S3 ClickPipes
- Las actualizaciones en tiempo real mediante Kinesis ClickPipes
ReplacingMergeTree. Este motor de tabla se usa habitualmente en escenarios de CDC para permitir aplicar operaciones de actualización. Puede encontrar más información sobre este patrón en los siguientes artículos del blog:
- Captura de datos de cambios (CDC) con PostgreSQL y ClickHouse - Parte 1
- Captura de datos de cambios (CDC) con PostgreSQL y ClickHouse - Parte 2
1. Configurar un stream de Kinesis
2. Crear la instantánea
3. Cargar la instantánea en ClickHouse
Crear las tablas necesarias
JSONExtract de ClickHouse en una vista materializada.
Querremos crear tres tablas:
- Una tabla para almacenar los datos sin procesar de DynamoDB
- Una tabla para almacenar los datos finales aplanados (tabla de destino)
- Una vista materializada para aplanar los datos
- Esta tabla debe ser de tipo
ReplacingMergeTree - La tabla debe tener una columna
version- En pasos posteriores, asignaremos el campo
ApproximateCreationDateTimedel flujo de Kinesis a la columnaversion.
- En pasos posteriores, asignaremos el campo
- La tabla debe usar la clave de partición como clave de ordenación (especificada por
ORDER BY)- Las filas con la misma clave de ordenación se deduplicarán según la columna
version.
- Las filas con la misma clave de ordenación se deduplicarán según la columna
Crear el ClickPipe de instantánea
- Ruta de ingesta: Deberá localizar la ruta de los archivos JSON exportados en S3. La ruta tendrá un aspecto similar a este:
- Formato: JSONEachRow
- Tabla: Su tabla de instantánea (p. ej.,
default.snapshoten el ejemplo anterior)
4. Crear el ClickPipe de Kinesis
- Stream: El stream de Kinesis utilizado en el paso 1
- Table: La tabla de destino (p. ej.,
default.destinationen el ejemplo anterior) - Flatten object: true
- Mapeo de columnas:
ApproximateCreationDateTime:version- Asigna los demás campos a las columnas de destino correspondientes, como se muestra a continuación