Bonjour
Je post car je suis à la recherche d'un outil ETL qui me permettrait de synchroniser deux bases MySql automatiquement à intervalle régulier (inférieur à la minute), comme toutes les 15s.
Bonjour
Je post car je suis à la recherche d'un outil ETL qui me permettrait de synchroniser deux bases MySql automatiquement à intervalle régulier (inférieur à la minute), comme toutes les 15s.
Pour synchroniser 2 bases toutes les 15 secondes, un ETL sera difficile à mettre en place à moins d'avoir 3 lignes dans 3 tables...
Ce qu'il te faut c'est une réplication.
Je ne sais pas faire de réplication, mais je pense que certains habitués de la partie MySQL de ce forum sauront t'aider.
La réponse dépend du besoin. La réplication est ce qu'il faut utiliser s'il s'agit juste de synchroniser 2 bases identiques.
S'il s'agit d'envoyer des données d'une base à une autre base qui n'a pas la même structure, alors un ETL peut faire l'affaire.
Le point important est juste la manière donc on va récupérer les modifications sur la base source.
(En général via des triggers je dirais)
Nicolas
J'avais pas pensé aussi loin à vrai dire. Je pensais faire un ETL et le programmé tout les 10s environs, y'a juste un transtipage à faire de varchar à int ou float. et les solution trouver me permet pas de programmé en dessus de la minute.
J'avais pas pensé au trigger, je pensé juste lire la base source et ajouter/metre à jour ligne.
donc voila pourquoi je cherche un outils me parementant de faire cela.
Tony
Pour DevNico :
Il s’agit exactement ça, la table est alimentée par un programme externe, il faut envoyer (et transformer) une partie des données sur un autre SGBD.
Nous ne pouvons pas utiliser la réplication car les BDD ne sont pas identiques.
Quelle est la volumétrie de la table?
Les modifications effectuées par le programme externe portent-elles sur toutes ou partie des lignes de la tables?
Lancer un traitement ETL toute les 10 ou 15 secondes me parait énorme en terme de charge, d'autant plus que si la volumétrie est trop élevée, le traitement n'arrivera pas à se terminer avant que le suivant se lance...
Par ailleurs, pendant que l'ETL tourne, il fait baisser les perfs de ta base.
Pour ce qui est des triggers, cela engendre une baisse de performances de l'insertion dans ta table, comme pour l'ETL...
Bonjour,
Peux-tu détailler un peu ton besoin ?
Porte t'il sur une seule table ?
Quelle est la volumétrie de ta table et des données que tu dois mettre à jour toutes les 15 sec ?
La seule et unique transformation lors de la mise à jour est un transtypage ?
Les ETL sont très performants sur les gros volumes de données mais si ta volumétrie n'est pas très importante il y a sans doute de meilleures solutions.
bonjour
Merci pour toutes vos réponses.
Effectivement, il va y avoir que du transtypage.
La solution que j'ai trouver et que l'on va adopter va être la suivant:
Nous allons crées un trigger, comme ça nous avons du "temps réels" pour la synchronisation des bases et pour la liaison entre les deux bases Mysql nous allons utiliser le moteur FEDERATED.
Voila, je vous remercie pour les réponses que vous nous avait donnée.![]()
Pour info, faire du temps réel avec de l'ETL est tout à fait possible.
J'utilise Talend, on traite plusieurs millions de lignes chaque jour.
Le traitement est un "démon" qui boucle en traitant les lignes arrivées depuis la dernière itération. (On en fait une toutes les 30s à peu près)
Après, coté perfs, il faut les machines qui vont bien.
Nicolas
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager