Propriétés du tMongoDBInput pour Apache Spark Streaming - 7.1

MongoDB

author
Talend Documentation Team
EnrichVersion
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

Ces propriétés sont utilisées pour configurer le tMongoDBInput s'exécutant dans le framework de Jobs Spark Streaming.

Le composant tMongoDBInput Spark Streaming appartient à la famille Databases.

Dans ce type de Job, le tMongDBInput est utilisé pour fournir des données de référence, lorsque la taille des données de référence convient à la taille de la mémoire allouée à l'exécution du Job. Il est exécuté une fois pour lire les données de MongDB et stocker les données en mémoire afin que les micro-batches du flux principal puissent facilement accéder aux données. Si les données de référence sont trop volumineuses pour être stockées dans la mémoire, il est recommandé d'utiliser le tMongoDBLookupInput, qui charge uniquement les données correspondant à la clé de jointure de référence.

Ce composant est disponible dans Talend Real Time Big Data Platform et dans Talend Data Fabric.

Basic settings

Property type

Peut être Built-In ou Repository.

Built-In : aucune propriété n'est stockée de manière centrale.

Repository : Sélectionnez le fichier dans lequel sont stockées les propriétés du composant.

MongoDB configuration

Cochez cette case et sélectionnez le composant de connexion adéquat dans la liste Component list pour réutiliser les paramètres d'une connexion que vous avez déjà définie.

Schema et Edit Schema

Un schéma est une description de lignes. Il définit le nombre de champs (colonnes) à traiter et à passer au composant suivant. Lorsque vous créez un Job Spark, évitez le mot réservé line lors du nommage des champs.

Modifiez le schéma en cliquant sur Edit Schema. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir uniquement le schéma.

  • Change to built-in property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, cliquez sur No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre Repository Content.

Si une colonne dans une base de données est un document JSON et que vous devez lire le document entier, saisissez un astérisque "*" dans la colonne DB column, sans guillemets.

Collection

Saisissez le nom de la collection à utiliser.

Une collection MongoDB est l'équivalent d'une table d'un SGBDR et contient des documents.

Si la collection à utiliser n'est pas shardée, il est recommandé d'ajouter la propriété mongo.input.split_size à la table Advanced Hadoop MongoDB properties. Ce paramètre détermine comment la collection va être partitionnée et lue par les exécuteurs Spark. Le nombre de partitions de la collection d'entrée peut être calculé à l'aide de la formule suivante :
Number of partitions = Collection size in MB / mongo.input.split_size
Sans cette propriété, Spark utilise la valeur par défaut, 8 Mo, pour la taille de la collection.
Par exemple :
mongo.input.split_size   1
Dans cet exemple, Spark répartit 1 Mo à chaque exécuteur Spark afin de lire la collection non shardée en parallèle. Si la taille de la collection est de 10 Mo, 10 exécuteurs sont employés.

Configurer les préférences de lecture

Cochez cette case et, dans la liste Read preference qui s'affiche, sélectionnez le membre auquel vous souhaitez adresser les opérations de lecture.

Si vous laissez décochée cette case, le Job utilise les préférences de lecture par défaut. Autrement dit, il utilise le membre primaire d'un Replica set.

Pour plus d'informations, consultez la documentation de MongoDB relative à la réplication et à ses préférences de lecture (Read preferences).

Query

Spécifiez l'instruction de requête pour sélectionner des documents de la collection spécifiée dans le champ Collection. Par exemple, saisissez "{'id':'4'}" pour récupérer l'enregistrement dont l'id est 4 dans la collection.

La requête par défaut, {} entre guillemets doubles, fournies avec ce composant, permet de sélectionner tous les fichiers. Vous pouvez également appliquer une expression régulière en saisissant {'filename':{'$regex':'REGEX_PATTERN'}} pour définir les noms des fichiers à utiliser.

À la différence des instructions de requête requises dans le logiciel client MongoDB, la requête ici fait référence au contenu dans find() et la requête {'filename':{'$regex':'REGEX_PATTERN'}} ici est l'équivalent de db.blog.find({filename:{$regex:REGEX_PATTERN}}) dans la requête client MongoDB.

Mapping

Chaque colonne du schéma défini pour ce composant représente un champ des documents à lire. Dans cette table, vous devez spécifier les nœuds parents de ces champs, s'il y en a.

Par exemple, dans le document se présentant comme suit :
{
               _id: ObjectId("5099803df3f4948bd2f98391"),
               person: { first: "Joe", last: "Walker" }
            }
Les champs first et last ont un nœud père person mais le champ _id ne contient aucun nœud père. Cela fait, la table Mapping doit ressembler à ceci :
Column     Parent node path
_id
first       "person"
last        "person"

Limit

Saisissez le nombre maximal d'enregistrements à récupérer.

Advanced settings

Advanced Hadoop MongoDB properties

Ajoutez des propriétés afin de définir des opérations supplémentaires que vous souhaitez que le tMongoDBInput effectue lors de la lecture des données.

Les propriétés disponibles sont listées et expliquées à l'adresse suivante MongoDB Connector for Hadoop (en anglais).

Si la collection à utiliser n'est pas shardée, il est recommandé d'ajouter la propriété mongo.input.split_size à la table Advanced Hadoop MongoDB properties. Ce paramètre détermine comment la collection va être partitionnée et lue par les exécuteurs Spark. Le nombre de partitions de la collection d'entrée peut être calculé à l'aide de la formule suivante :
Number of partitions = Collection size in MB / mongo.input.split_size
Sans cette propriété, Spark utilise la valeur par défaut, 8 Mo, pour la taille de la collection.
Par exemple :
mongo.input.split_size   1
Dans cet exemple, Spark répartit 1 Mo à chaque exécuteur Spark afin de lire la collection non shardée en parallèle. Si la taille de la collection est de 10 Mo, 10 exécuteurs sont employés.

Utilisation

Règle d'utilisation

Ce composant est utilisé pour fournir des données de référence, lorsque la taille des données de référence convient à la taille de la mémoire allouée à l'exécution du Job. Il est exécuté une fois pour lire les données de MongDB et stocker les données en mémoire afin que les micro-batches du flux principal puissent facilement accéder aux données. Si les données de référence sont trop volumineuses pour être stockées dans la mémoire, il est recommandé d'utiliser le tMongoDBLookupInput, qui charge uniquement les données correspondant à la clé de jointure de référence.

Ce composant est utilisé en tant que composant de début et nécessite un lien de sortie.

Ce composant doit utiliser un tMongoDBConfiguration dans le même Job pour se connecter à une base de données MongoDB. Vous devez déposer un tMongoDBConfiguration près de ce composant et en configurer les propriétés simples (dans l'onglet Basic settings) pour utiliser le tMongoDBConfiguration.

Ce composant, ainsi que les composants Spark Streaming de la Palette à laquelle il appartient, s'affichent uniquement lorsque vous créez un Job Spark Streaming.

Notez que, dans cette documentation, sauf mention contraire, un scénario présente uniquement des Jobs Standard, c'est-à-dire des Jobs Talend traditionnels d'intégration de données.

Spark Connection

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).

Cette connexion fonctionne uniquement pour le Job dans lequel vous l'avez définie.