L’analytique en temps réel des Big Data a été annoncé comme étant la tendance majeure du Big Data en 2017. Dorénavant le Big Data touche toutes les branches de l’industrie et un bon nombre de chefs d’entreprises souhaitent tirer profit du temps réel pour prendre des décisions plus rapidement.
Cette évolution de tendance n’arrive pas par hasard : la croissance ultra-rapide de l’IoT, du nombre d’utilisateurs et la facilité d’exploitation des données issues de capteurs contribuent pleinement à cet engouement. Par conséquent, plusieurs offres se développent se nourrissant du « hype » real time pour répondre à ce besoin, il en est de même pour les solutions de traitement à la volée qui s’améliorent au fil du temps comme Spark ou Storm qui sont très souvent les frameworks préférés par les grosses structures pour cet usage. Globalement, les porteurs d’offres real time vendent tous plus ou moins la même chose, d’une manière plus ou moins packagée, et le message principal est le même : collecte, stockage, processing et visualisation des données, le tout en temps réel !
Voici quelques exemples de frameworks à la mode qui se prêtent à faire du temps réel.
Vous faites déjà partie du mouvement
En fait, même au quotidien vous êtes confrontés à de l’analyse en temps réel : un site d’achat en ligne a besoin d’afficher le plus rapidement des recommandations ou des publicités. En permanence vos actions sont traduites en données qui sont processées dans une architecture Big Data dédiée pour le temps réel. Quand on réalise des calculs sur un flux de données, on a souvent besoin d’avoir un résultat rapidement, et dans certains cas, il est possible d’avoir besoin du résultat dans la centaine de seconde, vous voyez bien que les publicités ciblées en ligne sont affichées de manière quasi immédiate ! De même, la quantité de données collectée peut être importante et il doit être possible d’exploiter ces données sans être submergé, pensez à tous les utilisateurs qui se connectent sur les réseaux sociaux ! Les données issues de vos actions génèrent des quantités massives de données et génèrent aussi de la valeur. De la même manière, les voitures autonomes doivent être en mesure de traiter une multitude de signaux détectés par ses capteurs, les pannes matérielles d’un cluster de calcul doivent déclencher des alertes, le trading haute fréquence requiert de délivrer un résultat très rapidement, la surveillance d’une chaîne de production, l’optimisation de supply chain, la détection de fraude, patient care, les smart devices, smart home, smart cities, smart grid, … Bref, vous l’avez compris, le Big Data en temps réel se prête à bien des domaines.
Rapidité et gestion des flux c’est là tout l’enjeu du traitement en temps réel, et cela exige la conception d’architectures distribuées dédiées.
Montez votre propre architecture temps réel
Ce diagramme peut paraître compliqué à première vue mais il ne fait qu’exposer le fait que le stream processing prend une place importante dans la conception d’une architecture. Entre autres, les architectures temps réel sont souvent utilisées pour : preprocesser, corréler des données, entraîner des modèles, faire des prédictions, détecter des tendances ou sequence patterns, tracking, déclencher des alertes.
En pratique ces architectures ne sont pas simples à mettre en œuvre, la diversité des outils de stockage, de processing et de visualisation est grande et il n’est pas évident de s’y retrouver dans cette nuée d’outils. D’autant plus que les connecteurs entre les différentes briques techniques sont quelques fois inexistants et il en est de votre ressort d’implémenter les fonctionnalités non-existantes, sans compter les montées de versions, les paramétrages cauchemardesques (Hadoop), les documentations peu étoffées, etc.
Après cette entrée en matière, je vous propose une série de tutoriels pour monter pas à pas une architecture simple pour faire du traitement en temps réel. Nous nous baserons sur un use-case facile : le stockage du flux avec Couchbase et son traitement avec Spark.