Cycle de vie des données

Cet article décrit les services Google Cloud que vous pouvez utiliser pour gérer les données tout au long de leur cycle de vie, de leur acquisition initiale à leur visualisation finale. Il présente les caractéristiques et fonctionnalités de chaque service, ce qui vous permettra de choisir en toute connaissance de cause les services qui conviennent le mieux à votre charge de travail.

Le cycle de vie des données comporte quatre étapes.

  • Ingestion : la première étape consiste à importer les données brutes. Il peut s'agir de données transmises en streaming par des appareils, de données stockées sur site et transmises par lots, de journaux d'applications, ou encore d'analyses et événements concernant les utilisateurs d'applications mobiles.

  • Stockage : une fois les données récupérées, elles doivent être stockées dans un format durable et facile d'accès.

  • Traitement et analyse : à cette étape, les données brutes sont transformées pour faire apparaître des informations exploitables.

  • Exploration et visualisation : l'étape finale consiste à convertir les résultats de l'analyse dans un format facile à exploiter et à partager avec des collègues et des pairs.

Pour chacune de ces étapes, Google Cloud propose plusieurs services permettant de gérer vos données. Cela signifie que vous pouvez sélectionner un ensemble de services adaptés à vos données et à votre workflow.

Services Google Cloud : cycle de vie des données

Ingestion

Il existe un certain nombre d'approches que vous pouvez adopter pour collecter des données brutes. L'approche à privilégier dépendra du volume de données concerné, de la source des données et de la latence tolérable.

  • Application : les données des événements d'application, par exemple les fichiers journaux ou les événements utilisateur, sont généralement collectées par le biais d'un modèle de type Push, dans lequel l'application appelle une API pour envoyer les données vers le stockage.

  • Streaming : les données sont constituées d'un flux continu de courts messages asynchrones.

  • Lot : de grandes quantités de données sont stockées dans un ensemble de fichiers qui sont transférés en bloc vers un espace de stockage.

Le graphique ci-dessous illustre la correspondance entre les services Google Cloud et les charges de travail de type application, streaming et lot.

Services Google Cloud : approches de collecte des données (application, streaming et lot)

Le modèle de transfert de données que vous choisissez dépend de votre charge de travail. Chaque modèle a ses propres exigences en matière d'infrastructure.

Ingérer des données provenant d'applications

Les applications et services génèrent une quantité importante de données. Ces données incluent entre autres les journaux d'événements des applications, les données relatives à des flux de clics, les interactions au sein de réseaux sociaux, ou encore les transactions de commerce électronique. La collecte et l'analyse de ces données basées sur des événements peuvent révéler les tendances au niveau des utilisateurs et fournir de précieux insights métier.

Google Cloud propose un éventail de services que vous pouvez utiliser pour héberger des applications, allant des machines virtuelles Compute Engine à la plate-forme gérée App Engine, en passant par la gestion de conteneurs avec Google Kubernetes Engine (GKE).

Le fait d'héberger vos applications sur Google Cloud vous donne accès à des outils et des processus intégrés permettant d'envoyer vos données vers le riche écosystème de services de gestion de données de Google Cloud.

Voici quelques exemples.

  • Écrire des données dans un fichier : une application génère des fichiers CSV par lots dans le service de stockage d'objets Cloud Storage. De là, la fonction d'importation de BigQuery, un entrepôt de données d'analyse, peut extraire les données pour les analyser et les interroger.

  • Écrire des données dans une base de données : une application écrit des données dans l'une des bases de données que propose Google Cloud, par exemple la base MySQL gérée Cloud SQL, ou encore l'une des bases NoSQL fournies par Datastore ou Cloud Bigtable.

  • Transmettre des données en flux continu sous forme de messages : une application diffuse des données vers Pub/Sub, un service de messagerie en temps réel. Une seconde application, abonnée aux messages, peut transférer les données vers le système de stockage, ou encore les traiter immédiatement dans le cadre d'un processus de détection de fraude.

Cloud Logging : une gestion centralisée des journaux

Cloud Logging est un service de gestion centralisée des journaux qui collecte les données de journalisation provenant des applications exécutées sur Google Cloud et sur d'autres plates-formes de cloud public ou privé. Vous pouvez exporter les données collectées par Cloud Logging à l'aide d'outils intégrés qui les envoient vers Cloud Storage, Pub/Sub et BigQuery.

De nombreux services Google Cloud enregistrent automatiquement les données de journalisation dans Cloud Logging. Par exemple, les applications exécutées sur App Engine consignent automatiquement les détails de chaque requête et chaque réponse dans Cloud Logging. Vous pouvez également écrire des messages de journalisation personnalisés dans stdout et stderr, deux fichiers que Cloud Logging collecte et affiche automatiquement dans la visionneuse de journaux.

Cloud Logging fournit un agent de journalisation basé sur fluentd, que vous pouvez exécuter sur des instances de machine virtuelle (VM) hébergées sur Compute Engine ainsi que sur des clusters de conteneurs gérés par GKE. Cet agent diffuse les données de journalisation du système et des applications tierces courantes vers Cloud Logging.

Ingérer des données en streaming

Les données en streaming sont transmises de manière asynchrone, sans attente de réponse, et les messages individuels sont de petite taille. Généralement, les données en streaming sont utilisées pour la télémétrie, c'est-à-dire la collecte de données à partir d'appareil dispersés géographiquement. Les données en streaming peuvent être utilisées pour amorcer des déclencheurs d'événements, pour réaliser une analyse de session complexe ou encore comme entrée pour des tâches de machine learning.

Voici deux utilisations courantes des données en streaming.

  • Données de télémétrie : les appareils IdO (Internet des Objets) sont des appareils connectés au réseau qui collectent des données dans leur environnement direct par le biais de capteurs. Même si chaque appareil n'envoie qu'un seul point de données par minute, lorsque vous récupérez ces données depuis un grand nombre d'appareils, vous devez rapidement recourir à des stratégies et modèles de Big Data.

  • Événements utilisateur et analyses : une application mobile peut consigner des événements dès que l'utilisateur ouvre l'application, et à chaque fois qu'une erreur ou un plantage se produit. Toutes les données collectées pour l'ensemble des appareils mobiles sur lesquels l'application est installée fournissent des informations précieuses sur son utilisation et sur la qualité de son code. Elles permettent en outre de surveiller les métriques associées à l'application.

Pub/Sub : une messagerie en temps réel

Pub/Sub est un service de messagerie en temps réel qui vous permet d'envoyer et de recevoir des messages entre différentes applications. L'un des principaux cas d'utilisation de la messagerie inter-applications est l'ingestion de données d'événements en streaming. Avec les données en streaming, Pub/Sub gère automatiquement tous les détails de la segmentation, de la réplication, de l'équilibrage de la charge et du partitionnement des flux de données entrants.

Dans la plupart des cas, les données en streaming sont générées par des utilisateurs ou des systèmes répartis à travers le monde. Pub/Sub offre des points de terminaison dans le monde entier et exploite l'équilibreur de charge frontal global de Google pour assurer l'ingestion de données dans l'ensemble des régions Google Cloud avec une latence minimale. De plus, Pub/Sub s'adapte rapidement et automatiquement pour répondre à la demande, sans que le développeur ait besoin de pré-provisionner les ressources système. Pour plus de détails sur les capacités de scaling de Pub/Sub, consultez l'étude de cas concernant Spotify.

Les sujets constituent la base de l'organisation des flux de messages dans Pub/Sub. Les applications qui diffusent des données en streaming vers Pub/Sub ciblent un sujet spécifique. À la réception d'un message, Pub/Sub lui associe un identifiant et un horodatage uniques.

Une fois que les données sont ingérées, les applications peuvent récupérer les messages relatifs à un sujet spécifique si elles sont abonnées à ce sujet. Pour cela, il est possible d'utiliser un modèle pull ou un modèle push. Dans le cas d'un abonnement push, le serveur Pub/Sub envoie une requête à l'application abonnée sur un point de terminaison d'URL préconfiguré. Dans le modèle pull, l'abonné demande les messages au serveur et en accuse réception. Avec Pub/Sub, vous avez la garantie que les messages seront distribués au moins une fois à chaque abonné.

Pub/Sub n'offre aucune garantie quant à l'ordre de livraison des messages. Vous pouvez mettre en place un ordre strict dans les messages au moyen d'une mise en mémoire tampon. Dans la plupart des cas, Dataflow est utilisé pour cela.

