Decideo - Actualités sur le Big Data, Business Intelligence, Data Science

Abonnez-vous gratuitement à Decideo !


Decideo

 


Les bonnes pratiques de conception pour les projets analytiques à grande échelle


Rédigé par Mike Paquette, Elastic le 16 Février 2017

La tendance de l'industrie informatique à utiliser des termes en vogue ne simplifie en rien la complexité des choix à faire quand il s’agit de mettre en œuvre des plates-formes d'analytique à grande échelle. Big data, intelligence artificielle ou encore machine learning sont certainement des expressions à la mode, mais elles risquent de perdre les entreprises à force d'être utilisées à tort et à travers. Faire preuve de scepticisme reste le meilleur moyen d’éviter tous ces fournisseurs qui maquillent, derrière les apparats frauduleux d’un phénomène dernier cri, des solutions juste bancales et propriétaires.



Introduction

Mike Paquette, Directeur des solutions pour le marché de la sécurité chez Elastic
Mike Paquette, Directeur des solutions pour le marché de la sécurité chez Elastic
Dans les faits, les technologies modernes démultiplient les possibilités de traitements ; on peut désormais se baser sur des flux en mouvement, comme des ensembles de données de très grande taille. Et, parce qu’elle prend en compte des données plus variées, qui affluent à une certaine vitesse, dans des volumes plus importants, l’analyse des données fait surgir des résultats qui étaient jusque-là invisibles à l’échelle habituelle, plus petite.

Les derniers développements combinent moteur de recherche, étude de graphes, apprentissage machine ou encore analyse comportementale pour doter les utilisateurs de véritables assistants algorithmiques. Entre les mains des experts, ces outils ouvrent la voie vers l’intelligence artificielle.

L’importance de l’analytique et du machine learning en ingénierie électronique

La capacité à chercher à travers de vastes ensembles de données pour en tirer des informations pertinentes est utile dans quasiment tous les domaines de l'ingénierie électronique. Combiner des technologies de recherche de haut niveau avec une analyse chronologique des informations améliore la fabrication des puces électroniques, le suivi des processus, les réseaux de capteurs météorologiques, les infrastructures réseau, les appareils de communications vocales, le traitement des signaux radio ou encore la répartition de la charge sur les réseaux électriques.

Passer d'une supervision laborieuse à une détection intelligente des anomalies, avec analyse comportementale et amélioration continue des prévisions, démultipliera l’efficacité des systèmes de contrôle chez les industriels. Ne sous-estimez pas le succès de telles plates-formes logicielles : elles vont prendre une ampleur exponentielle dans un monde où chaque objet électronique sera connecté à Internet pour transmettre des relevés et recevoir des instructions.

La mise en place des plates-formes

Les bonnes pratiques de conception pour les projets analytiques à grande échelle
Dans la majorité des cas, le choix de l’infrastructure pour un projet d’analytique à grande échelle se fait toujours selon la stratégie IT historique de l’entreprise. Néanmoins, il y a des considérations clés à prendre en compte dans le design de la solution : la manière de collecter des données à la source, le format de ces données, leur volume, la vitesse à laquelle elles seront collectées, ainsi que le temps de réaction acceptable.

La plupart des entreprises commencent petit avec des projets pilotes, puis élargissent le champ des usages jusqu’aux projets les plus critiques. La règle en matière d'infrastructure est que les entreprises tirent un meilleur bénéfice des plates-formes logicielles les plus ouvertes et les plus souples, car elles permettent de migrer l’existant vers des environnements plus avancés à mesure que les besoins évoluent. En la matière, les distributions open source les plus populaires, qui jouissent de communautés d'utilisateurs très actives, offrent le meilleur compromis entre personnalisation, innovation et différenciation, et permettent aux entreprises de se concentrer sur leur cœur de métier.

La pénurie aiguë de compétences dans le domaine la science des données est un facteur déterminant dans le choix final du logiciel. Si le big data et l'apprentissage machine sont souvent associés à des solutions classiques comme Spark, Hadoop ou MapR, les compétences requises pour développer ensuite les applications en R et en Python sont à la fois rares et déjà très demandées dans certains secteurs, en particulier dans la finance et l'industrie pharmaceutique. Envisagez l’utilisation de technologies plus accessibles aux spécialistes de votre domaine, car c’est à eux que vous ferez appel plutôt qu’à des scientifiques de la donnée.

Bonne pratique n°1 : la collecte des données

La source et la nature des données collectées constituent un point de départ essentiel dans le design de votre projet. La source influence d’une certaine manière le choix de la plate-forme logicielle. La connectivité source-cible, la disponibilité d'API ouvertes et l'adéquation entre la plate-forme d'analyse et des types particuliers de données entrent en jeu.

