Transformation des données entre MongoDB Atlas et Google Cloud

Last reviewed 2023-12-13 UTC

De nombreuses entreprises utilisent MongoDB comme datastore opérationnel et souhaitent enrichir la valeur de ces données en les soumettant à des analyses complexes. Pour ce faire, les données MongoDB doivent être agrégées et déplacées vers un entrepôt de données dans lequel des analyses peuvent être effectuées. Cette architecture de référence explique comment configurer ce pipeline d'intégration dans Google Cloud.

Dans cette architecture, vous intégrez des données de MongoDB Atlas dans BigQuery à l'aide de modèles Dataflow. Ces modèles Dataflow transforment le format de document utilisé par MongoDB en format en colonnes utilisé par BigQuery. Ces modèles s'appuient sur les bibliothèques Apache Beam pour effectuer cette transformation. Dans ce document, nous partons donc du principe que vous maîtrisez MongoDB et que vous connaissez bien Dataflow et Apache Beam.

Architecture

Le schéma suivant illustre l'architecture de référence que vous utilisez lorsque vous déployez cette solution. Le schéma suivant montre comment différents modèles Dataflow déplacent et transforment des données de MongoDB vers un entrepôt de données BigQuery.

Architecture de transformation des données entre MongoDB Atlas et Google Cloud

Comme l'illustre le schéma, cette architecture est basée sur les trois modèles suivants :

  • Modèle MongoDB vers BigQuery. Ce modèle Dataflow est un pipeline par lots qui lit les documents de MongoDB et les écrit dans BigQuery, où ces données peuvent être analysées. Si vous le souhaitez, vous pouvez étendre ce modèle en écrivant une fonction définie par l'utilisateur (UDF) en JavaScript. Pour obtenir un exemple d'UDF, consultez la section Efficacité opérationnelle.
  • Modèle BigQuery vers MongoDB. Ce modèle Dataflow est un modèle par lots permettant de lire les données analysées dans BigQuery et de les écrire dans MongoDB.
  • Modèle MongoDB vers BigQuery (CDC). Ce modèle Dataflow est un pipeline de flux de données qui fonctionne avec les flux de modifications MongoDB. Vous créez une application d'éditeur qui transfère les modifications du flux de modifications MongoDB vers Pub/Sub. Le pipeline lit ensuite les enregistrements JSON à partir de Pub/Sub et les écrit dans BigQuery. Comme le modèle MongoDB vers BigQuery, vous pouvez étendre ce modèle en écrivant une UDF.

    En utilisant le modèle MongoDB vers BigQuery (CDC), vous pouvez vérifier que toutes les modifications apportées à la collection MongoDB sont publiées dans Pub/Sub. Pour configurer un flux de modifications MongoDB, suivez les instructions de la page Flux de modifications de la documentation MongoDB.

Cas d'utilisation

L'utilisation de BigQuery pour analyser les données MongoDB Atlas peut être utile dans différents secteurs, tels que les services financiers, le commerce, l'industrie et la logistique, ainsi que les applications de jeux.

Services financiers

Google Cloud et MongoDB Atlas offrent des solutions permettant de gérer les besoins complexes et en constante évolution en termes de données des institutions financières actuelles. En utilisant BigQuery pour analyser vos données financières à partir de MongoDB Atlas, vous pouvez développer des solutions pour les tâches suivantes :

  • Détection de fraudes en temps réel. Les institutions financières souhaitent détecter et empêcher les transactions frauduleuses en temps réel. À l'aide du machine learning (ML) et de l'analyse des données sur le comportement des clients dans BigQuery, vous pouvez identifier les schémas représentatifs de fraude.
  • Expériences client personnalisées. Les institutions financières souhaitent également proposer des expériences client personnalisées. En stockant et en analysant des données client dans BigQuery, vous pouvez créer des solutions qui génèrent des recommandations personnalisées, proposent des produits et services adaptés aux besoins du client, et améliorent le service client.
  • Gestion des risques. Les institutions financières sont toujours à la recherche de processus permettant d'identifier et d'atténuer les risques. En analysant des données provenant de différentes sources dans BigQuery, vous pouvez identifier des schémas et des tendances qui indiquent des risques potentiels.

Commerce