Pub/Sub est fréquemment utilisé pour transférer des données en streaming vers Dataflow dans une optique de traitement en temps réel (basé sur l'heure réelle de survenue des événements). Une fois les données traitées, vous pouvez les déplacer vers un service de stockage persistant, tel que Datastore ou BigQuery, qui accepte les requêtes ordonnées par horodatage d'application.

Ingérer des données groupées

Les "données groupées" sont de grands ensembles de données dont l'ingestion nécessite une importante bande passante agrégée entre un petit nombre de sources et la cible. Les données peuvent être stockées dans des fichiers de type CSV, JSON, Avro ou Parquet, ou dans une base de données relationnelle ou NoSQL. Les données sources peuvent être localisées sur site ou sur d'autres plates-formes de cloud.

Voici quelques cas d'utilisation illustrant l'ingestion de données groupées.

  • Charges de travail scientifiques : transfert de données génétiques stockées dans des fichiers texte VCF (Variant Call Format) vers Cloud Storage, en vue d'une importation ultérieure dans la plate-forme Genomics.

  • Migration vers le cloud : déplacement des données stockées dans une base de données Oracle sur site vers une base Cloud SQL entièrement gérée à l'aide d'Informatica.

  • Sauvegarde de données : réplication des données stockées dans un bucket AWS sur Cloud Storage à l'aide du service de transfert Cloud Storage.

  • Importation de données anciennes : copie vers BigQuery des fichiers journaux d'un site Web générés sur dix ans afin d'effectuer l'analyse des tendances à long terme.

Google Cloud et les entreprises partenaires fournissent un éventail d'outils que vous pouvez exploiter pour charger de grands ensembles de données dans Google Cloud.

Le service de transfert de stockage : un service géré de transfert de fichiers

Le service de transfert de stockage gère le transfert de données vers un bucket Cloud Storage. La source de données peut être un bucket AWS S3, une URL accessible sur le Web ou un autre bucket Cloud Storage. Le service de transfert de stockage est destiné au transfert de données groupées. Il est optimisé pour des volumes de données supérieurs à 1 To.

La sauvegarde de données est une utilisation courante du service de transfert de stockage. Vous pouvez sauvegarder dans un bucket Cloud Storage les données hébergées chez d'autres fournisseurs de stockage. Vous pouvez également déplacer des données entre des buckets Cloud Storage, par exemple archiver des données stockées dans un bucket de stockage standard sur un bucket de stockage Archive afin de réduire les coûts de stockage.

Le service de transfert de stockage accepte les transferts ponctuels ou récurrents. Il fournit des filtres avancés basés sur les dates de création des fichiers, les noms des fichiers et les heures de la journée auxquelles vous préférez importer les données. Il gère également la suppression des données sources une fois que celles-ci ont été copiées.

Le service de transfert de données BigQuery : un service géré de transfert de données d'application

Le service de transfert de données BigQuery automatise le transfert de données depuis des applications SaaS telles que Google Ads et Google Ad Manager de manière programmée et gérée, créant ainsi les fondations d'un entrepôt de données sans écrire une seule ligne de code.

La source de données peut être une source d'application Google telle que Google Ads, Campaign Manager, Google Ad Manager ou YouTube.

Une fois le transfert de données configuré, le service de transfert de données BigQuery charge automatiquement les données dans BigQuery à intervalles réguliers. Il est également compatible avec les remplissages de données déclenchés par l'utilisateur pour la récupération en cas de panne ou pour combler des écarts.

Transfer Appliance : un serveur de stockage haute capacité que vous pouvez expédier

Transfer Appliance est un serveur de stockage haute capacité que vous louez à Google. Vous le connectez à votre réseau pour y charger vos données, puis vous l'expédiez à un prestataire d'importation qui se chargera de transférer les données vers Cloud Storage. Transfer Appliance est disponible en plusieurs capacités. En outre, selon la nature de vos données, vous pouvez éventuellement utiliser la déduplication et la compression pour augmenter la capacité réelle de l'appareil de manière significative.

Pour déterminer s'il est judicieux d'utiliser Tranfer Appliance, calculez la durée nécessaire pour transférer vos données à l'aide d'une connexion réseau. Si cela risque de prendre une semaine ou plus, ou si vous avez plus de 60 To de données à envoyer (indépendamment de la vitesse de transfert), Transfer Appliance peut constituer une solution plus fiable et plus rapide.

Transfer Appliance déduplique et compresse les données capturées, en utilisant un chiffrement AES-256 fort basé sur le mot de passe et la phrase secrète que vous avez fournis pour garantir leur sécurité. Lorsque vous souhaitez lire vos données depuis Cloud Storage, vous devez spécifier ce mot de passe et cette phrase secrète. Après chaque utilisation de Transfer Appliance, les données sont effacées de manière sécurisée et une nouvelle image système est installée. Vous avez ainsi l'assurance que les utilisateurs suivants ne pourront pas accéder à vos données.

Cloud Storage gsutil : interface de ligne de commande

Cloud Storage intègre gsutil, un utilitaire de ligne de commande que vous pouvez employer pour déplacer des données basées sur des fichiers depuis tout système de fichiers existant vers Cloud Storage. Développé en Python, gsutil peut être exécuté sur les systèmes Linux, macOS et Windows. Outre le fait de déplacer des données vers Cloud Storage, gsutil vous permet également de créer et gérer des buckets Cloud Storage, de modifier les droits d'accès aux objets et de copier des objets depuis Cloud Storage. Pour plus d'informations sur l'utilisation de gsutil pour l'ingestion de données par lots, consultez la page Rédiger des scripts de transfert de production.

Outils de migration de bases de données

Si vos données sources sont stockées dans une base de données, que ce soit sur site ou chez un autre fournisseur cloud, plusieurs applications tierces vous permettent de migrer vos données de façon groupée vers Google Cloud. Ces applications sont souvent déployées dans le même environnement que les systèmes sources (colocalisation) et permettent d'effectuer des transferts ponctuels ou réguliers. Des applications telles que Talend et Informatica fournissent des fonctionnalités d'extraction, de transformation et de chargement (ETL), et intègrent nativement la compatibilité avec Google Cloud.

Google Cloud propose plusieurs bases de données cibles adaptées à la migration de données à partir de bases de données externes.

  • Bases de données relationnelles : les données stockées dans un système de gestion de bases de données relationnelles (SGBDR) peuvent être migrées vers Cloud SQL et Cloud Spanner.

  • Entrepôts de données : les données stockées dans un entrepôt peuvent être déplacées vers BigQuery.

  • Bases de données NoSQL : les données stockées dans une base de données NoSQL orientée colonnes, par exemple HBase ou Cassandra, peuvent être migrées vers Cloud Bigtable. Les données stockées dans une base de données NoSQL orientée JSON, telle que Couchbase ou MongoDB, peuvent être migrées vers Datastore.

Solutions partenaires

Certains partenaires Google Cloud proposent des solutions complémentaires axées sur le déplacement de données en masse.

  • WANDisco fournit l'outil LiveMigrator, qui automatise le transfert de données d'un stockage local sur site et en réseau vers des clusters Dataproc.

  • Tervela propose l'outil Cloud FastPath, qui automatise la migration des données et la synchronisation du système de fichiers local avec Cloud Storage.

  • Iron Mountain et Prime Focus offrent tous deux la possibilité de charger des données dans Cloud Storage depuis des supports physiques tels que les lecteurs de disque dur, les bandes magnétiques et les clés USB.

Stockage

Il existe une grande variété dans les données en termes de forme et de volume, et leur structure dépend entièrement des sources qui les ont générées et des cas d'utilisation ultérieurs envisagés. Pour les charges de travail de données et d'analyse, les données ingérées peuvent être stockées dans de nombreux formats et à de nombreux emplacements.

Services Google Cloud : différents types de stockage des données

Stocker des objets de données

Les fichiers constituent un format courant pour le stockage des données, en particulier pour les données groupées. Avec Google Cloud, vous pouvez transférer vos données sous forme de fichiers vers Cloud Storage, ce qui permet de les rendre disponibles pour un grand nombre de services.

Cloud Storage : un système de stockage d'objets géré

Cloud Storage offre un stockage d'objets durable et hautement disponible pour les données structurées ou non structurées. Ces données peuvent être par exemple des fichiers journaux, des fichiers d'exportation et de sauvegarde de base de données, des images ou d'autres fichiers binaires. Les fichiers hébergés dans Cloud Storage sont organisés par projet dans des buckets individuels. Pour sécuriser ces buckets, vous pouvez utiliser soit des listes de contrôle d'accès (LCA) personnalisées, soit un système de gestion centralisée des identités et des accès (IAM).

Cloud Storage est une couche de stockage distribuée, accessible aux applications et services exécutés sur App Engine, GKE ou Compute Engine, ainsi qu'à d'autres services tels que Cloud Logging.

Voici quelques cas d'utilisation illustrant le stockage de données.

  • Sauvegarde des données et reprise après sinistre : Cloud Storage offre un stockage hautement durable et plus sécurisé pour la sauvegarde et l'archivage de vos données.

  • Distribution de contenus : Cloud Storage permet de stocker et servir des contenus. Vous pouvez ainsi, par exemple, disposer d'une solution évolutive pour le stockage et la diffusion de fichiers multimédias.

  • Stockage des données ETL : Dataflow peut accéder aux données Cloud Storage pour les transformer et les charger dans d'autres systèmes tels que Cloud Bigtable ou BigQuery.

  • Stockage des données pour les tâches MapReduce : pour les tâches Hadoop et Spark, il est possible d'accéder de manière native aux données de Cloud Storage à l'aide de Dataproc.

  • Stockage des données de requête : BigQuery peut importer des données de Cloud Storage dans des ensembles de données et des tables. Il est également possible de fédérer des requêtes sur des données existantes sans importation. Pour un accès direct, BigQuery accepte nativement l'importation de fichiers CSV, JSON et Avro depuis un bucket Cloud Storage spécifié.

  • Intégration du machine learning : les API de machine learning de Google Cloud telles que Cloud Vision ou Cloud Natural Language peuvent accéder aux données et aux fichiers stockés directement dans Cloud Storage.

  • Archivage des données inactives : les stockages Nearline, Coldline et Archive offrent un stockage à faible latence et à moindre coût pour les objets auxquels vous prévoyez d'accéder, respectivement, moins d'une fois par mois, moins d'une fois par trimestre ou moins d'une fois par an.

Cloud Storage offre plusieurs classes de stockage répondant aux différentes exigences des applications et services en termes de disponibilité et de performances.

  • Le stockage standard offre les niveaux de disponibilité les plus élevés et convient au stockage de données fréquemment consultées, qui nécessite un accès à faible latence, comme les données utilisées par les instances Compute Engine. Parmi les cas d'utilisation typiques, on peut citer la diffusion de contenus de sites Web, les charges de travail de stockage interactives, les données utilisées par des applications mobiles ou des jeux, les calculs qui utilisent beaucoup de données et le traitement big data.

  • Le stockage Nearline est un service peu coûteux et hautement durable pour le stockage des données auxquelles vous accédez moins d'une fois par mois. Le stockage Nearline offre un accès rapide aux données, avec des temps de réponse inférieurs à une seconde. Il est parfaitement adapté pour l'archivage des données, la sauvegarde en ligne et les solutions de reprise après sinistre.

  • Le stockage Coldline est un service hautement durable et à très faible coût pour le stockage des données auxquelles vous comptez accéder moins d'une fois par trimestre. Le stockage Coldline offre un accès rapide aux données, avec des temps de réponse inférieurs à une seconde. Il est lui aussi adapté pour l'archivage des données, la sauvegarde en ligne et la reprise après sinistre.

  • Le stockage Archive offre un service de stockage à faible coût et très durable pour stocker des données auxquelles vous comptez accéder moins d'une fois par an. Le stockage Archive offre un accès rapide aux données, avec des temps de réponse inférieurs à une seconde. Il est idéal pour l'archivage des données, la sauvegarde en ligne et la reprise après sinistre.

Cloud Storage for Firebase : un stockage évolutif pour les développeurs d'applications mobiles

Cloud Storage for Firebase est un service de stockage d'objets simple et économique, conçu pour s'adapter à votre base d'utilisateurs. Cloud Storage for Firebase convient parfaitement au stockage et à la récupération d'éléments tels que des images, des sons, des vidéos, ou tout autre contenu généré par les utilisateurs dans des applications mobiles et Web.

Les SDK Firebase pour Cloud Storage assurent les transferts de données (importations et téléchargements), quelle que soit la qualité du réseau. S'ils sont interrompus en raison d'une défaillance de la connexion, les transferts redémarrent là où ils se sont arrêtés, ce qui vous permet de gagner du temps et d'économiser de la bande passante. L'intégration directe avec l'authentification Firebase vous permet de configurer l'accès en fonction des noms de fichiers, de la taille des fichiers, du type de contenu et d'autres métadonnées.

Cloud Storage for Firebase stocke vos fichiers dans un bucket Cloud Storage. Vous disposez ainsi de la flexibilité nécessaire pour transférer des fichiers depuis/vers des clients mobiles qui utilisent les SDK Firebase. Vous pouvez également effectuer des traitements côté serveur avec Google Cloud, par exemple l'application de filtres sur des images ou le transcodage de vidéos.

Pour faire vos premiers pas avec Cloud Storage for Firebase, consultez la documentation. Firebase dispose de SDK pour les clients iOS, Android, Web, C++ et Unity.

Stocker des données dans des bases de données

Google Cloud propose diverses bases de données SGBDR et NoSQL, dans lesquelles vous pouvez stocker respectivement vos données relationnelles et vos données non relationnelles.

Cloud SQL : des moteurs MySQL et PostgreSQL gérés

Cloud SQL est un SGBDR cloud natif entièrement géré, qui offre à la fois des moteurs MySQL et PostgreSQL et une fonction intégrée d'assistance à la réplication. Cette solution est parfaitement adaptée pour les charges de travail transactionnelles à faible latence associées aux bases de données relationnelles. Basé sur MySQL et PostgreSQL, Cloud SQL accepte les API standards pour la gestion de la connectivité. Cloud SQL offre des fonctionnalités intégrées de sauvegarde et restauration, de haute disponibilité et d'instances dupliquées en lecture seule.

Cloud SQL accepte des charges de travail de SGBDR impliquant jusqu'à 30 To de données, pour MySQL comme pour PostgreSQL. Cloud SQL est accessible depuis les applications exécutées dans App Engine, GKE ou Compute Engine. Comme Cloud SQL repose sur MySQL et PostgreSQL, il accepte les pilotes de connexion standards, les frameworks d'applications tiers (tels que Django et Ruby on Rails) et les outils de migration courants. Les données stockées dans Cloud SQL sont chiffrées à tout instant, lorsqu'elles sont en transit comme lorsqu'elles sont au repos. Les instances Cloud SQL intègrent une solution de contrôle des accès reposant sur les pare-feu réseau pour gérer les accès aux bases de données.

Cloud SQL est approprié pour les charges de travail OLTP (traitement des transactions en ligne) typiques.

  • Transactions financières : le stockage des transactions financières nécessite une solution qui accepte la sémantique de base de données ACID. En outre, comme les données sont souvent réparties sur plusieurs tables, cette solution doit aussi être compatible avec les transactions complexes.

  • Identifiants utilisateur : le stockage de mots de passe et autres données sécurisées nécessite une solution qui soit en mesure de gérer les champs complexes, de les appliquer et de valider le schéma défini.

  • Commandes de clients : les commandes et les factures incluent généralement des données relationnelles hautement normalisées et impliquent une gestion des transactions multi-tables pour l'enregistrement des variations de stocks.

Cloud SQL n'est pas un système de stockage adéquat pour les charges de travail OLAP (traitement analytique en ligne) ou les données nécessitant des schémas dynamiques individualisés par objet. Si votre charge de travail nécessite des schémas dynamiques, envisagez d'utiliser Datastore. Pour les charges de travail OLAP, envisagez d'utiliser BigQuery. Si votre charge de travail nécessite des schémas orientés colonnes, envisagez d'utiliser Cloud Bigtable.

Pour le traitement et l'analyse en aval, les données stockées dans Cloud SQL sont accessibles depuis plusieurs outils de la plate-forme. Vous pouvez utiliser Dataflow ou Dataproc pour créer des tâches ETL qui extraient des données de Cloud SQL et les insèrent dans d'autres systèmes de stockage.

Cloud Bigtable : une base de données NoSQL orientée colonnes gérée

Cloud Bigtable est un service de base de données NoSQL géré et hautement performant, conçu pour les charges de travail dont l'échelle va du téraoctet au pétaoctet. Cloud Bigtable repose sur l'infrastructure de base de données Cloud Bigtable interne de Google, qui est utilisée par la recherche Google, Google Analytics, Google Maps et Gmail. Le service fournit un stockage cohérent, à faible latence et à haut débit pour les données NoSQL à grande échelle. Cloud Bigtable est conçu pour les charges de travail de diffusion d'applications en temps réel, ainsi que pour les charges de travail analytiques à grande échelle.

Les schémas Cloud Bigtable utilisent une clé de ligne à index unique associée à une série de colonnes. Les schémas sont généralement structurés en hauteur ou en largeur et les requêtes sont basées sur la clé de ligne. Le style de schéma dépend des cas d'utilisation en aval. Notez qu'il est important de prendre en compte la localisation des données et la distribution des lectures et des écritures pour optimiser les performances. Les schémas en hauteur sont souvent utilisés pour stocker des événements de séries temporelles, c'est-à-dire des données dont la clé est définie en partie par un horodatage, avec relativement peu de colonnes par ligne. Les schémas en largeur suivent l'approche opposée, un identifiant simpliste est utilisé comme clé de ligne et le nombre de colonnes est important. Pour plus d'informations, reportez-vous à la documentation Conception de schéma Cloud Bigtable.

Cloud Bigtable est parfaitement adapté pour diverses charges de travail à grande échelle et à haut débit, telles que les technologies publicitaires ou les infrastructures de données IdO.

  • Données d'applications en temps réel : Cloud Bigtable est accessible depuis les applications exécutées dans l'environnement flexible App Engine, GKE et Compute Engine pour des charges de travail de diffusion en temps réel.

  • Traitement par flux : Dataflow peut être utilisé pour transformer les données ingérées par Pub/Sub et les charger dans Cloud Bigtable.

  • Données de séries temporelles IdO : les données mesurées par des capteurs et transférées en streaming vers Google Cloud peuvent être stockées dans Cloud Bigtable à l'aide de schémas de séries temporelles.

  • Charges de travail ad tech : Cloud Bigtable peut être utilisé pour stocker et suivre les impressions d'annonces. Il peut également servir de source pour le traitement et l'analyse qui seront effectués par la suite à l'aide de Dataproc et Dataflow.

  • Ingestion de données : Dataflow et Dataproc peuvent être utilisés pour transformer les données stockées sur Cloud Storage et les charger dans Cloud Bigtable.

  • Charges de travail analytiques : Dataflow peut être utilisé pour effectuer des agrégations complexes directement à partir de données stockées dans Cloud Bigtable. Dataproc peut être utilisé pour exécuter des tâches de traitement Hadoop ou Spark et de machine learning.

  • Remplacement d'Apache HBase : Cloud Bigtable peut également servir de solution de remplacement prête à l'emploi pour les systèmes reposant sur Apache HBase, une base de données Open Source basée sur l'article d'origine (publié par Google) décrivant Cloud Bigtable. Cloud Bigtable est conforme aux API HBase 1.x. Il peut donc être intégré dans de nombreux systèmes de big data existants. Apache Cassandra utilise un modèle de données basé sur celui décrit dans l'article spécifique à Cloud Bigtable, ce qui signifie que Cloud Bigtable peut également gérer des charges de travail utilisant un schéma et une structure orientés colonnes.

Bien que Cloud Bigtable soit considéré comme un système OLTP, il n'est pas compatible avec les transactions multilignes, ni avec les requêtes et les jointures SQL. Pour ces cas d'utilisation, envisagez d'utiliser Cloud SQL ou Datastore.

Spanner : une base de données relationnelle à scaling horizontal

Spanner est un service de base de données relationnelle entièrement géré pour les applications OLTP stratégiques. Spanner est évolutif horizontalement et conçu pour offrir une cohérence forte, une haute disponibilité et une envergure mondiale. Cette combinaison de qualités en fait un service unique. Spanner étant un service entièrement géré, vous pouvez vous concentrer sur la conception de votre application. Vous n'avez pas à vous préoccuper de l'infrastructure sous-jacente.

Spanner représente un bon choix si vous souhaitez bénéficier à la fois de la facilité d'utilisation et de l'aspect familier d'une base de données relationnelle, ainsi que de l'évolutivité généralement associée à une base de données NoSQL. Comme les bases de données relationnelles, Spanner accepte les schémas, les transactions ACID et les requêtes SQL (ANSI 2011). Comme beaucoup de bases de données NoSQL, Spanner offre une évolutivité horizontale au sein d'une région, mais il est également possible d'effectuer un scaling sur plusieurs régions pour les charges de travail ayant des exigences de disponibilité plus strictes. Spanner assure également la segmentation automatique lors de la diffusion de données, avec une latence de l'ordre de quelques millisecondes. Les fonctions de sécurité de Spanner incluent le chiffrement de la couche de données, les journaux d'audit et l'intégration avec IAM (Identity and Access Management).

Pour faire vos premiers pas avec Spanner, consultez la documentation de Spanner.

Voici quelques cas d'utilisation classiques de Spanner.

  • Services financiers : les charges de travail des services financiers exigent une cohérence forte entre les opérations de lecture et d'écriture. Spanner assure cette cohérence sans pour autant sacrifier la haute disponibilité.

  • Ad tech (technologies publicitaires) : la latence est une considération cruciale dans l'espace ad tech. Spanner facilite les requêtes à faible latence sans compromettre l'évolutivité ou la disponibilité.

  • Commerce et chaîne d'approvisionnement mondiale : la nécessité de travailler à l'échelle mondiale peut contraindre les experts en chaîne d'approvisionnement à faire un compromis entre la cohérence et les coûts de maintenance. Spanner offre une réplication automatique, globale, synchrone et à faible latence, ce qui signifie que les données restent cohérentes et hautement disponibles en toutes circonstances.

Firestore : une base de données NoSQL flexible et évolutive

Firestore est une base de données qui stocke des données JSON. Les données JSON peuvent être synchronisées en temps réel avec des clients connectés par le biais de différentes plates-formes : iOS, Android, JavaScript, appareils IoT et applications de bureau. Si la connectivité réseau d'un client est interrompue, l'API Firestore permet à votre application de conserver les données sur un disque local. Une fois la connectivité rétablie, le dispositif client se synchronise avec l'état actuel du serveur.

Firestore offre un langage flexible basé sur des expressions permettant de définir les règles de sécurité Firestore. Ces règles s'intégrant à l'authentification Firebase, vous pouvez définir les droits d'accès accordés pour les différentes données.

Firestore est une base de données NoSQL intégrant une API qui vous permet d'offrir une expérience en temps réel à des millions d'utilisateurs sans incidence sur la réactivité. Pour atteindre facilement une telle échelle et offrir un tel niveau de réactivité, vous devez impérativement structurer vos données de manière appropriée. Pour faire vos premiers pas avec Firestore, consultez la documentation. Firestore propose des SDK pour les clients iOS, Android, Web, C++ et Unity.

Voici quelques cas d'utilisation de Firestore.

  • Chat et réseaux sociaux : stockez et récupérez des images, des sons, des vidéos ou tout autre contenu généré par l'utilisateur.

  • Jeux mobiles : suivez la progression des utilisateurs dans le jeu et les statistiques sur différents appareils et plates-formes.

Bases de données de l'écosystème

Outre les services de base de données fournis par Google Cloud, vous pouvez déployer vos propres logiciels de base de données sur des machines virtuelles Compute Engine hautes performances offrant un stockage persistant très évolutif. Les SGBDR traditionnels comme EnterpriseDB et Microsoft SQL Server sont compatibles avec Google Cloud. Les systèmes de base de données NoSQL tels que MongoDB et Cassandra sont compatibles avec les configurations hautes performances.

Cloud Marketplace vous permet de déployer de nombreux types de bases de données sur Google Cloud à l'aide de paramètres prédéfinis pour les images, le stockage et la mise en réseau. Vous pouvez ainsi gérer directement et personnaliser facilement les ressources de déploiement telles que les instances Compute Engine, les disques persistants et les configurations réseau pour différents cas d'utilisation ou charges de travail.

Stocker des données dans un entrepôt de données

Un entrepôt de données stocke de grandes quantités de données à des fins d'interrogation et d'analyse, plutôt que pour du traitement transactionnel. Pour les charges de travail d'entrepôt de données, Google Cloud propose BigQuery.

BigQuery : un entrepôt de données géré

Pour les données ingérées qui seront en dernier lieu analysées dans BigQuery, vous pouvez contourner les autres supports de stockage et enregistrer les données directement dans BigQuery. BigQuery accepte le chargement de données via l'interface Web, les outils de ligne de commande ou les appels d'API REST.

Lorsque vous chargez des données groupées, celles-ci doivent se présenter sous la forme de fichiers CSV, JSON ou Avro. Vous pouvez ensuite utiliser l'interface Web de BigQuery, les outils de ligne de commande ou des appels d'API REST pour charger les données depuis ces formats de fichiers dans des tables BigQuery.

En ce qui concerne les données en streaming, vous pouvez combiner Pub/Sub et Dataflow pour traiter les flux entrants et stocker les résultats dans BigQuery. Toutefois, avec certaines charges de travail, il peut s'avérer judicieux d'injecter les données directement dans BigQuery sans traitement supplémentaire. Vous pouvez également créer des applications personnalisées, exécutées sur Google Cloud ou sur une infrastructure sur site, qui utilisent des schémas et lignes prédéfinis pour lire les données des sources de données. Ces applications personnalisées peuvent ensuite diffuser ces données dans des tables BigQuery à l'aide des SDK Google Cloud ou par le biais d'appels d'API REST directs.

Traiter et analyser

Pour dégager des insights et un bénéfice stratégique à partir de vos données, vous devez les transformer et les analyser. Cela nécessite un framework de traitement capable d'analyser directement les données ou de les préparer en vue d'une analyse ultérieure, ainsi que des outils permettant d'analyser et de comprendre les résultats du traitement.

  • Traitement : les données des systèmes sources sont nettoyées, normalisées et traitées sur plusieurs machines, puis stockées dans des systèmes dédiés à l'analyse.

  • Analyse : les données traitées sont stockées dans des systèmes permettant une interrogation et une exploration ad hoc.

  • Compréhension : sur la base des résultats d'analyse, les données sont utilisées pour entraîner et tester des modèles automatisés de machine learning.

Google Cloud fournit des services permettant de traiter des données à grande échelle, d'analyser et d'interroger des données de type big data, ainsi que de comprendre les données à l'aide du machine learning.

Traiter des données à grande échelle

Le traitement de données à grande échelle implique généralement de lire des données à partir de systèmes sources tels que Cloud Storage, Cloud Bigtable ou Cloud SQL, puis de normaliser ou d'agréger ces données à l'aide de schémas complexes. Dans de nombreux cas, les données sont trop volumineuses pour tenir sur une seule machine. On utilise alors des frameworks pour gérer des clusters de calcul distribué et pour fournir des outils logiciels facilitant le traitement.

Dataproc et Dataflow : charges de travail de traitement des données

Dataproc : des services Apache Hadoop et Apache Spark gérés

La capacité à gérer des ensembles de données extrêmement volumineux a bien évolué depuis la première publication de l'article sur MapReduce par Google en 2004. De nombreuses organisations chargent et stockent désormais des données dans le système de fichiers HDFS (Hadoop Distributed File System) et réalisent périodiquement des agrégations, des rapports ou des transformations à l'aide d'outils traditionnels de traitement par lots tels que Hive ou Pig. Hadoop offre un vaste écosystème logiciel pour vous accompagner dans les activités telles que le machine learning (Mahout), l'ingestion de journaux (Flume), les statistiques (R), et bien plus encore. Les résultats du traitement des données basé sur Hadoop sont essentiels pour les entreprises. Migrer ces processus vers un nouveau framework est un exercice non trivial pour une organisation dont l'activité dépend de ces processus.

Spark a gagné en popularité au cours des dernières années. Il est maintenant considéré comme une alternative sérieuse à Hadoop MapReduce. Spark est généralement beaucoup plus rapide que Hadoop MapReduce. Il atteint ce niveau de performance en distribuant les ensembles de données et les calculs en mémoire sur un cluster. Outre le fait qu'une telle distribution accroît la vitesse de traitement, elle permet aussi à Spark de traiter les données en streaming à l'aide de Spark Streaming, ainsi que d'effectuer des analyses par lots, des transformations et des agrégations traditionnelles à l'aide de Spark SQL et d'une API simple. La communauté Spark est très active et a produit plusieurs bibliothèques populaires, parmi lesquelles MLlib, qui peuvent être employées pour le machine learning.

Toutefois, l'utilisation de Spark ou de Hadoop à une échelle toujours plus grande augmente la complexité et la charge opérationnelles et engendre une augmentation continue des coûts fixes. Même si un cluster ne vous est nécessaire qu'à certains moments, vous finissez toujours par assumer le coût d'un cluster persistant. Avec Dataproc, vous pouvez migrer vos déploiements Hadoop ou Spark existants vers un service entièrement géré qui automatise la création de clusters, simplifie la configuration et la gestion de votre cluster, intègre des rapports de surveillance et d'utilisation, et peut être arrêté dès qu'il n'est pas utilisé.

Le démarrage d'un nouveau cluster Dataproc prend en moyenne 90 secondes. Il est ainsi bien plus facile de créer un cluster de 10 ou même 1 000 nœuds. Cela vous permet de réduire la charge opérationnelle et financière liée à la gestion d'un déploiement Spark ou Hadoop, tout en continuant à bénéficier du caractère familier et de la cohérence de l'un ou l'autre de ces frameworks. Dataproc offre la facilité et la flexibilité nécessaires pour créer des clusters Spark ou Hadoop à la demande dès que le besoin émerge, et pour les supprimer dès qu'ils ne sont plus utilisés. Voici quelques exemples de cas d'utilisation.

  • Traitement de journaux : avec un minimum de modifications, vous pouvez traiter quotidiennement de grandes quantités de données textuelles contenues dans des journaux provenant de plusieurs sources à l'aide d'une solution MapReduce existante.

  • Génération de rapports : agrégez des données dans des rapports et stockez les données dans BigQuery. Vous pouvez ensuite transmettre les données agrégées aux applications qui alimentent les tableaux de bord et effectuent des analyses.

  • Clusters Spark à la demande : vous pouvez rapidement démarrer des clusters Spark (Spark SQL, PySpark, Spark shell) ad hoc pour l'analyse de données stockées dans des blobs.

  • Machine learning : utilisez les bibliothèques MLlib (Spark Machine Learning Libraries) préinstallées sur le cluster pour personnaliser et exécuter des algorithmes de classification.

Dataproc simplifie également les activités opérationnelles telles que l'installation de logiciels ou le redimensionnement de clusters. Avec Dataproc, vous pouvez nativement lire des données et écrire des résultats dans Cloud Storage, Cloud Bigtable, BigQuery ou le stockage HDFS associé fourni par le cluster. Grâce à Cloud Storage, Dataproc accède plus rapidement aux données et peut faire fonctionner plusieurs clusters de façon transparente sur vos ensembles de données. Vous n'avez pas besoin de déplacer les données, ni de vous préoccuper de leur réplication. Cette capacité à stocker et à contrôler les données de manière externe vous permet d'exploiter les clusters Dataproc comme des ressources éphémères offrant un stockage persistant externe, qui peuvent être lancées, utilisées et arrêtées à la demande.

Dataflow : une solution de traitement des données par lots et par flux sans serveur et entièrement gérée

La possibilité d'analyser des données en streaming a transformé la manière dont les entreprises mènent leurs activités et dont elles réagissent en temps réel. Le fait de devoir maintenir des frameworks de traitement distincts pour les analyses par lots et les analyses de flux accroît toutefois la complexité, puisque deux pipelines différents sont nécessaires. De plus, le fait de devoir consacrer du temps à optimiser l'utilisation des ressources et des clusters, comme c'est le cas avec Spark et Hadoop, détourne votre attention de l'objectif de base, à savoir filtrer, agréger et transformer vos données.

Dataflow a été conçu pour simplifier les opérations de big data, pour les charges de travail liées aux données en streaming comme pour celles liées au traitement par lots. Son efficacité repose sur l'unification du modèle de programmation et du modèle d'exécution. L'utilisateur n'a pas besoin de spécifier la taille du cluster et de gérer sa capacité. Dataflow est un service géré dans lequel les ressources sont créées à la demande, puis mises à l'échelle et parallélisées automatiquement. Il s'agit d'un authentique service zéro opération : les nœuds de calcul sont ajoutés ou supprimés automatiquement en fonction des exigences de la tâche. Dataflow traite également le problème des nœuds de calcul "retardataires", assez courant dans les systèmes distribués, en surveillant, identifiant et reprogrammant constamment le travail, y compris les répartitions, vers les nœuds de calcul inactifs du cluster.

Voici quelques exemples de cas d'utilisation.

  • Remplacement de MapReduce : traitez les charges de travail parallèles pour lesquelles les paradigmes de traitement autres que MapReduce ont conduit à trop de complexité opérationnelle ou de frustration.

  • Analyse des utilisateurs : analysez de grandes quantités de données relatives au comportement des utilisateurs, telles que les événements internes à des jeux, les flux de clics ou les données de vente au détail.

  • Science des données : traitez de grands volumes de données pour faire progresser la recherche scientifique (en matière de génétique, par exemple), ou encore pour affiner les prédictions météorologiques ou financières.

  • ETL : ingérez, transformez et chargez des données dans un entrepôt de données tel que BigQuery.

  • Traitement de journaux : traitez les flux de données fournis par un journal d'événements pour créer des tableaux de bord, des statistiques applicatives et des alertes en temps réel.

Le SDK Dataflow a également été publié en tant que projet Open Source sous le nom Apache Beam. Il est possible d'exécuter cet outil sur Apache Spark et Apache Flink. En raison de sa capacité d'autoscaling et de sa facilité de déploiement, Dataflow est un environnement idéal pour exécuter des workflows Dataflow/Apache Beam.

Dataprep by Trifacta : explorer, nettoyer et traiter visuellement des données

Dataprep est un service permettant d'explorer, nettoyer et préparer visuellement des données pour l'analyse. Vous pouvez utiliser Dataprep à l'aide d'une interface utilisateur Web, sans avoir à écrire de code. Dataprep déploie et gère automatiquement les ressources requises pour effectuer des transformations à la demande.

Avec Dataprep, vous pouvez transformer des données de toutes tailles stockées dans des fichiers CSV ou JSON, ou dans des tables relationnelles. Dataprep utilise Dataflow pour se mettre à l'échelle automatiquement. Il peut gérer des ensembles de données de l'ordre du téraoctet. Dataprep étant entièrement intégré à Google Cloud, vous pouvez traiter des données quel que soit leur emplacement, qu'il s'agisse de Cloud Storage, de BigQuery ou de votre ordinateur de bureau. Une fois les données traitées, vous pouvez les exporter directement vers BigQuery pour des analyses plus approfondies. Vous pouvez gérer l'accès des utilisateurs et la sécurité des données à l'aide d'Identity and Access Management.

Voici quelques cas d'utilisation courants de Dataprep.

  • Machine learning : vous pouvez nettoyer les données d'entraînement pour affiner les modèles de ML.
  • Analyse : vous pouvez transformer des données brutes afin qu'elles puissent être ingérées dans des outils d'entreposage de données tels que BigQuery.

Cloud Data Loss Prevention : découvrez, classez et protégez des données sensibles.

Cloud DLP est un service entièrement géré conçu pour aider à découvrir, classer et protéger les données sensibles. Avec plus de 120 infoTypes intégrés, Cloud DLP vous permet d'analyser, de détecter et de classer vos données, et de créer des rapports sur ces données depuis presque n'importe quel emplacement. Cloud DLP offre une compatibilité native avec l'analyse et la classification de données sensibles dans Cloud Storage, BigQuery et Cloud Datastore, ainsi qu'une API de diffusion de contenu compatible avec les applications, les charges de travail personnalisées et les sources de données supplémentaires.

Cloud DLP fournit également des outils d'anonymisation permettant de masquer, de tokeniser et de transformer des éléments sensibles afin de vous aider à mieux gérer les données que vous collectez, stockez ou utilisez à des fins commerciales ou d'analyse. Compatible avec les données structurées et non structurées, Cloud DLP vous permet de préserver l'utilité de vos données à des fins de jointure, d'analyse ou d'IA tout en protégeant les identifiants sensibles.

Voici quelques cas d'utilisation courants de Cloud DLP.

  • Machine learning : vous pouvez anonymiser des données d'entraînement non structurées, telles que des journaux de chat, avant de les utiliser dans des modèles d'IA ou de ML.
  • Découverte et classification : identifiez et marquez les données sensibles lors de l'ingestion dans des bases de données ou des outils d'entreposage de données tels que BigQuery.
  • Réduire l'exposition : vous pouvez pseudonymiser ou tokeniser des identifiants pour réduire l'exposition tout en activant les jointures et l'analyse globale.

Analyser et interroger des données

Une fois les données ingérées, stockées et traitées, elles doivent être conservées dans un format qui permet de les consulter et de les interroger facilement.

BigQuery : un entrepôt de données géré

BigQuery est un entrepôt de données entièrement géré compatible avec les requêtes SQL ad hoc et les schémas complexes. Vous pouvez utiliser BigQuery pour analyser, comprendre et organiser des données. Si vous avez l'habitude d'utiliser un entrepôt de données traditionnel pour exécuter des requêtes SQL standards ou exploiter des outils d'informatique décisionnelle et de visualisation, vous apprécierez la puissance et l'interface familière de BigQuery.

BigQuery est un entrepôt de données OLAP destiné à l'analyse, hautement évolutif, massivement distribué et à faible coût. Il est capable d'atteindre une vitesse d'analyse supérieure à 1 To/s. Il s'agit d'un service entièrement géré : des nœuds de calcul sont activés pour chaque requête émise vers le système.

Pour découvrir BigQuery, vous pouvez créer un ensemble de données dans votre projet, charger des données dans une table et exécuter une requête. Pour simplifier le processus de chargement des données, vous pouvez recourir à l'ingestion en continu depuis Pub/Sub et Dataflow, charger des données depuis Cloud Storage, ou encore utiliser les résultats d'une tâche de traitement exécutée sur Dataflow ou Dataproc. BigQuery peut importer des fichiers de données aux formats CSV, Avro et JSON. En outre, il gère des éléments imbriqués et répétés dans JSON.

Toutes les données stockées dans BigQuery sont accessibles via un canal chiffré. Notez qu'elles sont également chiffrées au repos. BigQuery est couvert par les programmes de conformité de Google, y compris les programmes SOC, PCI, ISO 27001 et HIPAA. Il peut donc être utilisé pour le traitement et l'interrogation d'informations sensibles. L'accès aux données est contrôlé par les LCA (listes de contrôle d'accès) que vous définissez.

BigQuery calcule les frais de facturation en fonction de deux éléments indépendants : les requêtes et le stockage. Le coût du stockage des données dans BigQuery est comparable à celui de Cloud Storage, ce qui signifie que vous n'avez pas besoin de choisir entre conserver les données de journaux dans un bucket et les conserver dans BigQuery. Aucune limite supérieure n'existe pour la quantité de données pouvant être stockée dans BigQuery. De plus, si aucune modification n'intervient sur une table pendant 90 jours, le coût de stockage de cette table est réduit de 50 %.

Un cas typique d'utilisation de BigQuery consiste à transférer (sous forme de streaming ou périodiquement par lots), des données de journaux provenant de serveurs ou d'autres systèmes produisant des signaux à un rythme élevé, par exemple des appareils IdO. BigQuery est intégré nativement avec plusieurs services Google. Par exemple, vous pouvez configurer Cloud Logging pour qu'il envoie des données de journaux directement à BigQuery.

Lorsque vous interrogez des données dans BigQuery, vous avez le choix entre deux modèles de tarification : à la demande ou au forfait. Avec la tarification à la demande, les frais de requête sont calculés en fonction du volume de téraoctets traités. Avec la tarification forfaitaire, BigQuery vous offre une capacité de requête cohérente dans le cadre d'un modèle de coûts plus simple.

En tant que service entièrement géré, BigQuery automatise les tâches, par exemple les intervalles de maintenance de l'infrastructure et le nettoyage des données. Pour améliorer la conception de vos requêtes, vous pouvez examiner l'explication du plan de requête de n'importe quelle requête. Les données sont stockées dans des colonnes. Ce format est optimisé pour les agrégations et le traitement de données à grande échelle. De plus, BigQuery est nativement compatible avec le partitionnement des données de séries temporelles. Du point de vue de la conception, cela signifie que vous pouvez concevoir votre activité de chargement afin d'utiliser un horodatage, puis restreindre les requêtes à une partition correspondant à une date donnée. Les frais de requête BigQuery étant basés sur la quantité de données analysée, un partitionnement adéquat des données peut améliorer considérablement l'efficacité des requêtes et réduire les coûts.

Les requêtes exécutées sur BigQuery peuvent utiliser la syntaxe SQL standard, qui est conforme à la norme SQL 2011 et offre des extensions permettant d'interroger des données imbriquées et répétées. Un grand nombre de fonctions et d'opérateurs intégrés sont disponibles nativement dans BigQuery. Notez que ce dernier accepte également les fonctions définies par l'utilisateur.

Vous pouvez utiliser BigQuery de différentes manières.

  • Analyse des utilisateurs : procédez à l'ingestion de grandes quantités de données d'activité générées par vos utilisateurs (ad tech, flux de clics, télémétrie de jeu) et déterminez le comportement et les caractéristiques des utilisateurs.

  • Métriques des appareils et opérationnelles : collectez des informations sous forme de flux depuis des systèmes informatiques, des périphériques IdO et autres, puis analysez les données pour identifier les tendances et les variations.

  • Informatique décisionnelle : stockez des métriques métier dans un entrepôt de données, puis générez des analyses via BigQuery BI Engine avec Google Data Studio.

Plusieurs tutoriels et exemples d'utilisation de BigQuery sont disponibles sur le site BigQuery.

Comprendre les données grâce au machine learning

Le machine learning est devenu un élément essentiel de la phase d'analyse du cycle de vie des données. Vous pouvez l'exploiter pour augmenter les résultats après traitement, suggérer des optimisations au niveau de la collecte de données, ou encore pour prédire les résultats dans des ensembles de données.

Voici quelques exemples de cas d'utilisation.

  • Recommandations de produits : vous pouvez créer un modèle qui recommande des produits en fonction des achats antérieurs de l'utilisateur et des pages du site qu'il a consultées.

  • Prédiction : utilisez le machine learning pour prédire les performances de systèmes complexes tels que les marchés financiers.

  • Assistants automatisés : créez des assistants automatisés qui comprennent les questions posées par les utilisateurs et sont en mesure d'y répondre.

  • Analyse des sentiments : déterminez le sentiment sous-jacent aux commentaires exprimés par les utilisateurs dans leurs avis sur des produits ou dans leurs réactions à des articles de presse.

Il existe plusieurs options pour tirer parti du machine learning dans Google Cloud.

  • API de machine learning spécifiques à une tâche : Google Cloud fournit des services de machine learning clés en main et gérés, avec des modèles pré-entraînés pour l'analyse des éléments visuels, de la parole, du langage naturel, ainsi que pour la traduction automatique de texte. Ces API reposent sur les technologies utilisées par les applications telles que Google Photos, l'application mobile Google, Google Traduction et les réponses suggérées dans Inbox.

  • Machine learning personnalisé : AI Platform est un service géré hébergé qui exécute des modèles personnalisés à grande échelle. Notez que Dataproc peut également exécuter des modèles de machine learning conçus à l'aide de Mahout ou Spark MLlib.

API Vision

Vous pouvez utiliser l'API Vision pour analyser et comprendre le contenu d'une image à l'aide de réseaux de neurones pré-entraînés. L'API Vision peut classer des images, détecter des objets et des visages et reconnaître des mots imprimés. De plus, l'API Vision permet de détecter un contenu inapproprié et d'analyser l'expression du visage des personnes.

L'API Vision est accessible via des points de terminaison REST. Vous pouvez soit envoyer directement vos images au service, soit les importer dans Cloud Storage (en incluant dans la requête un lien vers l'image). Les requêtes peuvent inclure une seule image, mais vous pouvez également faire annoter plusieurs images dans un même lot. Dans une requête, vous pouvez sélectionner les annotations de caractéristiques à détecter pour chaque image jointe. La détection des caractéristiques inclut les libellés, le texte, les visages, les repères, les logos, la recherche sécurisée et les propriétés de l'image (par exemple les couleurs dominantes). La réponse contiendra des métadonnées sur chaque annotation de type de caractéristique sélectionnée pour chacune des caractéristiques renseignées dans la requête d'origine. Pour plus d'informations sur les requêtes et les réponses, consultez la documentation de l'API Vision.

Vous pouvez facilement intégrer l'API Vision aux applications personnalisées exécutées sur App Engine, GKE, Compute Engine et sur des plates-formes mobiles telles qu'Android et iOS. Vous pouvez également y accéder à partir de services Google Cloud tels que Dataflow, Dataproc et Datalab.

Speech-to-Text

Speech-to-Text permet d'analyser des contenus audio et de les convertir en texte. L'API reconnaît plus de 80 langues et variantes et s'appuie sur des algorithmes de deep learning basés sur des réseaux de neurones, qui évoluent et s'améliorent constamment.

Vous pouvez utiliser Speech-to-Text pour différents types de charges de travail.

  • Transcription de la parole en temps réel : Speech-to-Text peut accepter des flux audio en entrée et commencer à renvoyer des résultats de reconnaissance partiels dès qu'ils sont disponibles. Cette fonctionnalité est utile pour intégrer la dictée en temps réel ou pour activer la commande et le contrôle par la voix dans les applications. Speech-to-Text peut utiliser gRPC, un framework RPC polyvalent, hautes performances et Open Source pour l'analyse des flux de données vocales dans les applications personnalisées exécutées sur App Engine, GKE, Compute Engine et sur des plates-formes mobiles telles qu'Android et iOS.

  • Analyse par lots : pour traiter un grand nombre de fichiers audio, vous pouvez appeler Speech-to-Text à l'aide de points de terminaison REST et de gRPC. La transcription peut être effectuée de manière synchrone ou asynchrone. L'API REST est également accessible à partir de services Google Cloud tels que Dataflow, Dataproc et Datalab.

API Natural Language

L'API Natural Language permet d'analyser et de révéler la structure et le sens d'un texte. L'API peut être utilisée pour extraire des informations sur des personnes, des lieux, des événements, le sentiment du texte fourni en entrée, etc. L'analyse résultante peut être exploitée pour filtrer un contenu inapproprié, classer le contenu par sujets, ou créer des relations à partir des entités identifiées et extraites du texte fourni en entrée.

Vous pouvez combiner l'API Natural Language avec les fonctionnalités de reconnaissance optique des caractères de l'API Vision ou les fonctionnalités de Speech-to-Text pour créer des applications et services très performants.

L'API Natural Language est accessible via des points de terminaison REST. Vous pouvez envoyer du texte directement au service, ou transférer des fichiers texte vers Cloud Storage puis créer un lien vers le texte dans votre requête. Vous pouvez facilement intégrer l'API dans des applications personnalisées exécutées sur App Engine, GKE, Compute Engine et sur des plates-formes mobiles telles qu'Android et iOS. Il est également possible d'y accéder à partir d'autres services Google Cloud tels que Dataflow, Dataproc ou Datalab.

Cloud Translation

Vous pouvez utiliser Cloud Translation pour traduire plus de 90 langues différentes. Si la langue source n'est pas connue, Translation la détecte automatiquement avec une grande précision.

Translation peut fournir une traduction en temps réel pour les applications Web ou mobiles et accepte les requêtes par lots pour les charges de travail analytiques.

Translation est accessible via des points de terminaison REST. Vous pouvez intégrer l'API dans des applications personnalisées exécutées sur App Engine, GKE, Compute Engine et sur des plates-formes mobiles telles qu'Android et iOS. Il est également possible d'y accéder à partir d'autres services Google Cloud tels que Dataflow, Dataproc ou Datalab.

API Video Intelligence : analyse de vidéos pour la recherche et l'extraction d'informations

Les contenus vidéo sont traditionnellement opaques et ne se prêtent pas facilement à l'analyse. Mais avec Video Intelligence, une API REST facile à utiliser, vous pouvez désormais rechercher, découvrir et extraire des métadonnées à partir de vidéos. Video Intelligence peut détecter dans des contenus vidéo des entités (noms) telles que "chien", "fleur" ou "voiture". Vous pouvez également rechercher des entités dans les scènes du contenu vidéo.

Vous pouvez annoter des vidéos avec des métadonnées au niveau d'une image ou au niveau de la vidéo. (Le service peut extraire des données avec une précision maximale de 1 image par seconde.) L'API accepte les formats vidéo courants, parmi lesquels MOV, MPEG4, MP4 et AVI. Effectuer une requête d'annotation de vidéo est simple : vous créez un fichier de requête JSON indiquant l'emplacement de la vidéo et le ou les types d'annotations que vous souhaitez réaliser, puis vous envoyez la demande au point de terminaison de l'API.

Pour faire vos premiers pas, consultez le guide de démarrage rapide de Video Intelligence.

Voici quelques cas d'utilisation courants de Video Intelligence.

  • Collecter des insights à partir de vidéos : glanez des informations dans des vidéos sans avoir à faire appel au machine learning ou à mettre en œuvre des algorithmes de vision par ordinateur.

  • Rechercher dans un catalogue de vidéos : effectuez une recherche dans un catalogue de vidéos pour identifier la présence et l'horodatage des entités qui vous intéressent.

AI Platform : une plate-forme de machine learning gérée

AI Platform est une plate-forme gérée que vous pouvez utiliser pour exécuter des modèles de machine learning personnalisés à grande échelle. Créez des modèles à l'aide du framework TensorFlow (un framework Open Source d'intelligence artificielle), puis utilisez AI Platform pour gérer le prétraitement, l'entraînement et la prédiction.

