Construire un lac de données

Cet article explique comment créer un lac de données sur Google Cloud Platform (GCP). Un lac de données offre aux entreprises comme la vôtre la flexibilité nécessaire pour rassembler tous les aspects de vos activités commerciales sous forme de données. Avec le temps, ces données s'accumulent et peuvent atteindre des pétaoctets, voire des exaoctets. Cependant, grâce à la séparation du stockage et du calcul, il est aujourd'hui plus économique que jamais de les stocker toutes.

Après avoir capturé et stocké les données, vous pouvez utiliser diverses techniques de traitement pour en extraire des renseignements. L'entreposage de données a toujours été l'approche standard pour effectuer des analyses commerciales. Cependant, cette approche nécessite des schémas assez rigides destinés à certains types de données bien compris, comme les commandes, les détails de commande et les inventaires. Les analyses qui reposent uniquement sur l'entreposage traditionnel compliquent la gestion des données non conformes à un schéma bien défini, car celles-ci sont souvent supprimées et perdues à jamais.

Passer de l'entreposage à une approche de type lac de données, qui consiste à tout stocker, n'est utile que s'il est encore possible d'extraire des renseignements de toutes les données. Les data scientists, les ingénieurs et les analystes souhaitent généralement utiliser les outils de leur choix pour traiter et analyser les données stockées dans un lac. De plus, le lac doit pouvoir ingérer de grandes quantités de données provenant de multiples sources.

En tenant compte de ces considérations, voici comment vous pouvez créer un lac de données sur GCP. Le schéma suivant décrit les étapes clés du processus.

Les étapes clés d'une solution de lac de données

Cet article examine chacune de ces étapes plus en détail et explique en quoi GCP peut vous aider.

Stockage : utiliser Cloud Storage comme lac de données

Pour de nombreuses raisons, Cloud Storage est parfaitement adapté pour servir de dépôt de stockage central.

Performances et durabilité : avec Cloud Storage, vous pouvez commencer avec quelques petits fichiers et agrandir votre lac de données jusqu'à ce qu'il atteigne des exaoctets. Cloud Storage est compatible avec l'ingestion de grands volumes de nouvelles données et la consommation de grands volumes de données stockées conjointement à d'autres services comme Cloud Pub/Sub. Bien que les performances soient essentielles pour un lac de données, la durabilité l'est encore plus. Cloud Storage est conçu pour offrir une durabilité annuelle de 99,999999999 %.

Cohérence forte : une des caractéristiques clés qui distingue Cloud Storage de nombreuses autres solutions de stockage d'objets est sa compatibilité avec une forte cohérence dans les scénarios comme les opérations de lecture après écriture, la création de listes de buckets et d'objets, et l'autorisation d'accès aux ressources. Sans cette cohérence, vous devez mettre en œuvre des solutions complexes et chronophages permettant de déterminer le moment où les données sont disponibles pour le traitement.

Rentabilité : Cloud Storage propose un certain nombre de classes de stockage à des prix différents afin de s'adapter à des besoins variés en termes d'accès et de disponibilité, et d'offrir la flexibilité nécessaire pour équilibrer les coûts et la fréquence d'accès aux données. Sans sacrifier les performances, vous pouvez accéder aux données à partir de ces différentes classes de stockage en utilisant une API cohérente. Par exemple, vous pouvez archiver les données rarement utilisées sur Cloud Storage Nearline ou Cloud Storage Coldline à l'aide d'une stratégie de cycle de vie, puis y accéder ultérieurement, entre autres pour collecter des données d'entraînement pour le machine learning, avec une latence inférieure à une seconde.

Traitement flexible : Cloud Storage offre une intégration native avec plusieurs services GCP ultraperformants, comme BigQuery, Cloud Dataproc, (écosystème Hadoop), Cloud Dataflow pour l'analyse sans serveur, Cloud Video Intelligence et Cloud Vision, et enfin AI Platform, pour vous permettre de choisir l'outil adéquat pour analyser vos données.

