Propriétés du tDeltaLakeOutput pour Apache Spark Batch
Ces propriétés sont utilisées pour configurer tDeltaLakeOutput s'exécutant dans le framework de Jobs Spark Batch.
Le composant Spark Batch tDeltaLakeOutput appartient à la famille Technique.
Le composant de ce framework est disponible dans tous les produits Talend avec Big Data nécessitant une souscription et dans Talend Data Fabric.
Basic settings
Define how to save the dataset |
Sélectionnez Metastore, Files ou Merge. |
Metastore : stocke les données au format table dans un metastore. |
|
Files : stocke les données au format Delta dans des fichiers. |
|
Merge : stocke les données en les insérant dans une table Delta existante. Pour en savoir plus sur l'option Merge et les tables Delta, consultez Upsert into a table using merge dans la documentation Databricks (en anglais). |
|
Define a storage configuration component |
Sélectionnez le composant de configuration à utiliser pour fournir les informations de configuration pour la connexion au système de fichiers cible. Si vous laissez cette case décochée, le système de fichiers cible est le système local. Le composant de configuration à utiliser doit se trouver dans le même Job. Par exemple, si vous avez ajouté un composant tS3Configuration dans votre Job, vous pouvez le sélectionner pour écrire le résultat dans un système de stockage S3 donné. Ce champ est disponible lorsque l'option Files est sélectionnée dans la liste déroulante Define the source of the dataset, dans la vue 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. Les propriétés sont stockées centralement sous le nœud Hadoop Cluster de la vue Repository. Les champs suivants sont alors préremplis à l'aide des données collectées. Pour plus d'informations concernant le nœud Hadoop Cluster, consultez Gérer les métadonnées Hadoop. |
|
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. Créez le schéma en cliquant sur le bouton Edit Schema. Si le schéma est en mode Repository, trois options sont disponibles :
Spark déduit automatiquement les types de données pour les colonnes d'un schéma PARQUET. Dans un Job Talend pour Apache Spark, le type Date est déduit et stocké en tant que int96. Ce composant offre la fonction de schéma dynamique. Cela vous permet de récupérer des colonnes inconnues de fichiers sources ou de copier des lots de colonnes d'une source sans avoir à mapper chaque colonne individuellement. Pour plus d'informations concernant les schémas dynamiques, consultez Schéma dynamique. Cette fonctionnalité de schéma dynamique est conçue pour permettre de récupérer des colonnes inconnues d'une table. Il est recommandé de l'utiliser uniquement à cet effet et non pour créer des tables. |
Built-in : le schéma est créé et conservé localement pour ce composant seulement. |
|
Repository : le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé dans des Jobs et projets. |
|
Dossier/Fichier |
Parcourez votre système ou saisissez le chemin d'accès aux données à utiliser dans le système de fichiers. Si le chemin d'accès défini pointe vers un dossier, ce composant lit tous les fichiers stockés dans le dossier, par exemple /user/talend/in. Si les sous-dossiers existent, ils sont automatiquement ignorés, sauf si vous définissez la propriété spark.hadoop.mapreduce.input.fileinputformat.input.dir.recursive à true dans la table Advanced properties, dans l'onglet Spark configuration.
Le bouton pour parcourir votre système ne fonctionne pas en mode Local de Spark. Si vous utilisez les autres modes Yarn de Spark supportés par le Studio Talend avec votre distribution, assurez-vous d'avoir correctement configuré la connexion dans un composant de connexion dans le même Job. Utilisez le composant de configuration relatif au système de fichiers à utiliser. Ce champ est disponible lorsque vous sélectionnez Metastore dans la liste déroulante Select how to save the dataset (Sélectionnez la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
Action |
Sélectionnez une opération pour écrire des données dans le système de fichiers auquel le composant de configuration de votre Job fournit les informations de connexion :
Delta Lake crée systématiquement de légères différences entre l'heure de chargement d'un fichier et l'horodatage des métadonnées de ce fichier. Gardez à l'esprit ces différences lorsque vous devez filtrer des données. Cette option est disponible lorsque vous sélectionnez Files (Fichiers) ou Metastore dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
Source type |
Le type source des données d'entrées, qui peut être soit Dataset (jeu de données) ou SQL. Ce champ est disponible lorsque vous sélectionnez Merge (Fusionner) dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
Dataset (Jeu de données) : sélectionnez cette valeur si les données sources sont un jeu données provenant d'un flux de données. |
|
SQL : sélectionnez cette valeur si vous souhaitez utiliser une instruction SQL pour récupérer les données source depuis un tableau Delta. Dans le champ SQL, saisissez l'instruction SQL qui définit les données source à récupérer.
Note InformationsRemarque : La table Delta, de laquelle les données sont récupérées, peut provenir d'un metastore ou du composant connecté à l'entrée.
Dans le champ Table alias (Alias du tableau), saisissez l'alias du tableau contenant les données source. Ajoutez des guillemets doubles (" ") autour de l'alias.
Note InformationsRemarque : L'alias de la table est le nom donné à la table résultant de l'instruction SELECT utilisée dans la requête.
|
|
Base de données |
Saisissez, entre guillemets doubles (" "), le nom de la base de données Delta Lake à utiliser. Ce champ est disponible lorsque vous sélectionnez Metastore ou Merge (Fusionner) dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
Target table name (Nom du tableau cible) |
Saisissez, entre guillemets doubles (" "), le nom de la table à utiliser. Ce champ est disponible lorsque vous sélectionnez Metastore ou Merge (Fusionner) dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
External path |
Saisissez, entre guillemets doubles, le chemin d'accès à un système de fichiers différent du SGBD, pour stocker les données. Cela peut être un système de fichiers ADLS Gen2 ou S3. Ce champ est disponible lorsque vous sélectionnez Metastore dans la liste déroulante Select how to save the dataset, dans la vue Basic settings. |
Optimize |
Saisissez l'instruction SQL pour optimiser la mise en page des données. Pour plus d'informations concernant l'optimisation des données Delta Lake, consultez Optimize (Delta Lake on Databricks) dans la documentation Databricks (en anglais). Ce champ est disponible lorsque vous sélectionnez Metastore dans la liste déroulante Select how to save the dataset, dans la vue Basic settings. |
Merge ON |
Indique sur quelles colonnes d'entrée et de sortie appliquer l'opération de fusion. Pour chaque paire de colonnes d'entrée et de sortie, vous devez préciser une fonction. La clause en résultant va conditionner les actions de fusion à effectuer. Ces actions de fusion sont définies dans les options When matched et When not matched. Par exemple, supposez qu'une compagnie aérienne utilise les données sur les événements en vol. Il arrive régulièrement que la date du départ du vol soit modifiée, et leurs données doivent être mises à jour avec les nouvelles dates. Pour fusionner les données avec les événements actuels en fonction de l'identifiant du vol, la compagnie peut indiquer flightId en tant que colonnes d'entrée et de sortie, et utiliser la fonction ==. Ensuite, elle peut définir l'action de fusion à effectuer lorsque le résultat de la condition est "True" (Vrai). Dans ce cas, la condition est vraie lorsque les valeurs de flightId dans la colonne d'entrée sont égales à celles dans la colonne de sortie. Ce champ est disponible lorsque vous sélectionnez Merge (Fusionner) dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
When matched (En cas de correspondance) |
Cochez cette case pour définir l'action de fusion à effectuer lorsque que les fonctions définies dans le tableau Merge on (Fusionner lorsque) sont vraies. Vous pouvez définir une action de fusion pour chacune des deux options When matched (en cas de correspondance). Si vous définissez deux options When matched (en cas de correspondance), la première doit avoir une clause conditionnelle. Les options sont évaluées dans l'ordre dans lequel elles ont été définies. Dans le champ condition, vous pouvez saisir une instruction de condition afin de définir plus précisément les données affectées par l'action de fusion. Si vous précisez une condition, l'action de fusion est effectuée sur une ligne donnée, uniquement si la condition est vraie sur cette ligne. Utiliser les conditions peut rendre la fusion plus rapide. La condition doit suivre le format suivant targetTable.column = this.column, où targeTable est le nom de la table cible. Avec le type de données source Dataset (jeu de données), ceci est le nom de la connexion. Avec le type de données source SQL, ceci doit être remplacé par le champ Table alias (alias de la table). Dans liste déroulante Merge action (Action de fusion), sélectionnez l'action à effectuer.
Par exemple, une table de données relative à une compagnie aérienne contenant le nombre de passagers d'un vol et un booléen indiquant si un vol est plein. La condition suivante limite le champ d'action de la fusion aux vols pleins en se basant sur le nombre de passagers : flightEvents.nbOfPeople < this.nbOfPeople. L'action du fusion peut mettre à jour la valeur de isFlightMoreCrowded à true avec l'action UPDATE SET*. Ce champ est disponible lorsque vous sélectionnez Merge (Fusionner) dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
When not matched (En cas de non-correspondance) |
Cochez cette case pour définir l'action de fusion à effectuer lorsque que les fonctions définies dans le tableau Merge on (Fusionner lorsque) sont fausses. Dans le champ condition, vous pouvez saisir une instruction de condition afin de définir plus précisément les données affectées par l'action de fusion. Si vous précisez une condition, l'action de fusion est effectuée sur une ligne donnée, uniquement si la condition est vraie sur cette ligne. Utiliser les conditions peut rendre la fusion plus rapide. La condition doit suivre le format suivant targetTable.column = this.column, où targeTable est le nom de la table cible. Avec le type de données source Dataset (jeu de données), ceci est le nom de la connexion. Avec le type de données source SQL, ceci doit être remplacé par le champ Table alias (alias de la table). Dans liste déroulante Merge action (Action de fusion), sélectionnez l'action à effectuer.
Par exemple, une table de données relatives à une compagnie aérienne, partitionnée par date. L'action de fusion a la condition suivante : flightEvents.date = current_date(). L'action de fusion s'applique lorsque les fonctions définies dans la table merge on retournent false et uniquement sur les données correspondant aux vols de la date courante. Ce champ est disponible lorsque vous sélectionnez Merge (Fusionner) dans la liste déroulante Select how to save the dataset (Sélectionner la méthode d'enregistrement du jeu de données), dans la vue Basic settings (Paramètres de base). |
Paramètres avancés
Define column partitions | Cochez cette case et renseignez la table qui apparaît en utilisant les colonnes du schéma des données entrantes. Les enregistrements des colonnes sélectionnées sont utilisés comme clés pour partitionner vos données. |
Sort columns alphabetically | Cochez cette case pour trier les colonnes du schéma par ordre alphabétique. Si vous laissez cette case décochée, ces colonnes conservent l'ordre défini dans l'éditeur du schéma. |
Merge Schema | Le schéma de vos jeux de données évolue souvent dans le temps. Cochez cette case pour joindre les schémas des données entrantes et existantes lorsque leurs schémas sont différents. Si vous laissez cette case et la case Overwrite Schema décochées, seules les colonnes des données existantes sont utilisées. |
Overwrite Schema |
Le schéma de vos jeux de données évolue souvent dans le temps. Cochez cette case pour utiliser les schémas des données entrantes pour écraser les schémas des données existantes. Si vous laissez cette case et la case Merge Schema décochées, seules les colonnes des données existantes sont utilisées. |
Utilisation
Règle d'utilisation |
Ce composant est utilisé en tant que composant de fin et requiert un lien d'entrée. Delta Lake crée systématiquement de légères différences entre l'heure de chargement d'un fichier et l'horodatage des métadonnées de ce fichier. Gardez à l'esprit ces différences lorsque vous devez filtrer des données. Cette couche Delta Lake est construite sur votre système Data Lake. Vous pouvez vous connecter à votre système Data Lake à l'aide du composant de configuration correspondant à votre système Data Lake, par exemple, tAzureFSConfiguration. |
Connexion à Spark |
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 :
Cette connexion fonctionne uniquement pour le Job dans lequel vous l'avez définie. |