AI Platform est un service intégré à Dataflow autorisant le prétraitement des données. Il permet d'accéder aux données stockées à la fois dans Cloud Storage et BigQuery. Il fonctionne également avec Cloud Load Balancing pour diffuser les prédictions en ligne à grande échelle.

Vous pouvez développer et tester des modèles TensorFlow entièrement dans Google Cloud à l'aide de Datalab et de notebooks Jupyter, puis utiliser AI Platform pour les charges de travail d'entraînement et de prédiction à grande échelle.

Les modèles conçus pour AI Platform sont entièrement portables. Avec le framework TensorFlow, vous pouvez créer et tester des modèles localement avant de les déployer sur plusieurs machines pour distribuer l'entraînement et les prédictions. Enfin, vous pouvez importer les modèles entraînés dans AI Platform et les exécuter sur plusieurs instances de machine virtuelle distribuées.

Le workflow d'AI Platform se compose des phases suivantes :

  • Prétraitement : AI Platform convertit les caractéristiques des ensembles de données d'entrée dans un format compatible, et peut également normaliser et transformer les données pour permettre un apprentissage plus efficace. Au cours de la phase de prétraitement, les données d'entraînement, d'évaluation et de test sont stockées dans Cloud Storage. Dataflow peut ainsi également accéder aux données pendant cette phase pour réaliser tout prétraitement supplémentaire requis.

  • Création de graphiques : AI Platform convertit le modèle TensorFlow fourni en modèle AI Platform avec des opérations d'entraînement, d'évaluation et de prédiction.

  • Entraînement : AI Platform itère en continu et évalue le modèle en fonction des paramètres envoyés.

  • Prédiction : AI Platform utilise le modèle pour effectuer des calculs. Les prédictions peuvent être calculées par lots ou à la demande, sous la forme d'un service de prédiction en ligne. Les prédictions par lots sont conçues pour être exécutées de manière asynchrone sur des ensembles de données volumineux, avec l'aide de services tels que Dataflow pour orchestrer l'analyse. Les prédictions à la demande sont souvent utilisées avec des applications personnalisées exécutées sur App Engine, GKE ou Compute Engine.

