Travailler avec de gros volumes de données, c'est un peu comme développer un logiciel. Les deux exigent une bonne compréhension des besoins des utilisateurs finaux, une connaissance de la façon de mettre en œuvre des solutions et des pratiques agiles pour itérer et améliorer les résultats. Le développement de logiciels et les pratiques en matière de données exigent tous deux des plates-formes technologiques, des pratiques de codage, des méthodologies de développement et une infrastructure agile pour être bordés et prêts à répondre aux besoins des entreprises.
Les data scientists et les spécialistes des données ont beaucoup de technologies et de pratiques similaires à celles des développeurs de logiciels, et pourtant, il existe de nombreuses différences. Lors de sa participation à la Strata Data Conference de 2019 à New York, notre confrère d’Infoworld.com a examiné les méthodologies, les plates-formes et les solutions qui y étaient présentées dans la double optique d'un développeur logiciel et d'un ingénieur en informatique.
Préparer les données pour la consommation
Les développeurs d'applications travaillant avec de petites quantités de données mettent souvent en œuvre l'intégration, le formatage et le stockage des données initiaux au moyen de scripts, de procédures stockées dans la base de données et d'autres options de codage. Il s'agit d'une approche simple pour passer outre la plomberie nécessaire et avoir des données prêtes à être prises en charge par un microservice, partagées via des API ou consommées par une application utilisateur final.
Cependant, comme la livraison des applications est le principal objectif commercial et, par conséquent, l'objectif principal des développeurs de piles complètes, les efforts d'ingénierie appliqués pour ingérer, traiter et stocker les données sont souvent réduits au minimum.
D'autre part, les data scientistes et les développeurs voient le monde du chargement des données de manière très différente. Tout d'abord, ils comprennent trop bien les principes d'entrée et de sortie des déchets et savent que les analyses, les visualisations de données, les modèles d'apprentissage machine et les autres produits de données sont compromis et potentiellement inutiles si les données chargées ne sont pas nettoyées et traitées correctement (le fameux datawrangling).
De plus, si les données ne sont pas stockées de manière optimale, cela rend le travail d'analyse moins efficace et peut avoir un impact sur les performances des requêtes. Interroger une base de données relationnelle par le biais d'un trop grand nombre de jointures (association de plusieurs tables dans une) ou traiter une base de données de séries temporelles étendue qui n'est pas partitionnée, et la productivité et la performance peuvent poser problème.
Les équipes chargées des données tiendront toujours compte de la source des données, du type de données et des exigences en matière de volume, de rendement, de fiabilité et de sécurité lorsqu'elles détermineront la meilleure façon d'ingérer les données. Ils examineront également les types de nettoyage et d'enrichissement des données qui sont nécessaires avant que les données ne soient prêtes à être consommées. En résumé, ils investissent des efforts considérables pour s'assurer que le chargement des données répond aux exigences d'aujourd'hui, qu'il est extensible pour prendre en charge les formats de données changeants et qu'il est évolutif pour supporter des volumes de données croissants.
Les plates-formes d'intégration de données ne sont pas une solution universelle
Tout comme les plates-formes de développement de logiciels, il existe de nombreux types différents de plates-formes d'acquisition de données. Les développeurs de logiciels devraient être familiers avec les types de base suivants d'intégration de données : Les outils ETL (extraction, transformation et chargement) existent depuis un certain temps et sont traditionnellement utilisées pour traiter par lots les mouvements de données entre différents systèmes d'entreprise. Informatica, Talend, IBM, Oracle et Microsoft proposent tous des technologies ETL. Lorsque l'acquisition de données doit se faire en temps réel ou quasi réel pour l'IoT et d'autres applications, les plates-formes telles que Kafka et Spark ou les architectures événementielles telles que Vantiq sont de meilleures options.
Les organisations qui comptent de nombreux analystes métiers travaillant avec des données peuvent utiliser des technologies de préparation des données pour charger des feuilles de calcul et d'autres sources de données plus petites. Les outils de Tableau, Alteryx et Trifacta offrent tous des capacités d'ingestion et de traitement de données en libre-service qui peuvent être utilisées par les utilisateurs professionnels sans codage ou presque. Lorsque les entreprises reconnaissent la nécessité de prendre des mesures proactives pour nettoyer les données ou établir des enregistrements de données de référence, il existe des plates-formes open source telles que HoloClean et des plates-formes de qualité et de maîtrise des données telles que Reltio, Tamr, et Ataccama. L'ETL, la préparation des données et d'autres plates-formes d'intégration de données ont également des capacités de qualité des données.
Les grandes entreprises et celles qui disposent de nombreuses sources de données réparties sur plusieurs nuages et centres de données peuvent consulter Cloudera Data Platform, SAP Data Intelligence ou InfoWorks Data Operations and Orchestration System. Ces plates-formes fonctionnent sur de nombreuses bases de données et de grandes plates-formes de données et aident à virtualiser de multiples sources de données, à faciliter les processus d'intégration des données et à mettre en œuvre la lignée de données et la gouvernance des données requises.Bon nombre de ces plates-formes offrent des capacités de programmation visuelle qui permettent de développer, de gérer et d'étendre les pipelines de données. Par exemple, un pipeline peut commencer avec des données de capteurs IoT collectées par Kafka, les joindre à d'autres sources de données, les expédier vers un datalake, puis les pousser vers des plateformes d'analyse.
Où tout le monde peut-il trouver toutes ces données ?
A mesure que le nombre de sources de données, de pipelines et de plates-formes de gestion augmente, la gestion devient plus difficile pour l’IT et les consommateurs de données ont plus de mal à trouver ce dont ils ont besoin. Savoir où chercher et où trouver les sources de données n'est qu'un point de départ ; les consommateurs de données doivent connaître les descriptions, les métadonnées descriptives, le statut, les droits d'utilisation et quels sont les experts en la matière sur les sources de données disponibles.
Le catalogue de données est une capacité offerte par de nombreuses plates-formes de données en tant que ressource centralisée pour les analystes commerciaux, les spécialistes des données, les datascientists et les développeurs de logiciels pour trouver les sources de données et enregistrer les informations les concernant. Il peut s'agir d'outils d'entreprise qui permettent de partager et d'améliorer les données à des fins d'analyse ou d'utilisation dans des applications.
L'utilisation correcte des données est la responsabilité de chacun
Tous ces outils et capacités représentent de nouvelles responsabilités et opportunités pour les développeurs de logiciels. La responsabilité commence par l'utilisation d'outils d'intégration de données comme principal moyen d'intégrer de nouvelles sources de données et de les utiliser dans des applications. Les approches simples de développement de scripts et d'encodage d'opérations de nettoyage de données ou de règles métier dans le code présentent des inconvénients significatifs par rapport aux capacités des plates-formes d'intégration de données. Les possibilités de codage sont encore nombreuses car les plates-formes d'intégration de données nécessitent des extensions, des règles et des configurations spécifiques aux sources de données. Cependant, les plates-formes offrent des moyens robustes de gérer ce code, de gérer les exceptions et d'offrir d'autres capacités d'exploitation qui mettent à l'épreuve toute approche de bricolage.
Le catalogue de données offre alors aux développeurs une opportunité significative d'utiliser davantage de sources de données et d'analyses ou de modèles d'apprentissage machine dans des applications logicielles. En fait, l'un des principaux objectifs des entreprises est aujourd’hui de mieux utiliser leurs données afin de permettre aux employés, aux clients et aux partenaires de les exploiter avec des analyses appropriées et autorisées. Quoi de mieux que d'intégrer les données disponibles, les analyses ou les modèles d'apprentissage machine directement dans les applications pour les équipes de développement logiciel ?
Demandez à des spécialistes des données, et l'un de leurs principaux objectifs est de voir leurs modèles d'apprentissage machine intégrés dans des applications. Intégrer l'analyse au bénéfice des utilisateurs finaux, c'est la façon dont les scientifiques et les développeurs de logiciels collaborent et apportent de la valeur ajoutée à l'entreprise - c'est un avantage pour tous.