L'utilisation intelligente des données client, avec la possibilité de les combiner avec des données produit et l'exécution d'engagements personnalisés en temps réel définissent l'avenir du e-commerce. Pour répondre aux besoins des clients, les marchands doivent prendre des décisions basées sur les données en collectant et en analysant des données. BigQuery et MongoDB Atlas vous permettent d'utiliser les données client pour stimuler l'innovation dans la personnalisation, par exemple dans les domaines suivants :

  • Commerce omnicanal. MongoDB permet de stocker et de gérer les données provenant de différentes sources, y compris les magasins en ligne et physiques, les applications mobiles et les réseaux sociaux. Le stockage et la gestion des données associés à l'analyse BigQuery en font un outil idéal pour les marchands omnicanaux qui doivent offrir une expérience fluide à leurs clients sur tous les canaux.
  • Insights en temps réel. BigQuery vous permet d'obtenir des insights en temps réel sur vos clients, votre inventaire et les performances des ventes. Ces insights vous aident à prendre de meilleures décisions concernant la tarification, la promotion et le placement de produit.
  • Recommandations personnalisées. Les moteurs de recommandations personnalisés permettent aux marchands d'augmenter les ventes et la satisfaction client. En stockant et en analysant les données client, vous pouvez identifier des schémas et des tendances pouvant être utilisés pour recommander des produits susceptibles d'intéresser chaque client.

Industrie et logistique

L'analyse des données MongoDB dans BigQuery offre également les avantages suivants aux secteurs industriel et de la logistique :

  • Visibilité en temps réel. Vous pouvez obtenir une visibilité en temps réel de vos opérations. Vous pouvez ainsi prendre de meilleures décisions concernant votre production, votre inventaire et vos livraisons.
  • Optimisation de la chaîne d'approvisionnement. La gestion de l'incertitude de la chaîne d'approvisionnement et l'analyse des données provenant de différentes sources vous aident à réduire les coûts et à améliorer l'efficacité.

Jeux vidéo

L'analyse dans BigQuery permet également aux développeurs et aux éditeurs de créer des jeux dernier cri et d'offrir des expériences de jeu inégalées, y compris les suivantes :

  • Gameplay en temps réel. Vous pouvez utiliser votre analyse pour créer des expériences de gameplay en temps réel afin de générer des classements, des systèmes de mise en correspondance et des fonctionnalités multijoueurs.
  • Expérience personnalisée pour les joueurs. Vous pouvez utiliser l'intelligence artificielle (IA) et le ML pour proposer des recommandations ciblées et personnaliser l'expérience de jeu pour les joueurs.
  • Statistiques sur les jeux. Vous pouvez analyser les données de jeu pour identifier les tendances et les schémas qui vous aideront à améliorer la conception du jeu, le gameplay et vos décisions commerciales.

Alternatives de conception

Vous disposez de deux options pour utiliser les modèles Dataflow en tant que pipeline d'intégration de MongoDB vers BigQuery : Pub/Sub avec un abonnement BigQuery ou Confluent Cloud.

Pub/Sub avec un abonnement BigQuery

Au lieu d'utiliser des modèles Dataflow, vous pouvez utiliser Pub/Sub pour configurer un pipeline d'intégration entre votre cluster MongoDB et BigQuery. Pour utiliser Pub/Sub au lieu de Dataflow, procédez comme suit :

  1. Configurez un schéma et un sujet Pub/Sub pour ingérer les messages de votre flux de modifications MongoDB.
  2. Créez un abonnement BigQuery dans Pub/Sub qui écrit les messages dans une table BigQuery existante à mesure qu'ils sont reçus. Si vous n'utilisez pas d'abonnement BigQuery, vous aurez besoin d'un abonnement pull ou push et d'un abonné (tel que Dataflow) qui lit les messages et les écrit dans BigQuery.

  3. Configurez un flux de modifications qui écoute les nouveaux documents insérés dans MongoDB et met en correspondance le schéma utilisé pour Pub/Sub.

Pour en savoir plus sur cette alternative, consultez la page Créer un pipeline de données pour un flux de modifications MongoDB à l'aide d'un abonnement BigQuery Pub/Sub.

Confluent Cloud

Si vous ne souhaitez pas créer votre propre application d'éditeur pour surveiller le flux de modifications MongoDB, vous pouvez utiliser Confluent Cloud. Dans cette approche, vous utilisez Confluent pour configurer un connecteur source MongoDB Atlas afin de lire le flux de données MongoDB. Vous configurez ensuite un connecteur de récepteur BigQuery pour enregistrer les données du cluster Confluent dans BigQuery.

Pour en savoir plus sur cette alternative, consultez la page Diffuser des données de MongoDB vers BigQuery à l'aide des connecteurs Confluent.

Considérations de conception

Lorsque vous créez une solution MongoDB Atlas vers BigQuery, vous devez prendre en compte les points suivants.

Sécurité, confidentialité et conformité