Machine learning à usage général

Outre la plate-forme de machine learning et les API construites par Google, vous pouvez déployer sur Google Cloud d'autres outils de machine learning à grande échelle. Mahout et MLlib sont deux projets issus des écosystèmes Hadoop et Spark, qui proposent toute une gamme d'algorithmes de machine learning à usage général. Ces deux packages proposent des algorithmes de machine learning pour le clustering, la classification, le filtrage collaboratif, etc.

Vous pouvez utiliser Dataproc pour déployer des clusters Hadoop et Spark gérés et amorcer ces clusters avec des logiciels supplémentaires. Cela signifie que vous pouvez exécuter sur Google Cloud des charges de travail de machine learning créées avec Mahout ou MLlib et que vous pouvez redimensionner les clusters à l'aide de VM classiques ou préemptives.

Explorer et visualiser

La dernière étape du cycle de vie des données consiste à explorer et visualiser en détail ces données pour mieux comprendre les résultats du traitement et de l'analyse.

Les enseignements que vous retirez durant cette exploration peuvent vous servir à accroître la vitesse ou le volume d'ingestion de données, à mieux tirer parti des différents supports de stockage pour accélérer l'analyse et à améliorer les pipelines de traitement. L'exploration et la compréhension approfondies de ces ensembles de données impliquent souvent les services de data scientists et d'analystes métier, des personnes formées aux probabilités, aux statistiques et à la compréhension de la valeur métier.

