Data Science et Analytics for Business Défis et solutions

Alors que de plus en plus de sociétés découvrent l’importance de la science des données et de l’analyse avancée pour leurs résultats, un choc des cultures a commencé. Comment ces domaines en croissance rapide peuvent-ils devenir partie intégrante de l'écosystème d'une entreprise, en particulier pour les entreprises établies qui existent depuis une décennie ou plus? 

Les scientifiques de données et les professionnels de l'informatique ont des besoins très différents en matière d'infrastructure. Ici, je vais exposer certaines de ces exigences et expliquer comment aller au-delà et évoluer ensemble..

Perspectives départementales

Lors du lancement de programmes de science des données au sein d'une entreprise, les problèmes les plus importants ne proviennent souvent pas de la technologie elle-même, mais d'un simple problème de communication. Les idées fausses interministérielles peuvent donner lieu à de nombreuses réticences entre les nouvelles équipes de science des données et les services informatiques.. 

Pour lutter contre cela, nous allons examiner les deux perspectives et prendre en compte chacun de leurs besoins. Nous commencerons par définir ce dont un professionnel de l'informatique a besoin pour maintenir un flux de travail réussi, puis nous examinerons ce dont un scientifique de données a besoin pour obtenir une efficacité maximale. Enfin, nous trouverons un terrain d’entente: comment l’utiliser pour mettre en place une infrastructure saine pour que les deux s’épanouissent.

Il faut

Commençons par examiner une infrastructure de données typique pour le développement informatique et logiciel..

En ce qui concerne les données, tous les départements informatiques se concentrent sur trois conditions préalables essentielles: 

  • données sécurisées
  • des données efficaces
  • des données cohérentes

Pour cette raison, une grande partie du service informatique utilise des schémas basés sur des tables et utilise souvent le langage SQL (Structured Query Language) ou l'une de ses variantes..

Cette configuration signifie qu'il existe un grand nombre de tables pour chaque objectif. Chacune de ces tables est séparée les unes des autres et reliées par des clés étrangères. Grâce à cette configuration, les requêtes peuvent être exécutées rapidement, efficacement et dans un souci de sécurité. Ceci est important pour le développement de logiciels, où les données doivent rester intactes et fiables.

Avec cette structure, le matériel requis est souvent minime par rapport aux besoins de la science des données. Les données stockées sont bien définies et évoluent à un rythme prévisible. Une petite partie des données se répète et le processus de requête réduit la quantité de ressources de traitement nécessaires. 

Voyons en quoi la science des données diffère.

Besoins en science des données

De l'autre côté, la science des données a des besoins différents. Les scientifiques de données ont besoin de liberté de mouvement et de flexibilité pour modifier rapidement leurs données. Ils doivent être capables de déplacer des données de manière non standard et de traiter de grandes quantités à la fois..

Ces besoins sont difficiles à mettre en œuvre en utilisant des bases de données hautement structurées. La science des données nécessite une infrastructure différente, reposant sur des données non structurées et des schémas sans table..

Quand on parle de données non structurées, on parle de données sans définition intrinsèque. C'est nébuleux jusqu'à ce que donné par un informaticien. Pour la plupart des développements, chaque champ doit être d'un type défini, tel qu'un entier ou une chaîne. Pour la science des données, cependant, il s'agit de prendre en charge des points de données mal définis.

Les schémas sans table ajoutent plus de polyvalence à cette configuration quasi chaotique, permettant à toutes les informations de vivre au même endroit. C'est particulièrement utile pour les scientifiques qui ont régulièrement besoin de fusionner des données de manière créative et non structurée. Les choix courants incluent des variantes NoSQL ou des structures autorisant plusieurs dimensions, telles que les cubes OLAP..

En conséquence, le matériel nécessaire à la science des données est souvent plus important. Il devra contenir l'intégralité des données utilisées, ainsi que des sous-ensembles de ces données (bien que celles-ci soient souvent réparties entre plusieurs structures ou services). Le matériel peut également nécessiter des ressources de traitement considérables, car de grandes quantités de données sont déplacées et agrégées..

Distiller les besoins en action

