- L’instantané initial via S3 ClickPipes
- Les mises à jour en temps réel via Kinesis ClickPipes
ReplacingMergeTree. Ce moteur de table est couramment utilisé dans les scénarios de CDC afin de permettre l’application des opérations de mise à jour. Pour en savoir plus sur cette approche, consultez les articles de blog suivants :
- Change Data Capture (CDC) avec PostgreSQL et ClickHouse - Partie 1
- Change Data Capture (CDC) avec PostgreSQL et ClickHouse - Partie 2
1. Configurer le flux Kinesis
2. Créer le instantané
3. Charger le instantané dans ClickHouse
Créer les tables nécessaires
JSONExtract de ClickHouse dans une vue matérialisée.
Nous allons créer trois tables :
- Une table pour stocker les données brutes de DynamoDB
- Une table pour stocker les données finales aplaties (table de destination)
- Une vue matérialisée pour aplatir les données
- Cette table doit être une table
ReplacingMergeTree - La table doit comporter une colonne
version- Dans les étapes suivantes, nous ferons correspondre le champ
ApproximateCreationDateTimedu flux Kinesis à la colonneversion.
- Dans les étapes suivantes, nous ferons correspondre le champ
- La table doit utiliser la clé de partitionnement comme clé de tri (spécifiée par
ORDER BY)- Les lignes ayant la même clé de tri seront dédupliquées en fonction de la colonne
version.
- Les lignes ayant la même clé de tri seront dédupliquées en fonction de la colonne
Créer le ClickPipe d’instantané
- Chemin d’ingestion : vous devrez repérer le chemin des fichiers JSON exportés dans S3. Le chemin ressemblera à ceci :
- Format: JSONEachRow
- Table: Votre table de instantané (par ex.
default.snapshotdans l’exemple ci-dessus)
4. Créer le ClickPipe Kinesis
- Stream : le flux Kinesis utilisé à l’étape 1
- Table : votre table de destination (par ex.
default.destinationdans l’exemple ci-dessus) - Flatten object : true
- Column mappings :
ApproximateCreationDateTime:version- Mappez les autres champs aux colonnes de destination appropriées, comme indiqué ci-dessous