Explorer les résultats obtenus par les techniques de science des données

La science des données est le processus consistant à tirer des informations de valeur à partir de données brutes. Pour cela, un data scientist peut combiner des ensembles de données disparates, certains publics et d'autres privés, et appliquer diverses techniques d'agrégation et d'analyse. Contrairement à l'entreposage de données, les types d'analyse et la structure des données peuvent varier considérablement et ne sont pas prédéterminés. Les techniques employées incluent des méthodes statistiques telles que la classification, les méthodes bayésiennes, le maximum de vraisemblance et la régression, ainsi que des opérations de machine learning exploitant par exemple les arbres de décision et les réseaux de neurones.

Datalab : exploration interactive des données

Datalab est un outil Web interactif qui vous permet d'explorer, d'analyser et de visualiser des données. Il est basé sur les notebooks Jupyter (anciennement dénommé IPython). Avec Datalab, vous pouvez, d'un simple clic, lancer un notebook Web interactif dans lequel vous pouvez écrire et exécuter des programmes Python pour traiter et visualiser des données. Les notebooks conservent leur état et peuvent être partagés par des data scientists, mais aussi publiés sur des sites tels que GitHub, Bitbucket et Dropbox.

Datalab est nativement compatible avec de nombreux kits d'outils populaires du domaine de la science des données, tels que pandas, numpy et scikit-learn, ainsi qu'avec des packages de visualisation courants tels que matplotlib. Datalab est également compatible avec Tensorflow et Dataflow. Grâce à ces bibliothèques et à ces services cloud, un data scientist peut charger et nettoyer des données, créer et vérifier des modèles, puis visualiser les résultats au moyen de matplotlib. Cela fonctionne aussi bien pour de petits ensembles de données que vous pouvez stocker sur une seule machine que pour un grand volume de données nécessitant un cluster pour le stockage. Vous pouvez charger des modules Python supplémentaires au moyen des commandes !pip install.