Lorsque vous exécutez un pipeline d'intégration, Dataflow utilise les deux comptes de service suivants pour gérer la sécurité et les autorisations :

  • Compte de service Dataflow. Le service Dataflow utilise son compte de service dans le cadre d'une requête de création de job (par exemple, pour vérifier le quota des projets et créer des instances de nœuds de calcul en votre nom). Le service Dataflow utilise également ce compte pour gérer le job pendant son exécution. Ce compte est également appelé agent de service Dataflow.
  • Le compte de service des nœuds de calcul. Les instances de nœuds de calcul utilisent le compte de service de nœud de calcul pour accéder aux ressources d'entrée et de sortie une fois le job envoyé. Par défaut, les nœuds de calcul utilisent le compte de service Compute Engine par défaut de votre projet en tant que compte de service de nœud de calcul. Le compte de service de nœud de calcul doit disposer du rôle roles/dataflow.worker.

De plus, vos pipelines Dataflow doivent pouvoir accéder aux ressources Google Cloud. Pour autoriser cet accès, vous devez attribuer les rôles requis au compte de service de nœud de calcul de votre projet Dataflow afin que celui-ci puisse accéder aux ressources lors de l'exécution du job Dataflow. Par exemple, si le job écrit des données dans BigQuery, votre compte de service doit au moins disposer du rôle roles/bigquery.dataEditor sur la table ou sur une autre ressource devant être mise à jour.

Optimisation des coûts

Le coût d'exécution des modèles Dataflow dépend des nœuds de calcul programmés et du type de pipeline. Pour comprendre les coûts, consultez la page Tarifs de Dataflow.

Chaque modèle Dataflow peut déplacer des données d'une collection MongoDB vers une table BigQuery. Par conséquent, à mesure que le nombre de collections augmente, le coût d'utilisation des modèles Dataflow peut également augmenter.

Efficacité opérationnelle

Pour utiliser et analyser efficacement les données MongoDB, vous devrez peut-être effectuer une transformation personnalisée de ces données. Par exemple, vous devrez peut-être reformater vos données MongoDB pour qu'elles correspondent à un schéma cible, masquer des données sensibles ou filtrer certains éléments du résultat. Si vous devez effectuer une telle transformation, vous pouvez utiliser une UDF pour étendre les fonctionnalités du modèle MongoDB vers BigQuery sans avoir à modifier le code du modèle.

Une UDF est une fonction JavaScript. L'UDF doit recevoir et renvoyer une chaîne JSON. Le code suivant illustre un exemple de transformation :

/**
* A simple transform function.
* @param {string} inJson
* @return {string} outJson
*/
function transform(inJson) {
   var outJson = JSON.parse(inJson);
   outJson.key = "value";
   return JSON.stringify(outJson);
}

Pour en savoir plus sur la création d'une UDF, consultez la page Créer des fonctions définies par l'utilisateur pour les modèles Dataflow.

Après avoir créé votre UDF, vous devez suivre la procédure suivante pour étendre le modèle MongoDB vers BigQuery afin qu'il utilise cette UDF :

  • Tout d'abord, vous devez charger le fichier JavaScript contenant l'UDF dans Google Cloud Storage.
  • Ensuite, lorsque vous créez le job Dataflow à partir du modèle, vous devez définir les paramètres de modèle suivants :
    • Définissez le paramètre javascriptDocumentTransformGcsPath sur l'emplacement Cloud Storage du fichier JavaScript.
    • Définissez le paramètre javascriptDocumentTransformFunctionName sur le nom de l'UDF.

Pour en savoir plus sur l'extension du modèle avec une UDF, consultez la page Modèle MongoDB vers BigQuery.

Optimisation des performances

Les performances de transformation de MongoDB vers BigQuery dépendent des facteurs suivants :

  • Taille du document MongoDB
  • Nombre de collections MongoDB
  • Si la transformation repose sur un schéma fixe ou un schéma variable
  • Connaissance de l'équipe en charge de l'implémentation sur les transformations de schémas utilisant des UDF basées sur JavaScript

Déploiement

Pour déployer cette architecture de référence, consultez la page Déployer une transformation de données entre MongoDB et Google Cloud.

Étapes suivantes

  • Consultez les modèles disponibles sur GitHub afin de personnaliser les modèles Google Dataflow.
  • Pour en savoir plus sur les solutions MongoDB Atlas et Google Cloud, consultez la page Cloud Skills Boost.
  • Découvrez les produits Google Cloud utilisés dans cette architecture de référence :
  • Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.

Contributeurs

Auteurs :

Autres contributeurs :