Avec ces deux types de besoins en tête, nous pouvons maintenant voir comment une mauvaise communication peut survenir. Prenons ces perspectives et utilisons-les pour définir les changements que nous recherchons et comment. Quels problèmes doivent être résolus lors de l'intégration de la science des données dans un environnement informatique traditionnel??

Facilité de manipulation des données

Dans un environnement informatique traditionnel, les bases de données d'une entreprise donnée suivent probablement une structure rigide, avec des tables divisées pour répondre à des besoins spécifiques, un schéma approprié pour définir chaque élément de données et des clés étrangères pour les relier. Cela constitue un système efficace d’interrogation des données. La nature exploratoire de certaines méthodes de science des données peut pousser ceci à ses limites.

Lorsqu'une tâche commune peut nécessiter de rejoindre une douzaine de tables ou plus, les avantages des structures basées sur des tables deviennent moins évidents. Une méthode répandue consiste à implémenter une base de données NoSQL ou multidimensionnelle secondaire. Cette base de données secondaire utilise des ETL classiques (Extract, Transform, Load) pour conserver ses informations à jour. Cela ajoute le coût de l'utilisation supplémentaire de matériel ou de services cloud, mais minimise tout autre inconvénient..

Gardez à l'esprit que dans certains cas, l'ajout d'une base de données distincte pour la science des données peut être plus abordable que d'utiliser la même base de données (en particulier lorsque des problèmes de licence complexes entrent en jeu).

Facilité de mise à l'échelle des données

Ce problème spécifique recouvre deux inadéquations mentionnées:

  1. augmentations régulières des données des procédures
  2. besoin de types de données non structurés

En informatique traditionnelle, la taille de votre base de données est bien définie, soit en conservant la même taille, soit en augmentant à un rythme modéré. Lorsque vous utilisez une base de données pour la science des données, cette croissance peut être exponentielle. Il est courant d'ajouter des giga-octets de données chaque jour (ou plus). Compte tenu de la taille de ce type de données, une entreprise devra intégrer un plan de dimensionnement de l’architecture interne ou utiliser une solution cloud appropriée..

En ce qui concerne les données non structurées, elles peuvent demander beaucoup de ressources en termes de stockage et de puissance de traitement, en fonction de vos utilisations spécifiques. Pour cette raison, il est souvent inefficace de tout conserver dans une base de données qui pourrait être utilisée à d'autres fins. La solution est similaire à la mise à l'échelle en général. Nous aurons besoin d'un plan pour adapter notre architecture interne afin de répondre à ces besoins ou nous devrons trouver une solution cloud appropriée..

L'utilisation des ressources

La dernière différence majeure dont nous parlerons est l'utilisation des ressources. Pour les services informatiques, l'utilisation des ressources est généralement efficace, bien définie et cohérente. Si une base de données alimente un site de commerce électronique, des contraintes sont connues. Un informaticien saura approximativement combien d'utilisateurs il y aura sur une période donnée, afin de pouvoir planifier le provisionnement de son matériel en fonction de la quantité d'informations nécessaire pour chaque utilisateur..

Avec l’infrastructure informatique traditionnelle, aucun problème n’est rencontré si un projet n’utilise que quelques centaines de lignes d’une poignée de tables. Mais un projet qui nécessite chaque ligne de deux douzaines de tables peut rapidement devenir un problème. Dans la science des données, les besoins en termes de traitement et de stockage changent d'un projet à l'autre et ce genre d'imprévisibilité peut être difficile à supporter..

En informatique traditionnelle, les ressources peuvent être partagées avec d'autres parties, par exemple un site de production en direct ou une équipe de développement interne. Le risque ici est que l'exécution d'un projet de science des données à grande échelle pourrait potentiellement bloquer ces autres utilisateurs pendant un certain temps. Un autre risque est que les serveurs hébergeant une base de données risquent de ne pas être en mesure de traiter la quantité de traitement nécessaire. Appeler 200 000 lignes de 15 tables et demander l'agrégation des données en haut devient un problème. Cette quantité de requêtes peut être extrêmement éprouvante pour un serveur pouvant normalement gérer un millier d'utilisateurs simultanés..

La solution idéale se résume au traitement en nuage. Cela répond à deux facteurs clés. La première est que cela permet aux performances de requête de s’éloigner de toute base de données importante. La seconde est qu’il fournit des ressources de dimensionnement qui peuvent s’adapter à chaque projet..