Écosystème de la science des données

À l'aide d'instances Compute Engine hautes performances, vous pouvez déployer de nombreux types d'outils de science des données et les exploiter pour réaliser une analyse à grande échelle sur Google Cloud.

Le langage de programmation R est couramment utilisé par les statisticiens. Si vous souhaitez utiliser R pour l'exploration de données, vous pouvez déployer RStudio Server ou Microsoft Machine Learning Server sur une instance Compute Engine. RStudio Server fournit un environnement d'exécution interactif permettant de traiter et de manipuler les données, de créer des modèles sophistiqués et de visualiser les résultats. Microsoft Machine Learning Server est un complément haut de gamme et hautes performances pour les clients de bureau R pour l'exécution de charges de travail analytiques.

Datalab est basé sur Jupyter et est actuellement compatible avec Python. Si vous souhaitez explorer vos données à l'aide d'autres langages tels que R, Julia, Scala et Java, vous pouvez déployer les outils Open Source Jupyter ou JupyterHub sur des instances Compute Engine.

Apache Zeppelin est un autre outil populaire de science des données basé sur le Web et tirant parti des notebooks. Semblable à Jupyter, Zeppelin est compatible avec d'autres langages et systèmes backend de traitement des données tels que Spark, Hive, R et Python.

Vous pouvez déployer Jupyter et Zeppelin à l'aide d'actions d'initialisation Dataproc prédéfinies pour amorcer rapidement les packages logiciels courants des écosystèmes Hadoop et Spark.

