Propriétés du tDeltaLakeOutput pour Apache Spark Batch - Cloud - 8.0

Delta Lake

Version
Cloud
8.0
Language
Français
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Studio Talend
Content
Création et développement > Systèmes tiers > Composants Technical > Composants Delta Lake
Gouvernance de données > Systèmes tiers > Composants Technical > Composants Delta Lake
Qualité et préparation de données > Systèmes tiers > Composants Technical > Composants Delta Lake
Last publication date
2024-02-21

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 :

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

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.
  • Selon le système de fichiers à utiliser, paramétrez le composant de configuration placé dans votre Job, par exemple un tS3Configuration pour S3 ou un tAzureFSConfiguration pour Azure Storage et Azure Data Lake Storage.

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 :
  • Create (Créer) : crée un répertoire spécifié dans le champ Folder/File (Dossier/Fichier) et y saisit des données.
  • Append (Ajouter) : ajoute des enregistrements entrants aux données existantes dans le tableau Target table (Tableau cible) ou dans le répertoire spécifié dans le champ Folder/File (Dossier/Fichier) .
  • Overwrite (Écraser) : écrase le tableau Target table (Tableau cible) ou le répertoire spécifié dans le champ Folder/File (Dossier/Fichier) avec les données entrantes.
  • Drop table : supprime la table et le répertoire associé du système de fichiers, puis recrée une table.
  • Drop table if exists: supprime la table et le répertoire associé du système de fichiers, puis recrée une table. SI la table n'existe pas, rien ne se passe.
  • Truncate table : supprime toutes les lignes de la table mais conserve son schéma.

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.
Remarque : 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.
Remarque : 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.
  • DELETE (SUPPRIMER) : supprime la ligne dans le tableau cible.
  • UPDATE SET * (METTRE À JOUR LE JEU *) : remplace toutes les valeurs dans la ligne de sortie par les valeurs de la ligne d'entrée. Cette action nécessite que le tableau source et le tableau cible aient les mêmes colonnes.
  • UPDATE (METTRE À JOUR) : remplace certaines valeurs dans la ligne de sortie par les valeurs correspondantes de la ligne d'entrée. Dans ce cas, vous devez préciser les colonnes sur lesquelles appliquer la mise à jour.

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.
  • DELETE (SUPPRIMER) : supprime la ligne dans le tableau cible.
  • INSERT SET * (INSÉRER LE JEU *) : insère toutes les colonnes des données d'entrée dans les colonnes de sortie correspondantes. Cette action nécessite que le tableau source et le tableau cible aient les mêmes colonnes.
  • INSERT (INSÉRER) : insère certaines colonnes des données d'entrée dans les colonnes de sortie correspondantes. Dans ce cas, vous devez préciser les colonnes à insérer.

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 :
  • 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 des distributions sur site (on-premises), utilisez le composant de configuration correspondant au système de fichiers utilisé par votre cluster.

  • Standalone mode : utilisez le composant de configuration correspondant au système de fichiers utilisé par votre cluster.

    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.