Alors, quelle est la liste finale des exigences pour les deux?

Maintenant que nous avons parlé des besoins en profondeur, résumons-les. Un département informatique et informatique aura besoin des éléments suivants pour assurer son succès à long terme:

  • une base de données séparée pour réduire l'impact sur les autres parties prenantes
  • une solution de stockage évolutive adaptée aux changements de données
  • une solution de traitement de dimensionnement adaptée à différents types de projets
  • une base de données non structurée pour permettre l'extraction et le stockage efficaces de données extrêmement variables

Construire un cas pour la science des données

Décomposons tout en spécifications afin de pouvoir élaborer une solution mutuellement bénéfique. Voyons maintenant comment définir les ressources spécifiques nécessaires à une organisation:

Spécifications de recherche

Du côté informatique, trois définitions principales sont nécessaires pour créer l'infrastructure nécessaire. Ceux-ci sont: 

  1. la quantité de données
  2. dans quelle mesure il a besoin de traitement
  3. comment les données arriveront à la solution de stockage

Voici comment vous pouvez déterminer chaque.

Besoins de stockage de données

Tout commence avec la taille de données initiale requise et les ajouts de données en cours estimés.

Pour vos besoins en données initiales, prenez la taille définie de votre base de données actuelle. Soustrayez maintenant les colonnes ou les tableaux dont vous n’auriez pas besoin dans vos projets de science des données. Prenez ce nombre et ajoutez la taille des données de toutes les nouvelles sources que vous allez introduire. Les nouvelles sources peuvent inclure des données Google Analytics ou des informations provenant de votre système de point de vente. Ce total sera le stockage de données que nous chercherons à atteindre dès le départ.

Bien que les besoins de stockage initiaux soient utiles au départ, vous devrez toujours prendre en compte les besoins en données en continu, car vous ajouterez probablement plus d'informations à la base de données au fil du temps. Pour trouver cette information, vous pouvez calculer les données ajoutées quotidiennement à partir des données actuellement disponibles. Examinez la quantité d'informations ajoutées à votre base de données au cours des 30 derniers jours, puis divisez-les par 30. Répétez cette opération pour chaque source d'informations que vous allez utiliser, puis additionnez-les.. 

Bien que ce ne soit pas précis, il existe un vieux mantra du développement selon lequel vous devriez doubler votre estimation, et nous allons l'utiliser ici. Pourquoi? Nous souhaitons prendre en compte les modifications imprévisibles susceptibles d'affecter vos besoins en matière de stockage de données, telles que la croissance de l'entreprise, les besoins spécifiques à chaque projet ou uniquement les domaines généraux..

Ce nombre étant maintenant défini, multipliez-le par 365. Il s’agit maintenant de la croissance projetée des données pour un an. Si elle est ajoutée à votre montant initial, elle déterminera la quantité de stockage à rechercher..

Traitement des besoins en ressources

Contrairement aux besoins de stockage de données, les besoins de traitement sont beaucoup plus difficiles à calculer avec précision. L'objectif principal ici est de décider si vous souhaitez mettre le poids du poids sur les requêtes ou sur une machine locale (ou une instance de cloud). Gardez à l'esprit que lorsque je parle d'une machine locale, je ne parle pas seulement de l'ordinateur que vous utilisez normalement. Vous aurez probablement besoin d'une sorte de station de travail optimisée pour les calculs plus intensifs..

Pour faire ce choix, il est utile de penser au plus grand projet de science des données que vous pourriez exécuter au cours de la prochaine année. Votre solution de données peut-elle traiter une requête de cette taille sans devenir inaccessible à toutes les autres parties prenantes? Si c'est le cas, vous pouvez continuer sans ressources supplémentaires. Sinon, vous devrez prévoir un poste de travail de taille appropriée ou une mise à l'échelle d'instances cloud..

Processus ETL (Extraire, Transformer, Charger)

Après avoir décidé où stocker et traiter vos données, la décision suivante est de savoir comment. La création d'un processus ETL maintiendra votre base de données Data Science en ordre et à jour et l'empêchera d'utiliser des ressources inutiles provenant d'ailleurs.