Visualiser les résultats obtenus par l'informatique décisionnelle

Au cours de la phase d'analyse, il peut s'avérer utile de générer des visualisations de données, des tableaux de bord et des rapports complexes pour présenter les résultats du traitement des données à un public plus large. Pour faciliter cette tâche, Google Cloud s'intègre à un certain nombre d'outils de génération de rapports et de tableaux de bord.

Looker : plate-forme d'informatique décisionnelle

Looker fournit des outils permettant une meilleure exploitation des données, depuis l'informatique décisionnelle moderne et l'analyse intégrée en passant par les intégrations de workflows et les applications de données personnalisées. Looker offre une plate-forme unifiée qui permet d'accéder à des données complexes et de les intégrer dans des workflows et des applications centrées sur les données. Looker peut également être étendu grâce à des API et SDK robustes mais aussi grâce à une bibliothèque d'intégrations communes.

Data Studio : tableaux de bord et visualisation

Data Studio fournit un générateur de rapports fonctionnant par glisser-déposer. Vous disposez ainsi de rapports et de tableaux de bord pour visualiser vos données, et vous pouvez les partager avec d'autres utilisateurs. Les diagrammes et les graphiques intégrés à ces rapports sont basés sur des données en direct qui peuvent être partagées et mises à jour. Les rapports peuvent contenir des contrôles interactifs qui permettent aux collaborateurs d'ajuster les dimensions servant à générer des visualisations.