Au sein de la plate-forme Elastic aussi connu sous le nome de Suite Elastic, le projet Beats propose des solutions open source prêtes à l'emploi pour les séries chronologiques, la surveillance des paquets, les indicateurs et les relevés horodatés. De son côté, le projet Community Beats est une initiative communautaire qui crée, partage et maintient un nombre toujours grandissant de connecteurs vers des applications et des environnements spécifiques.

Bonne pratique n°2 : l’ingestion des données

Si l'analyse est appliquée à des ensembles de données volumineux existants, chargés par lots à tour de rôle dans le système, le processus d'ingestion initial est simple. Mais de plus en plus d’utilisateurs cherchent plutôt à ingérer des données en flux continu et l'architecture du système doit alors prendre en compte le rythme du trafic. Dans les plates-formes d'analyse à grande échelle, l'ingestion des données est pratiquement toujours tributaire de la latence. De fait, il est primordial de mettre en place des solutions additionnelles de mémoire tampon ou de mise en file d’attente pour gérer tout autant des données qui arrivent tantôt en pics, tantôt par flux sporadiques.

Dans les environnements de données en flux continu, il est donc utile de considérer la connectivité de la plate-forme aux environnements de diffusion en temps réel les plus courants, comme Apache Kafka, Redis et autres ZeroMQ, ainsi qu’à des solutions tierces de mise en mémoire tampon.

Le processus d'ingestion est par ailleurs l’occasion de nettoyer, enrichir et optimiser les données avant de les indexer. Dans un souci d’efficacité, cette étape permet aux utilisateurs de transformer les données du format défini à la source vers un format plus adapté à la recherche et à l’analyse. C’est typiquement le cas pour les données de géolocalisation. Plus généralement, les données, qui sont au départ optimisées pour un transport efficace au travers d’un réseau assez restreint (mobile, sans fil, ...etc.), peuvent contenir des valeurs-clés additionnelles qui ouvrent des portes vers des niveaux de contexte et d'informations plus riches dans les systèmes ultérieurs.

Bonne pratique n°3 : l’indexation

Un index de base de données améliore notoirement la vitesse des opérations de récupération des données. Les entrées d'index sont utilisées pour localiser rapidement des données sans avoir à parcourir la totalité d’un datastore. Le moment et la méthode pour faire l'indexation au sein du système conditionnent le type d’architecture. Il existe principalement deux modèles :

Schéma lors de l'écriture (schema-on-write) : le schéma est ici défini avant l'ingestion des données. Les données sont indexées suivant ce schéma prédéfini. Et la présentation des résultats est formatée selon ce même schéma. Historiquement, l'enrichissement des données était réalisé à l'aide d'opérations complexes, qui nécessitaient des ré-indexations chronophages. Parmi les avantages de cette approche, citons les performances maximales des requêtes. En revanche, les taux d'ingestion/indexation sont a priori faibles. Le plus important ici consiste à scrupuleusement définir le schéma en amont.

Schéma lors de la lecture (schema-on-read) : dans ce modèle, aucun schéma n'est prédéfini. Les données sont simplement ingérées dans le datastore à mesure qu'elles arrivent. Le schéma et l'enrichissement sont appliqués au moment où les requêtes produisent des données. Cette approche évite d’avoir à définir le schéma en amont et permet d'atteindre des taux d'ingestion plus élevés. Toutefois, elle aboutit parfois à des performances plus faibles dans le traitement des requêtes, du fait de l'absence d'index pré-calculés. La plupart des datastores qui fonctionnent en schéma à la lecture minimisent cet effet en apprenant les requêtes pour optimiser leur exécution ultérieure.

Certains datastores emploient un modèle hybride, doté des avantages de chaque approche sans leurs inconvénients. Elasticsearch peut fonctionner en mode sans schéma, ou à l'aide de schémas créés automatiquement, de sorte que même l’exécution des requêtes inédites, lancées lorsque l’on cherche de nouvelles relations entre les données, fonctionne de manière optimale. Elasticsearch peut aussi paralléliser le processus d'ingestion/indexation, afin d’éviter la lenteur d'indexation des schémas lors de l'écriture.

Bonne pratique n°4 : l’analyse automatisée et la visualisation

Une plate-forme correctement choisie donne des résultats impressionnants. La combinaison d'une recherche simple avec d'autres technologies dernier cri – apprentissage automatique, détection d'anomalies, étude de graphes - est difficilement critiquable. Et si, en plus, la solution est open source - c’est à dire qu’on peut la tester gratuitement - autant dire que son utilisation par les différents services devient vite virale.

Apprentissage automatique