Voici ce que vous devriez avoir dans votre documentation ETL:

  • toutes les procédures de sauvegarde qui devraient avoir lieu
  • où les données viendront et où il ira
  • les dimensions exactes à déplacer
  • combien de fois le transfert devrait avoir lieu
  • si le transfert doit être complet (réécrire toute la base de données) ou peut être additif (ne déplacer que de nouvelles choses)

Préparer une solution

Avec tous les points de données en main, il est temps de choisir une solution. Cette partie demandera un peu de recherche et dépendra beaucoup de vos besoins spécifiques, car à la surface, ils ont tendance à avoir beaucoup de similitudes..

Trois des plus grandes solutions cloud - Amazon Web Services (AWS), Google Cloud Platform (GCP) et Microsoft Azure - offrent certains des meilleurs prix et fonctionnalités. Tous les trois ont des coûts relativement similaires, bien qu'AWS soit nettement plus difficile à calculer des coûts pour à la carte structure tarifaire).

Au-delà du prix, chacun offre un stockage de données évolutif et la possibilité d'ajouter des instances de traitement, bien que chacun appelle ses «instances» sous un nom différent. Lorsque vous recherchez laquelle utiliser pour votre propre infrastructure, tenez compte des types de projets que vous utiliserez le plus, car cela peut modifier la valeur des prix et des fonctionnalités de chacun..

Cependant, de nombreuses entreprises choisissent simplement ce qui correspond à leur technologie existante.

Vous voudrez peut-être également configurer votre propre infrastructure en interne, bien que celle-ci soit nettement plus complexe et qu'elle ne soit pas pour les âmes sensibles.

Conseils supplémentaires pour une mise en œuvre fluide

Avec tous vos canards dans une rangée, vous pouvez commencer la mise en œuvre! Pour vous aider, voici quelques conseils durement acquis pour rendre votre projet plus facile, du pitch à l'exécution..

Testez votre processus ETL

Lorsque vous établissez votre processus ETL pour la première fois, ne testez pas tout cela en même temps! Cela peut peser lourdement sur vos ressources et augmenter considérablement vos coûts de cloud computing en cas d'erreur ou de tentative répétée du processus..

Au lieu de cela, c'est une bonne idée d'exécuter votre processus en utilisant d'abord les 100 premières lignes ou plus de vos tables d'origine. Puis lancez le transfert complet une fois que vous savez que cela fonctionnera.

Testez vos requêtes aussi

Il en va de même pour toute requête volumineuse que vous exécutez sur une instance de cloud. Faire une erreur qui extrait des millions de données est beaucoup plus difficile pour un système que celui qui n'en extrait que quelques-unes, surtout lorsque vous payez par Go..

Créer une stratégie de sauvegarde d'entreposage

La plupart des opérateurs de cloud proposent cette fonctionnalité, vous n'avez donc peut-être pas à vous en soucier. Votre équipe doit néanmoins déterminer si elle souhaite créer ses propres sauvegardes régulières des données ou s'il est plus efficace de reconstruire les données en cas de besoin..

Problèmes de sécurité et de confidentialité

Lorsque vous transférez des données clients vers le cloud, assurez-vous que toutes les personnes impliquées sont au courant des stratégies de gouvernance des données de votre entreprise afin d'éviter les problèmes futurs. Cela peut également vous aider à économiser de l'argent sur la quantité de données stockées dans le cloud..

Nom de la dimension pendant l'ETL

Lors de l'exécution de votre ETL à partir d'une base de données basée sur des tables vers une base de données non structurée, faites attention aux procédures de nommage. Si les noms sont simplement transférés en gros, vous aurez probablement beaucoup de champs de différentes tables partageant le même nom. Un moyen simple de résoudre ce problème consiste tout d'abord à nommer vos nouvelles dimensions dans la base de données non structurée. oldtablename _ columnname et ensuite les renommer à partir de là.

Faites fonctionner votre moteur!

Vous pouvez maintenant planifier les bases de votre infrastructure d'analyse et de science des données. Avec de nombreuses questions et réponses clés définies, le processus de mise en œuvre et l'obtention de l'adhésion de la direction devraient aller beaucoup plus facilement. 

Vous avez des difficultés à trouver des réponses pour votre propre entreprise? Ai-je dissimulé quelque chose d'important? Faites-moi savoir dans les commentaires!