Lire et écrire des données dans MongoDB à l'aide d'un Job Spark Streaming - 7.3

MongoDB

Version
7.3
Language
Français
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants NoSQL > Composants MongoDB
Gouvernance de données > Systèmes tiers > Composants NoSQL > Composants MongoDB
Qualité et préparation de données > Systèmes tiers > Composants NoSQL > Composants MongoDB
Last publication date
2024-02-22

Ce scénario s'applique uniquement aux solutions Talend Real-Time Big Data Platform et Talend Data Fabric.

Pour plus de technologies supportées par Talend, consultez Composants Talend.

Dans ce scénario, vous allez créer un Job Spark Streaming pour extraire des données concernant des cinéastes de films à partir de MongoDB, utiliser ces données pour filtrer et compléter les informations relatives aux films et écrire les résultats dans une collection MongoDB.

L'échantillon de données relatives aux cinéastes se présente comme suit :
1;Gregg Araki	
2;P.J. Hogan 
3;Alan Rudolph 
4;Alex Proyas
5;Alex Sichel

Ces données contiennent les noms de ces cinéastes et les ID qui leur ont été attribués.

La structure de ces données dans MongoDB se présente comme suit :
{ "_id" : ObjectId("575546da3b1c7e22bc7b2189"), "person" : { "id" : 3, "name" : "Alan Rudolph" } }
{ "_id" : ObjectId("575546da3b1c7e22bc7b218b"), "person" : { "id" : 4, "name" : "Alex Proyas" } }
{ "_id" : ObjectId("575546da3b1c7e22bc7b218c"), "person" : { "id" : 5, "name" : "Alex Sichel" } }
{ "_id" : ObjectId("575546da3b1c7e22bc7b2188"), "person" : { "id" : 1, "name" : "Gregg Arakit" } }
{ "_id" : ObjectId("575546da3b1c7e22bc7b218a"), "person" : { "id" : 2, "name" : "P.J. Hogan" } }

Notez que les données d'exemple sont créées à des fins de démonstration uniquement.

Le tHDFSConfiguration est utilisé dans ce scénario par Spark afin de se connecter au système HDFS où sont transférés les fichiers Jar dépendant du Job.

Dans l'onglet Spark Configuration de la vue Run, définissez la connexion à un cluster Spark donné pour le Job complet. De plus, puisque le Job attend ses fichiers .jar dépendants pour l'exécution, vous devez spécifier le répertoire du système de fichiers dans lequel ces fichiers .jar sont transférés afin que Spark puisse accéder à ces fichiers :
  • Yarn mode (Yarn Client ou Yarn Cluster) :
    • Lorsque vous utilisez Google Dataproc, spécifiez un bucket dans le champ Google Storage staging bucket de l'onglet Spark configuration.

    • Lorsque vous utilisez HDInsight, spécifiez le blob à utiliser pour le déploiement du Job, dans la zone Windows Azure Storage configuration de l'onglet Spark configuration.

    • Lorsque vous utilisez Altus, spécifiez le bucket S3 ou le stockage Azure Data Lake Storage (aperçu technique) pour le déploiement du Job, dans l'onglet Spark configuration.
    • Lorsque vous utilisez Qubole, ajoutez tS3Configuration à votre Job pour écrire vos données métier dans le système S3 avec Qubole. Sans tS3Configuration, ces données métier sont écrites dans le système Qubole HDFS et détruites une fois que vous arrêtez votre cluster.
    • Lorsque vous utilisez des distributions sur site (on-premises), utilisez le composant de configuration correspondant au système de fichiers utilisé par votre cluster. Généralement, ce système est HDFS et vous devez utiliser le tHDFSConfiguration.

  • Standalone mode : utilisez le composant de configuration correspondant au système de fichiers que votre cluster utilise, comme le tHDFSConfiguration Apache Spark Batch ou le tS3Configuration Apache Spark Batch.

    Si vous utilisez Databricks sans composant de configuration dans votre Job, vos données métier sont écrites directement dans DBFS (Databricks Filesystem).

Prérequis :
  • Le cluster Spark et la base de données MongoDB à utiliser doivent avoir été installés et être en cours de fonctionnement.

  • Les données susmentionnées ont été chargées dans la collection MongoDB à utiliser.

Pour reproduire ce scénario, procédez comme suit :