Envoyé par
nuke_y
Bonjour, ce qui serait bien ce serait d'avoir plus de 3 lignes pour décrire le contexte, le besoin, les contraintes. J'ai l'impression que plus le sujet est complexe, moins les gens donnent d'information.
Sinon, le temps réel implique, normalement, une latence extrêmement faible. L'idée c'est que quand le reporting est réalisé, les données ramenées soient représentatives de ce qu'il y avait dans la BDD à l'instant exact du lancement du rapport. Donc si un utilisateur vient de saisir une facture dans le système, il s'attend à la voir apparaître tout de suite dans son rapport. Par contre si par "temps réel" vous entendez "une latence de l'ordre du 1/4h", vous pouvez oublier tout le contenu de ce post.
Donc qui dit temps réel dit (en principe)
- pas d'ETL, éventuellement un EAI par contre
- pas de modélisation en étoile
- pas de technologie in memory (du moins pas que je connaisse) ou de cube (à cause de la latence induite par la montée en RAM du modèle commun, mais on peut trouver des solutions avancées)
On va plutôt être sur de la génération de requête, du BO, du Cognos ou simplement une application web. C'est à dire qu'une action utilisateur va déclencher une requête SQL, exécutée immédiatement, et qui va ramener les données présentes dans la BDD à ce moment-là. La solution consiste donc à préparer des requêtes SQL (ou un modèle de données pour BO/Cognos) et à permettre à l'utilisateur de choisir des filtres à appliquer puis de cliquer sur un bouton. Le clic va générer une requête SQL à la volée, incluant les filtres choisis par l'utilisateur, qui va être exécutée sur le champ dans la BDD et renvoyer les résultats. Charge à vous de les afficher à l'utilisateur.
Une autre solution consiste à faire du Complex Event Processing (CEP): un outil va recevoir des messages au fur et à mesure de l'activité sur la source (base de données, site web) et va accumuler ces messages pour une utilisation ultérieure. Exemple: on veut détecter si plus de 3 connexions ratées ont eu lieu en 15mn, et envoyer un mail d'alerte si c'est le cas.
A la 1ere connexion ratée, un message "connexion ratée" est envoyé au CEP (je simplifie) qui déclenche un chronomètre.
A la 2e connexion ratée un message "connexion ratée" est envoyée au CEP qui se dit "Tiens c'est la 2e ratée d'affilé".
A la 3e connexion ratée un message "connexion ratée" est envoyée au CEP qui se dit "Tiens c'est la 3e ratée d'affilé", il regarde son chronomètre et constate que c'est la 3e en moins de 15mn, donc il déclenche une alerte.
Pour faire la même chose sans CEP il faudrait faire des requêtes en boucle toutes les 15 mn qui vérifient si 3 connexions ont raté dans les 15 dernières minutes. C'est très lourd.
Partager