Les systèmes d'analyse qui utilisent l'apprentissage machine ont des fonctions qui relèvent de la science des données. Parfois appelées « assistants algorithmiques », celles-ci se font une idée du comportement normal des données en modélisant des moyennes à partir des informations qui arrivent chronologiquement (données horodatées, généralement les fichiers de logs en provenance des serveurs, des équipements ou des applications). Elles détectent ensuite les valeurs anormales ou aberrantes et dressent leur niveau d'anomalie. Cet ensemble de fonctionnalités est souvent regroupé sous l'appellation « détection d'anomalie par machine learning ».

Les développements récents autour de l'apprentissage machine ont fait naître d’autres fonctions. Nous avons à présent des « assistants algorithmiques seniors » qui exploitent les résultats des assistants précédents afin de fournir davantage de contexte aux ingénieurs. Des exemples de leurs traitements avancés comprennent l'analyse, la corrélation, ou encore la prévision des éléments influenceurs.

Etude de graphes

Si l'analyse que vous envisagez se focalise fortement sur les relations entre entités, du type calcul de chemins optimaux entre les nœuds d'une topologie physique, ou évaluation des communautés d'utilisateurs dans un graphe social, alors une base de données orientée graphe est sans doute la plate-forme la plus adaptée. Enième variété parmi les bases de données NoSQL, les bases de données orientées graphe enregistrent les relations entre des entités au sein de structures que l’on appelle les nœuds, les arcs et les propriétés. Elles sont particulièrement efficaces pour effectuer des recherches multi-niveaux parmi le stock de données.

Notez que vous pouvez bénéficier de l'exploration par graphes sans pour autant utiliser une base de données orientée graphe telle que Neo4j, ou l’outil Graph proposé par Elastic.

Certaines plates-formes proposent l'exploration par graphes selon la pertinence des résultats renvoyés par les fonctions de recherche classiques. Il s’agit d'explorer les données selon des points communs. Ces points communs entre personnes, endroits, préférences, produits, etc., peuvent fournir des perspectives très intéressantes.

Visualisation

Si les traitements automatisés décrits ci-dessus déchargent les opérateurs des tâches répétitives de recherche et de pivotement de données, encore faut-il un tableau de bord pour prendre visuellement la mesure des analyses effectuées.

Il existe des plates-formes de visualisation dédiées - citons Kibana - qui récupèrent les données de votre datastore, génèrent des rapports pour tirer des enseignements à partir des analyses et pour les communiquer. Des outils tiers proposent des variantes dans la manière d’afficher les données afin d’échanger avec d’autres analystes selon une présentation particulière.

L'analyse de séries chronologiques comme celles décrites plus haut peut nécessiter une intégration plus étroite entre le datastore et la plate-forme de visualisation. Les représentations du type indicateurs simples, tableaux de données, courbes, séries chronologiques, graphiques en barres, camemberts et autres cartographiques doivent être conçues pour faire apparaître un minimum de capacités.

Conclusion

S'attaquer à des projets d'analyse à grande échelle peut paraître décourageant. Toutefois, le succès sera d’autant plus atteignable si l’on applique suffisamment tôt les bonnes pratiques de l'ingénierie informatique, c’est-à-dire si l’on réfléchit soigneusement aux processus de mise en perspective des données avant que le gros des dépenses soit engagé.

Evaluez et modélisez le format, les volumes, la vitesse des flux ainsi que la variété des données en entrée, la latence acceptable entre la création des données et l’obtention de résultats, le besoin de haute disponibilité, la durée de conservation des données, ou encore la quantité de requêtes envisageable.

Enfin, rappelez-vous que déplacer des données d'un datastore à un autre (en d'autres termes, surmonter « l’inertie des données ») peut s’avérer coûteux en temps, en argent, et se révéler complexe. Envisagez plutôt une plate-forme qui panache les fonctions répondant à vos besoins particuliers au sein d'un seul datastore.




Nouveau commentaire :
Twitter

Vous pouvez commenter ou apporter un complément d’information à tous les articles de ce site. Les commentaires sont libres et ouverts à tous. Néanmoins, nous nous réservons le droit de supprimer, sans explication ni préavis, tout commentaire qui ne serait pas conforme à nos règles internes de fonctionnement, c'est-à-dire tout commentaire diffamatoire ou sans rapport avec le sujet de l’article. Par ailleurs, les commentaires anonymes sont systématiquement supprimés s’ils sont trop négatifs ou trop positifs. Ayez des opinions, partagez les avec les autres, mais assumez les ! Merci d’avance. Merci de noter également que les commentaires ne sont pas automatiquement envoyés aux rédacteurs de chaque article. Si vous souhaitez poser une question au rédacteur d'un article, contactez-le directement, n'utilisez pas les commentaires.


Twitter
Rss
LinkedIn
Facebook
Apple Podcast
App Store
Google Play Store