Pour rappel, nous disposons d'un grand nombre de sources de données allant des SGBDR aux fichiers S3. Nous aimerions synchroniser et intégrer ces données avec d'autres entrepôts de données, bases de données, etc.
Au début, cela semblait être le modèle canonique de Kafka. Nous aimerions diffuser les changements de données à travers Kafka vers les sources de sortie de données. Dans notre cas de test, nous capturons les changements avec Oracle Golden Gate et les poussons avec succès vers une file d'attente Kafka. Cependant, pousser ces changements jusqu'à la source de sortie des données s'est avéré difficile.
Je me rends compte que cela fonctionnerait très bien si nous ne faisions qu'ajouter de nouvelles données aux sujets et aux files d'attente Kafka. Nous pourrions mettre en cache les modifications et les écrire dans les différentes sources de données. Mais ce n'est pas le cas. Nous allons mettre à jour, supprimer, modifier des partitions, etc. La logique pour gérer cela semble être beaucoup plus compliquée.
Nous avons essayé d'utiliser des tables d'étapes et des jointures pour mettre à jour/supprimer les données, mais j'ai l'impression que cela deviendrait rapidement très lourd.
J'en viens à ma question : y a-t-il d'autres façons d'aborder ces opérations ? Ou devrions-nous nous engager dans une autre direction ?
Toute suggestion ou aide est très appréciée. Je vous remercie de votre attention.