Dépôt central : en offrant un emplacement central pour le stockage des données et la possibilité à tous les services et équipes d'y accéder, Cloud Storage permet d'éviter les cloisonnements entre les données qui doivent être synchronisées.

Sécurité : les lacs de données étant conçus pour stocker tous les types de données, les entreprises exigent de puissantes capacités de contrôle des accès pour éviter que leurs données ne tombent entre de mauvaises mains. Cloud Storage dispose de nombreux mécanismes pour mettre en œuvre un contrôle d'accès précis sur vos éléments de données.

Ingestion de données

L'architecture d'un lac de données doit permettre l'ingestion de volumes variables de données provenant de différentes sources, comme des capteurs de l'Internet des objets (IdO), une activité de flux de clics sur des sites Web, des données de traitement des transactions en ligne (OLTP) et des données sur site, pour ne citer que quelques exemples. Dans cette section, vous apprendrez comment GCP peut prendre en charge une grande variété de cas d'utilisation d'ingestion.

Cloud Pub/Sub et Cloud Dataflow : vous pouvez ingérer et stocker des données en temps réel directement dans Cloud Storage, en effectuant un scaling en fonction du volume de données.

Service de transfert de stockage : pour transférer de grandes quantités de données, il suffit rarement d'exécuter une seule commande. Vous devez résoudre des problèmes tels que planifier les transferts de données périodiques, synchroniser les fichiers entre la source et le récepteur, ou déplacer des fichiers de manière sélective en fonction de filtres. Le service de transfert de stockage fournit un mécanisme robuste permettant d'effectuer ces tâches.

gsutil : pour les transferts ponctuels ou ceux déclenchés manuellement, vous pouvez envisager d'utiliser gsutil, un outil de ligne de commande Open Source disponible sous Windows, Linux, et Mac. Il est compatible avec les transferts multithread, les transferts traités, les importations composites parallèles, les tentatives multiples et les possibilités de reprise.

Transfer Appliance : en fonction de la bande passante de votre réseau, si vous souhaitez transférer de larges volumes de données dans le cloud pour les analyser, vous pourrez probablement gagner du temps pour effectuer une migration hors ligne avec Transfer Appliance.

Vous pouvez consulter une présentation plus détaillée des options d'ingestion et des principaux critères de décision dans le choix d'une option d'ingestion.

Traitement et analyse

Une fois les données ingérées et stockées, l'étape suivante consiste à les rendre disponibles pour analyse. Dans certains cas, vous pouvez stocker des données dans un schéma bien compris immédiatement après leur ingestion, ce qui simplifie les requêtes sur place. Par exemple, si vous stockez des données entrantes au format Avro dans Cloud Storage, vous pouvez procéder comme suit :

  • Utilisez Hive sur Cloud Dataproc pour émettre des requêtes SQL sur les données.
  • Émettez des requêtes directement sur les données depuis BigQuery.
  • Chargez les données dans BigQuery et interrogez-les.

Cependant, vous ne pouvez pas toujours transformer les données en un schéma connu, car elles sont ingérées et stockées. De fait, la raison principale de maintenir un lac de données au lieu d'un entrepôt de données est de tout stocker maintenant afin que vous puissiez extraire des renseignements plus tard. En fonction de la nature des données brutes et des types d'analyse impliqués, le workflow peut être simple ou complexe. Le schéma suivant offre une vue d'ensemble.

Vue d'ensemble d'un workflow de lac de données

Explorer les données

Étant donné qu'une grande partie des données stockées dans le lac ne peut pas être immédiatement utilisée, vous devez d'abord explorer ces données pour déterminer leur valeur latente. Jupyter Notebook est un outil idéal pour l'exploration des données brutes. C'est pourquoi GCP propose Cloud Datalab, un service Jupyter Notebook entièrement géré.

Une large gamme de bibliothèques de données telles que TensorFlow et NumPy sont préinstallées dans Cloud Datalab. En plus de Cloud Datalab, vous avez accès à l'écosystème traditionnel Hadoop d'outils Cloud Dataproc et à une fonctionnalité d'analyse entièrement sans serveur avec Cloud Dataflow. Pour une analyse puissante basée sur SQL, ces outils peuvent transformer des données brutes avec Cloud Dataprep by Trifacta et les charger dans BigQuery.