Avec Data Studio, vous pouvez créer des rapports et des tableaux de bord à partir de données existantes stockées dans des fichiers, des feuilles de calcul Google Sheets, Cloud SQL et BigQuery. En associant Data Studio à BigQuery, vous pouvez exploiter pleinement la capacité de stockage et de calcul de BigQuery sans avoir à importer manuellement des données dans Data Studio ou créer des intégrations personnalisées.

BI Engine : service d'analyse géré

BI Engine est un service d'analyse en mémoire rapide. En utilisant BI Engine, vous pouvez analyser les données stockées dans BigQuery en bénéficiant d'un temps de réponse aux requêtes inférieur à une seconde et d'une simultanéité élevée. BI Engine s'intègre à Data Studio afin d'accélérer l'exploration et l'analyse des données. Cette intégration permet de créer des rapports et des tableaux de bord interactifs riches dans Data Studio, sans avoir à gérer ni à optimiser les performances, l'évolutivité, la sécurité ou la fraîcheur des données.

En plus de BI Engine, BigQuery est également compatible avec toute une gamme d'outils et d'intégrations d'informatique décisionnelle tiers, allant des solutions SaaS aux applications de bureau. Pour plus d'informations, consultez la documentation relative aux partenaires BigQuery.

Sheets : visualisation de feuilles de calcul

Si vous préférez visualiser les données dans une feuille de calcul, vous pouvez utiliser Sheets, qui s'intègre directement à BigQuery. Avec Google Apps Script, vous pouvez intégrer des requêtes et des données BigQuery directement dans Sheets. Vous pouvez également exporter les résultats de requêtes BigQuery dans des fichiers CSV et ouvrir ces fichiers dans Sheets ou d'autres tableurs. Cette solution permet de créer des ensembles de données plus petits et donc plus faciles à partager ou à analyser. Vous pouvez aussi faire l'inverse, c'est-à-dire utiliser BigQuery pour interroger des ensembles de données distribués stockés dans Sheets ou des fichiers stockés dans Drive.

Data Catalog : découverte des données et gestion des métadonnées

Data Catalog est un service de gestion des métadonnées évolutif entièrement géré qui simplifie la découverte des données à n'importe quelle échelle. Grâce à la technologie de recherche Google, Data Catalog propose une interface de recherche sur Google Cloud, qui offre une vue unifiée des éléments de données.

Le service de gestion des métadonnées ingère automatiquement des métadonnées techniques pour BigQuery et Pub/Sub, ainsi que des métadonnées métier sous forme schématisée en utilisant des libellés, des API personnalisées et Google Cloud Console, offrant ainsi un moyen simple et efficace de cataloguer les éléments de données.

Data Catalog offre également une base solide en termes de sécurité et de conformité avec les intégrations Cloud Data Loss Prevention et IAM.

Orchestration

L'intégration de tous les éléments du cycle de vie des données dans un ensemble d'opérations connectées et cohérentes requiert une certaine forme d'orchestration. Les couches d'orchestration sont généralement utilisées pour coordonner les tâches de démarrage et d'arrêt et la copie des fichiers, ainsi que pour fournir un tableau de bord de surveillance des tâches de traitement de données. Par exemple, un workflow peut inclure la copie de fichiers dans Cloud Storage, le démarrage d'une tâche de traitement avec Dataproc, puis l'envoi de notifications lorsque les résultats du traitement sont enregistrés dans BigQuery.

Les workflows d'orchestration peuvent être très simples ou très complexes selon les tâches de traitement concernées. Ils utilisent souvent un mécanisme de planification centralisé pour automatiser l'exécution des workflows.

Cloud Composer : orchestration gérée de workflows

Cloud Composer est un service d'orchestration des workflows entièrement géré qui permet de créer, de planifier et de surveiller des pipelines couvrant des clouds et des centres de données sur site. Cloud Composer est basé sur le projet Open Source Apache Airflow et les pipelines sont configurés en tant que graphes orientés acycliques (DAG) avec Python.

Cloud Composer intègre efficacement de nombreux produits tels que BigQuery, Dataflow, Dataproc, Datastore, Cloud Storage, Pub/Sub et AI Platform.

Applications d'orchestration personnalisées

Pour mettre en place une application d'orchestration personnalisée, vous pouvez utiliser Pub/Sub ou Cloud Tasks pour mettre en file d'attente des étapes du workflow. Ces étapes peuvent être exécutées par des applications déployées sur des machines virtuelles Compute Engine, des plates-formes sans serveur App Engine et Cloud Functions, ou avec la solution de gestion de conteneurs Google Kubernetes Engine (GKE).

Étapes suivantes

Pour en savoir plus sur la façon de gérer vos données dans Google Cloud, consultez les documentations suivantes, qui présentent des architectures de référence et divers cas d'utilisation.

  • Testez d'autres fonctionnalités de Google Cloud. Découvrez nos tutoriels.