- 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
Tout d’abord, vous devrez activer un Kinesis Stream sur votre table DynamoDB pour capturer les modifications en temps réel. Il est préférable de le faire avant de créer l’instantané afin d’éviter toute perte de données.
Consultez le guide AWS disponible ici.
2
Créer l’instantané
Ensuite, nous allons créer un instantané de la table DynamoDB. Pour cela, vous pouvez effectuer une exportation AWS vers S3. Consultez le guide AWS disponible ici.
Vous devrez effectuer une “exportation complète” au format DynamoDB JSON.
3
Charger l’instantané dans ClickHouse
Créer les tables nécessaires
Les données du instantané DynamoDB ressembleront à ceci :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 de snapshot
Vous pouvez maintenant créer un ClickPipe pour charger les données de snapshot depuis S3 dans ClickHouse. Suivez le guide du S3 ClickPipe ici, mais utilisez les paramètres suivants :- Chemin d’ingestion : vous devrez localiser le chemin des fichiers JSON exportés dans S3. Le chemin ressemblera à ceci :
- Format : JSONEachRow
- Table : Votre table d’instantané (par ex.
default.snapshotdans l’exemple ci-dessus)
4
Créer le ClickPipe Kinesis
Nous pouvons maintenant configurer le ClickPipe Kinesis pour capturer les modifications en temps réel du flux Kinesis. Suivez le guide du ClickPipe Kinesis ici, mais utilisez les paramètres suivants :
- Flux : le flux Kinesis utilisé à l’étape 1
- Table : votre table de destination (par ex.
default.destinationdans l’exemple ci-dessus) - Aplatir l’objet : true
- Mappage des colonnes :
ApproximateCreationDateTime:version- Faites correspondre les autres champs aux colonnes de destination appropriées, comme indiqué ci-dessous
5
Nettoyage (facultatif)
Une fois le ClickPipe d’instantané terminé, vous pouvez supprimer la table d’instantané et la vue matérialisée.