Lorsque vous comprenez le potentiel analytique d'un sous-ensemble de données brutes dans le lac, vous pouvez rendre ce sous-ensemble accessible à un public plus large.

Concevoir et déployer des workflows

Rendre un sous-ensemble de données plus largement disponible signifie créer des magasins de données ciblés, comme indiqué dans le schéma précédent. Vous pouvez maintenir ces magasins de données à jour en utilisant des pipelines de données orchestrés qui prennent les données brutes et les transforment en un format que les processus en aval et les utilisateurs peuvent exploiter. Ces pipelines varient en fonction de la nature des données et des types d'analyse utilisés. Vous trouverez ci-après quelques exemples de workflows d'analyse courants et comment les mettre en œuvre sur GCP.

Transformer les données brutes et les charger dans BigQuery

Dans le workflow simple mais courant illustré dans le schéma ci-dessous, vous utilisez un processus d'extraction, de transformation et de chargement (ETL, Extract, Transform and Load) pour ingérer des données dans un entrepôt de données BigQuery. Vous pouvez ensuite interroger les données à l'aide de SQL. Cloud Dataprep, un outil visuel de nettoyage et de préparation des données, convient parfaitement aux tâches ETL simples. Cloud Dataflow avec Apache Beam offre une flexibilité supplémentaire pour les tâches ETL plus complexes.

Workflow de chargement de données dans BigQuery

Analyse par lot

Si vous souhaitez utiliser l'écosystème de produits Hadoop pour l'analyse par lot, stockez vos données transformées dans un emplacement Cloud Storage distinct. Ensuite, vous pouvez utiliser Cloud Dataproc pour exécuter des requêtes sur ces données en utilisant Spark, Spark SQL, SQL sur Hive et outils similaires. Apache Avro, Apache Parquet et Apache ORC sont des formats populaires pour ces données affinées. Le schéma suivant synthétise ce workflow.

Utilisation des produits Hadoop pour l'analyse par lot

Analyse en temps réel

Si vous souhaitez un pipeline simple, basé sur SQL, le traitement par flux sur BigQuery vous permet d'interroger les données au fur et à mesure qu'elles sont ingérées. L'ajout de Cloud Pub/Sub et de Cloud Dataflow avec Beam offre une capacité de traitement par flux plus approfondie afin que, par exemple, vos utilisateurs puissent effectuer des agrégations, un fenêtrage et un filtrage avant de stocker des données dans BigQuery. Pour l'analyse de séries temporelles, vous pouvez stocker les données ingérées dans Cloud Bigtable pour accélérer l'analyse rapide. Le schéma suivant illustre ce workflow.

Stocker des données dans Cloud Bigtable pour l'analyse en temps réel

Machine learning

Le machine learning peut tirer d'énormes bénéfices de la grande quantité de données d'un lac. Une fois que vous avez identifié les données d'entraînement utiles, les étapes de préparation des données associées et l'architecture du réseau de machine learning, vous pouvez orchestrer ces étapes comme indiqué dans le schéma suivant. AI Platform permet de renforcer les modèles pour ensuite les utiliser afin d'effectuer des prédictions par lot ou en ligne.

Orchestrer des données pour le machine learning

Tous les cas d'utilisation du machine learning ne justifient pas la conception et l'entraînement de modèles personnalisés. GCP comprend des modèles pré-entraînés pour la synthèse vocale, la vision, l'intelligence vidéo et le traitement du langage naturel. Dans ces cas, vous transmettez les entrées appropriées, telles que les données audio, les images ou les vidéos, au service GCP correspondant. Vous pouvez ensuite extraire des métadonnées utiles et les stocker dans un service tel que BigQuery pour procéder à une interrogation et à une analyse plus approfondies. Le schéma ci-dessous illustre ce workflow.

Utiliser des modèles de machine learning pré-entraînés

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…