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

MongoDB

author
Talend Documentation Team
EnrichVersion
Cloud
7.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Open Studio for Big Data
Talend Real-Time Big Data Platform
task
Création et développement > Systèmes tiers > Composants Database > Composants MongoDB
Gouvernance de données > Systèmes tiers > Composants Database > Composants MongoDB
Qualité et préparation de données > Systèmes tiers > Composants Database > Composants MongoDB
EnrichPlatform
Studio Talend

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

Pour plus d'informations concernant les 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 réalisateurs 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 réalisateurs 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 réalisateurs 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.

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 (apercu 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 tHDFSConfiguration.

  • Standalone mode : vous devez choisir le composant de configuration selon le système de fichiers que vous utilisez, comme tHDFSConfiguration ou tS3Configuration.

    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 :