Utilisation des opérateurs de flux de données

Dans le service d'intégration de données, les opérateurs de flux de données représentent les sources d'entrée, les cibles de sortie et les transformations qui peuvent être utilisées dans un flux de données.

À partir du panneau Opérateurs, faites glisser des opérateurs sur le canevas pour concevoir un flux de données. Utilisez ensuite l'onglet Détails du panneau Propriétés pour configurer les propriétés de base et requises de chaque opérateur. Le cas échéant, utilisez l'onglet Options avancées pour spécifier d'autres propriétés.

En général, un opérateur de flux de données peut avoir un ou plusieurs ports entrants et un ou plusieurs ports sortants pour que les données puissent circuler. Par exemple, vous pouvez connecter le même port sortant source à des ports entrants sur un opérateur Filtrer, Jointure et Cible. Vous pouvez également connecter un autre opérateur Source au même port entrant de jointure.

Un flux de données doit inclure au moins un opérateur Source et un opérateur Cible pour être valide. Alors que le service d'intégration de données prend en charge plusieurs opérateurs Cible dans un flux de données, un opérateur Cible ne peut avoir qu'un seul port entrant.

Pour connecter des opérateurs, survolez le premier avec le pointeur de la souris jusqu'à ce que le symbole de connexion (petit cercle) apparaisse sur son côté droit. Puis faites glisser le connecteur vers l'opérateur suivant auquel vous souhaitez le connecter. La connexion est valide lorsqu'une ligne relie les deux opérateurs.

Une ligne de connexion symbolise la façon dont les données circulent d'un noeud à l'autre. Bien que vous puissiez faire glisser un connecteur visible d'un objet à un autre, vous ne pouvez pas avoir plus d'une ligne de connexion entrante vers un opérateur Filtrer, Expression, agréger, distinct, trier et cible.

Important

Pour les types de données complexes, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge. Il se peut que vous ne puissiez pas effectuer certaines configurations dans les onglets Attributs et Données du panneau Propriétés.

Opérateurs de données

Le service d'intégration de données fournit l'opérateur source et l'opérateur cible pour l'ajout d'entités de données d'entrée et de sortie pour servir d'entrée aux flux de données, et de sortie pour les données transformées.

Sélection d'une ressource de données, d'une connexion et d'un schéma

Pour configurer l'entité de données d'entrée ou de sortie d'un opérateur de données dans un flux de données, vous commencez par sélectionner une ressource de données, une connexion et un schéma (ou un seau).

Les sélections ne sont effectuées que dans l'ordre affiché dans l'onglet Détails du panneau Propriétés, en cliquant sur l'option Sélectionner lorsque l'option est activée à côté du type de ressource.

Par exemple, lorsque vous ajoutez un opérateur Source pour la première fois, seule la ressource de données est activée pour la sélection. L'option de sélection du type de ressource suivant, Connexion, n'est activée qu'après que vous avez effectué une sélection pour l'objet précédent.

Lorsque vous cliquez sur Sélectionner à côté d'une ressource, un panneau s'affiche pour vous permettre de sélectionner l'objet souhaité. Vous pouvez utiliser le menu de ressources pour sélectionner l'objet, ou sélectionner Tout voir pour utiliser un autre panneau pour rechercher l'objet, puis le sélectionner.

Lors de la sélection d'un objet de ressource, chaque sélection suivante est basée sur la relation parent-enfant héritée de la sélection précédente. Un chemin de navigation en haut du panneau de sélection montre la hiérarchie de sélection. Supposons, par exemple, que vous avez sélectionné la ressource de données "Oracle Database data asset 1" et la connexion "Default connection". Lorsque vous sélectionnez le schéma, le chemin de navigation affiche "À partir des données Oracle Database asset1 à l'aide de la connexion par défaut."

Sélection d'une entité de données

Après avoir sélectionné une ressource de données, une connexion et un schéma (ou un seau), vous sélectionnez une entité de données dans la liste des entités de données disponibles.

En général, vous pouvez effectuer les opérations suivantes dans le panneau Parcourir les entités de données :

  • Parcourez les entités de données disponibles et sélectionnez une entité par son nom.

  • Filtrez la liste disponible à rechercher, puis sélectionnez. Dans le champ de recherche, entrez un nom d'entité partiel ou complet et appuyez sur Entrée pour lancer la recherche. La recherche est sensible à la casse. Par exemple, si les entités de données disponibles incluent BANK_US et BANK_EU, entrez BANK, puis effectuez une sélection dans la liste filtrée.

  • Utilisez un ou plusieurs paramètres dans la chaîne de recherche. Par exemple : CUSTOMERS_${COUNTRY}

    Pour utiliser un nom d'entité de données paramétré pour sélectionner la ressource d'entrée ou de sortie, voir Utilisation des paramètres dans les noms d'entité de données.

Selon le type de ressource de données d'une ressource, après avoir sélectionné une entité de données, une configuration supplémentaire peut être nécessaire dans l'onglet Détails ou dans l'onglet Options avancées du panneau Propriétés.

Affectation de paramètres aux objets de ressource

Pour éviter qu'un objet de ressource tel qu'une ressource de données ou une connexion d'un flux de données soit lié en permanence à une ressource particulière, vous affectez un paramètre à cet objet.

Vous pouvez affecter le paramètre après avoir sélectionné l'objet de ressource, ou avant.

  • Dans le flux de données, ajoutez l'opérateur Source ou Cible. Après avoir sélectionné un type de ressource, sélectionnez Affecter un paramètre à côté du nom de la ressource pour utiliser un autre panneau pour sélectionner un paramètre et l'affecter à l'objet sélectionné. Si un type de paramètre approprié n'est pas disponible, vous pouvez ajouter un paramètre, puis l'affecter.

    Note

    Affecter un paramètre non disponible pour une entité de données dont le nom inclut un paramètre (par exemple, BANK_${REGION}). Vous ne pouvez pas lier une ressource d'entité paramétrée à un autre paramètre.
  • Sinon, vous pouvez ajouter l'opérateur Source ou Cible, puis sélectionner Affecter un paramètre afin d'utiliser un panneau pour affecter un paramètre et, en même temps, sélectionner la ressource pour l'objet. Dans le panneau Ajouter un paramètre, sélectionnez une ressource basée sur la relation parent-enfant héritée de la sélection précédente. Le chemin de navigation en haut du panneau affiche la hiérarchie de sélection.

Voir aussi Utilisation des paramètres de flux de données.

Utiliser des paramètres dans les noms d'entité de données

Vous pouvez inclure un ou plusieurs paramètres de flux de données dans le nom de la ressource d'entité de données que vous spécifiez pour un opérateur de données.

La syntaxe à utiliser pour un paramètre de flux de données dans un nom d'entité de données est ${PARAMETER_NAME}. Par exemple : CUSTOMERS_${COUNTRY}

Un nom de paramètre est sensible à la casse et chaque paramètre doit avoir une valeur par défaut.

Par exemple, CUSTOMERS_${COUNTRY} peut retourner la table de base de données CUSTOMERS_USA et BANK_${COUNTRY}/* peut retourner les fichiers du service de stockage d'objets dans BANK_EU.

Pour utiliser des paramètres dans les noms d'entité de données lorsque vous configurez un opérateur de données, vous pouvez :

  • Ajoutez le paramètre au flux de données avant d'ajouter l'opérateur de données
  • Ajouter le paramètre au moment de la configuration de l'entité de données de l'opérateur

Comment ajouter un paramètre

Dans un flux de données, sélectionnez Paramètres dans le menu Voir de la barre d'outils du canevas pour ouvrir le panneau Paramètres.

Dans le panneau Paramètres, sélectionnez Configuration, puis Ajouter.

Dans le panneau Ajouter un paramètre, configurez un paramètre du type de données approprié, par exemple VARCHAR ou NUMERIC, et ajoutez une valeur par défaut.

Lors de la configuration d'une entité de données dans un flux de données, vous pouvez rechercher les entités de données disponibles en entrant le nom du paramètre dans le panneau Parcourir les entités de données. Dans le champ de recherche, commencez à entrer ${ suivi de n'importe quel caractère. Si la première partie du nom du paramètre correspond à des paramètres existants dans le flux de données, une liste des noms suggérés s'affiche. Sélectionnez un paramètre dans la liste, remplissez la syntaxe en ajoutant }, puis appuyez sur Entrée.

Comment ajouter un paramètre lors de la configuration de l'entité de données

Dans le panneau Parcourir les entités de données, vous pouvez effectuer les opérations suivantes :

  • Dans le menu Actions supplémentaires, sélectionnez Ajouter un paramètre de flux de données pour utiliser le panneau Ajouter un paramètre de flux de données. Spécifiez le type de données, la valeur par défaut et d'autres propriétés pour le paramètre à ajouter et à utiliser.

  • Dans le champ de recherche, commencez à entrer ${ suivi de n'importe quel caractère. Si la première partie du nom du paramètre correspond à des paramètres existants dans le flux de données, une liste des noms suggérés s'affiche. Sélectionnez un paramètre dans la liste, remplissez la syntaxe en ajoutant }, puis appuyez sur Entrée.

  • Dans le champ de recherche, entrez le nom du paramètre, par exemple ${PARAMETER_NAME}. Si le nom du paramètre n'existe pas encore dans le flux de données et que vous appuyez sur Entrée, le service d'intégration de données affiche le panneau Ajouter un paramètre de flux de données. Sinon, après avoir entré le nom du paramètre, sélectionnez Ajouter un paramètre de flux de données dans le menu Actions supplémentaires.

    Dans le panneau Ajouter un paramètre de flux de données, spécifiez le type de données, la valeur par défaut et d'autres propriétés pour le paramètre à ajouter et à utiliser.

Opérateur Source

Utilisez l'opérateur Source pour indiquer les entités de données qui servent d'entrée au flux de données.

Ajout et configuration d'un opérateur Source

Vous pouvez ajouter plusieurs opérateurs Source dans un flux de données.

Important

Si vous utilisez une entité de données hiérarchique pour un opérateur Source, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge. Il se peut que vous ne puissiez pas effectuer certaines configurations dans l'onglet Attributs ou Données du panneau Propriétés.
  1. À partir du panneau Opérateurs, faites glisser un opérateur Source sur le canevas.
  2. Avec l'opérateur Source en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom pour cet opérateur Source dans le champ Identificateur ou laissez le nom par défaut tel quel.
  3. Pour configurer la source d'entrée pour cet opérateur, sélectionnez la ressource de données, la connexion et le schéma (ou le seau) en cliquant sur Sélectionner lorsqu'elle devient disponible à côté du type de ressource. Pour plus d'informations sur le type de ressource de données sélectionné pour cet opérateur Source, consultez les descriptions suivantes.
    Type de ressource de données Description

    Stockage d'objets

    Amazon S3

    HDFS

    Cliquez sur Sélectionner à côté de Seau pour sélectionner le compartiment, puis sélectionnez le seau.

    Après avoir sélectionné la ressource de données, la connexion et le seau, passez à l'étape 5 pour sélectionner une entité de données.

    Ressource de données REST générique

    Après avoir sélectionné une connexion, l'URL de base que vous avez entrée lors de la création de la ressource de données s'affiche. Pour configurer la source, procédez comme suit :

    • Cliquez sur Sélectionner à côté de Ressource pour sélectionner un point d'extrémité.

    • Cliquez sur Sélectionner à côté de Opération pour sélectionner une opération pour le point d'extrémité.

    • Pour plus de propriétés, voir l'étape 7.

    Oracle Fusion Applications à l'aide d'Oracle BI Cloud Connector (BICC)

    Pour Schéma, sélectionnez l'offre BICC. L'offre BICC sélectionnée fournit les objets vue BICC pour l'extraction de données.

    Après avoir sélectionné une ressource de données, une connexion et un schéma, passez à l'étape 4 pour sélectionner une entité de données.

    Oracle Fusion Applications à l'aide d'Oracle BI Publisher (BIP)

    Pour Ressource de données :

    Pour utiliser une ressource de données BIP dans un flux de données, vous avez besoin d'un compartiment de stockage d'objets comme emplacement temporaire. Si vous sélectionnez une ressource de données qui n'a pas d'emplacement temporaire par défaut spécifié dans cette ressource de données, le service d'intégration de données affiche un avis d'avertissement. Lorsque l'avis s'affiche, sélectionnez l'une des options suivantes :
    • Sélectionnez Mettre à jour la ressource de données pour ajouter un emplacement temporaire par défaut à cette ressource de données.
    • Cliquez sur Sélectionner à côté de Emplacement temporaire dans le panneau Propriétés pour sélectionner la ressource de données de stockage d'objets qui contient le seau à utiliser pour le stockage temporaire.

    Pour Schéma :

    Sélectionnez le dossier BIP qui contient le rapport en tant que schéma.

    Voir Extraire des données de BIP dans le service d'intégration de données pour plus de détails sur :
    • Préparation du rapport BIP et de son interrogation SQL
    • Configuration de la fragmentation
    • Utilisation de paramètres BIP personnalisés

    Après avoir sélectionné une ressource de données, une connexion et un schéma, passez à l'étape 4 pour sélectionner une entité de données.

    Autres ressources de données qui ne sont pas du service de stockage d'objets, Amazon S3 ou HDFS

    Après avoir sélectionné une ressource de données, une connexion et un schéma, passez à l'étape 4 pour sélectionner une entité de données.

  4. Pour sélectionner une entité de données non dans un stockage d'objets, Amazon S3 ou une ressource de données HDFS :
    1. Notez ce qui suit dans le panneau Sélectionner une entité de données. Le cas échéant, vous pouvez :
      • Utilisez le menu Entité de données pour sélectionner une entité de données par son nom.

      • Sélectionnez Parcourir les entités de données pour utiliser un autre panneau pour parcourir ou rechercher la liste disponible, puis sélectionner une entité de données.

        Voir Sélection d'une entité de données, si vous avez besoin d'aide pour effectuer une recherche dans la liste à l'aide d'un nom complet ou partiel.

        Vous pouvez inclure un ou plusieurs paramètres de flux de données dans le nom d'une entité de données sélectionnée, à l'aide de la syntaxe ${PARAMETER_NAME}. Par exemple : BANK_${REGION}

        Voir Utilisation de paramètres dans les noms d'entité de données, si vous avez besoin d'aide pour ajouter et utiliser des paramètres lors de la configuration des noms d'entité.

    2. Selon le type de ressource de données pour cet opérateur Source, sélectionnez l'entité de données et effectuez une configuration supplémentaire, le cas échéant.
      Type de ressource de données Description

      Base de données Oracle

      Oracle Database sur Amazon RDS

      Oracle Siebel

      Oracle PeopleSoft

      Oracle E-Business Suite

      Oracle ATP et ADW

      MySQL

      MySQL Heatwave

      MySQL sur Amazon RDS

      Amazon RDS pour SQL Server

      Microsoft SQL Server

      Microsoft Azure SQL Database

      IBM DB2

      Dans les détails :

      • Sélectionnez l'entité de données par son nom.

      • S'il y a lieu, sélectionnez Entrer le SQL personnalisé pour entrer un seul énoncé SQL dans l'éditeur.

        En fournissant un énoncé d'interrogation SQL, vous pouvez définir une entité source de base de données et la forme de l'entité en même temps. Par exemple, vous pouvez définir et filtrer les données dans un énoncé SQL au lieu d'ajouter un opérateur Filtrer après avoir défini l'entité à utiliser pour l'opérateur Source.

        Note : Dans les énoncés SQL, utilisez des guillemets simples autour des paramètres. Par exemple : select * from ORDERS where Created_On >= '${SYS.LAST_LOAD_DATE}'

        Après avoir entré l'interrogation SQL, sélectionnez Valider pour vérifier si l'énoncé contient des erreurs.

      • Si disponible et applicable, suivez ces étapes pour charger uniquement les enregistrements nouveaux ou mis à jour de la source vers la cible :

        • Cochez la case Chargement incrémentiel pour identifier et charger uniquement les rangées qui ont été créées ou modifiées depuis la dernière exécution du processus de chargement.

        • Pour Colonne Watermark, sélectionnez la colonne utilisée pour marquer les rangées qui ont été chargées de manière incrémentielle. Seules les colonnes DATE, TIMESTAMP et DATETIME peuvent être utilisées comme colonne de filigrane.

      Oracle Fusion Applications à l'aide d'Oracle BI Cloud Connector (BICC)

      Dans l'onglet Détails : Sélectionnez un objet de vue BICC comme entité de données à partir de laquelle extraire les données. Utilisez ensuite le menu Stratégie d'extraction pour choisir comment les données sources sont extraites.

      • Complète : Extrait et charge toutes les données à partir de la date d'extraction initiale facultative que vous spécifiez. Si vous ne fournissez pas de date dans le champ Date de l'extraction initiale, toutes les données sont alors extraites.
      • Incrémentiel : Extrait et charge uniquement les données créées ou modifiées après une date spécifique.
        • Sélectionnez Géré pour utiliser la dernière date suivie et gérée par le service d'intégration de données. Vous n'indiquez pas explicitement de date.
          Important

          L'option Gérée extrait 24 heures supplémentaires de données dans le passé.

          Le service d'intégration de données ajoute le paramètre SYS.LAST_LOAD_DATE pour suivre la date du dernier chargement ou de la dernière exécution de tâche, et stocke la date du dernier chargement réussi sous forme de filigrane lors des exécutions consécutives. Lorsque la tâche est exécutée, vous êtes autorisé à modifier la valeur de la dernière date stockée dans le système.

        • Sélectionnez Personnalisé pour fournir la date vous-même dans le champ Dernière date d'extraction.

      Sélectionnez ensuite un stockage de configuration externe BICC différent pour les données extraites, si vous ne souhaitez pas utiliser la valeur par défaut de la ressource de données. La valeur par défaut de la ressource de données est le stockage externe BICC configuré dans la ressource de données BICC Fusion Applications lorsque la ressource a été créée ou modifiée.

      Facultativement, remplissez les champs suivants dans l'onglet Options avancées :

      Sélectionnez Activer le courtier BI si vous voulez que l'extracteur BICC lise les rangées d'entrée directement à partir de la base de données Fusion Applications au lieu d'un chemin d'extraction standard.
      Important

      • Le mode de courtier BI est une option d'optimisation de la performance pour les utilisateurs avancés.
      • Le mode courtier BI est une fonction BICC prise en charge uniquement pour certains magasins de données. Échec de l'extraction pour les magasins de données non pris en charge.
      • Avec l'option BI Broker, les performances d'extraction peuvent s'améliorer car les interrogations sont exécutées directement sur les magasins de données de la base sous-jacente. L'amélioration des performances dépend de la banque de données, de la charge globale actuelle sur le serveur BI, de la charge globale actuelle sur la base de données et d'autres facteurs.
      • Dans certains cas, l'activation du mode courtier BI modifie les types de données de la colonne source.
      Si vous ne sélectionnez pas Activer le courtier BI, les données sont extraites au moyen du serveur BI. Pour plus d'informations, voir Mode d'extraction de courtier dans Configurer les offres à extraire du guide Création d'une extraction Business Intelligence Cloud. Le guide BICC fait partie de la liste de livres Applications Common dans la documentation sur Oracle Fusion Cloud Applications Suite.

      Pour Propriétés de colonne BICC, sélectionnez le type des colonnes de la source BICC à inclure en tant qu'attributs dans la cible.

        • Toutes : Toutes les colonnes de l'objet de vue public BICC sont incluses. Toutefois, les colonnes dont le nom commence par ExtnAttribute ou les colonnes dont le nom et l'étiquette sont identiques ne s'affichent pas.

        • Par défaut seulement : Seules les colonnes activées pour l'extraction par défaut dans l'objet de vue public BICC sont incluses. Il affiche toutes les colonnes, y compris les colonnes Flex.

        • Clés par défaut et clés primaires : Les colonnes par défaut et principale de l'objet de vue public BICC sont incluses. Il affiche toutes les colonnes, y compris les colonnes Flex.

        • Clés principales uniquement : Seules les colonnes principales de l'objet de vue public BICC sont incluses. Il affiche toutes les colonnes, y compris les colonnes Flex.

      Oracle Fusion Applications à l'aide d'Oracle BI Publisher (BIP)

      Dans l'onglet Détails :

      • Pour Entité de données, sélectionnez un rapport. Voir le blogue Extraire des données d'Oracle Fusion Applications à l'aide de BIP dans le service d'intégration de données pour un rappel de l'emplacement du rapport.
      • Spécifiez l'emplacement temporaire, qui est le seau de stockage d'objets pour le stockage temporaire des données extraites. Si la ressource de données sélectionnée a un emplacement temporaire par défaut spécifié, le service d'intégration de données utilise automatiquement la ressource de données et le seau de stockage d'objets qui sont spécifiés comme emplacement temporaire par défaut dans cette ressource de données. Si la ressource de données sélectionnée n'a pas d'emplacement temporaire par défaut spécifié, vous pouvez sélectionner la ressource de données de stockage d'objets qui contient le seau à utiliser pour le stockage temporaire. Sinon, vous pouvez mettre à jour la ressource de données pour ajouter un emplacement temporaire par défaut, ou vous pouvez sélectionner une autre ressource de données.

      Exécutez ensuite les tâches suivantes dans l'onglet Options avancées :

      • Sélectionnez Activer la limite de rangées pour spécifier le nombre maximal de rangées à extraire.

      • Dans le champ Limite de rangée, spécifiez la limite de rangée.

      • Si un volume de données important est attendu, spécifiez la taille dans le champ Taille de la tranche de mémoire sous Activer la fragmentation. La taille de tranche de mémoire est obligatoire si la limite de rangées spécifiée est supérieure à 100000.

        Pour obtenir de l'aide sur la fragmentation, voir le blogue Extraire des données d'Oracle Fusion Applications à l'aide de BIP dans le service d'intégration de données.

      • La section Propriétés BIP affiche les paramètres de rapport BIP du rapport que vous avez sélectionné pour l'entité de données. Sélectionnez une propriété dans les champs Nombre de rangées retournées et Décalage de début. Vous ne pouvez pas sélectionner la même propriété pour les deux champs.
      • Pour charger uniquement les enregistrements nouveaux ou mis à jour de la source vers la cible :
        • Cochez la case Chargement incrémentiel pour identifier et charger uniquement les données créées ou modifiées depuis la dernière exécution du processus de chargement.
        • Pour Colonne Watermark, sélectionnez la propriété utilisée pour marquer les données qui ont été chargées de manière incrémentielle.
    3. Après avoir sélectionné une entité de données, le nom de celle-ci s'affiche à côté de Entité de données dans l'onglet Détails du panneau Propriétés.
      • Si vous avez fourni un énoncé SQL, l'étiquette SQL_ENTITY<nnnnnnnnn> s'affiche, par exemple : SQL_ENTITY123456789

      • Si vous avez utilisé un paramètre dans le nom d'entité, l'étiquette inclut le nom du paramètre, par exemple : BANK_${REGION}

        Note

        Pour une entité de données dont le nom contient un paramètre, vous ne pouvez pas lier la ressource d'entité à un autre paramètre. L'option Affecter un paramètre n'est pas disponible.

  5. Pour sélectionner une entité de données qui provient d'une ressource de données de stockage d'objets, Amazon S3 ou HDFS :
    1. Utilisez le panneau Sélectionner une entité de données pour sélectionner une seule entité par nom, ou une ou plusieurs entités à l'aide d'une expression de modèle.
      • Sélectionnez Rechercher par nom afin d'utiliser un autre panneau pour rechercher la liste disponible, puis sélectionner une entité de données par nom.

        Voir Sélection d'une entité de données, si vous avez besoin d'aide pour effectuer une recherche dans la liste à l'aide d'un nom complet ou partiel.

        Vous pouvez inclure un ou plusieurs paramètres de flux de données dans le nom d'une entité de données sélectionnée, à l'aide de la syntaxe ${PARAMETER_NAME}. Par exemple : BANK_${REGION}.csv

        Voir Utilisation de paramètres dans les noms d'entité de données, si vous avez besoin d'aide pour ajouter et utiliser des paramètres lors de la configuration d'une entité de données par nom.

      • Sélectionnez Parcourir par modèle pour utiliser une expression rationnelle (y compris les caractères génériques) pour sélectionner une ou plusieurs entités qui correspondent à un répertoire et à un modèle de fichier spécifiques. Par exemple, entrez CUSTOMERS* dans le champ et appuyez sur Entrée pour filtrer la liste. Voir Test et utilisation d'un modèle.

        Vous pouvez également inclure des paramètres dans l'expression de modèle, à l'aide de la syntaxe ${PARAMETER_NAME}. Par exemple : CUSTOMERS_${REGION}/*

        Voir Utilisation de paramètres dans les noms d'entité de données, si vous avez besoin d'aide pour ajouter et utiliser des paramètres lors de la configuration des noms d'entité de données par modèle.

        Note

        Lorsque vous utilisez une expression de modèle, tous les fichiers existants qui correspondent au modèle sont censés avoir la même structure. Les fichiers correspondants sont traités comme une seule entité dans le flux de données. Tous les futurs nouveaux fichiers correspondant au modèle seront également traités.

        Pour une entité de données dont le nom contient un paramètre, vous ne pouvez pas lier la ressource d'entité à un autre paramètre. L'option d'affectation d'un paramètre n'est pas disponible.

    2. Après avoir sélectionné l'entité de données par nom ou par modèle, configurez-la dans le panneau Sélectionner une entité de données.

      La façon dont vous effectuez la configuration dépend du type de fichier que vous choisissez pour l'entité de données sélectionnée.

      Type de fichier Description

      CSV

      Si vous avez utilisé Browse by name (Naviguer par nom) pour sélectionner l'entité de données, vous pouvez sélectionner Preview raw data (Voir les données brutes) pour afficher les 10 premières lignes du fichier.

      Sélectionnez le type de compression (méthode de compression) utilisé. Si vous ne connaissez pas la méthode de compression utilisée pour compresser le fichier, sélectionnez Auto (par défaut).

      L'encodage par défaut est UTF-8 et ne peut pas être modifié.

      Les autres paramètres que vous pouvez configurer sont les suivants :

      • Si la première rangée du fichier est une rangée d'en-tête, sélectionnez Oui pour A l'en-tête.
      • Si les valeurs des rangées de données couvrent plusieurs lignes, sélectionnez Oui pour Lignes multiples.
      • Spécifiez le caractère d'évaluation pour les autres caractères figurant dans les valeurs de données. Par exemple : \
      • Sélectionnez le délimiteur qui sépare les champs de données. Par exemple : COLON (:), COMMA (,), PIPE (|), SEMICOLON (;) ou TAB (\t)
      • Si un délimiteur de colonne est inclus à la fin d'une rangée de données dans le fichier, sélectionnez Oui pour Délimiteur de fin.
      • Spécifiez le caractère guillemet qui traite les autres caractères en tant que caractères littéraux. Par exemple : "

      JSON

      Sélectionnez le type de compression (méthode de compression) utilisé. Si vous ne connaissez pas la méthode de compression utilisée pour compresser le fichier, sélectionnez Auto (par défaut).

      L'encodage par défaut est UTF-8 et ne peut pas être modifié.

      Sélectionnez Utiliser un schéma personnalisé pour coller ou charger un exemple de schéma personnalisé utilisé pour déduire la forme de l'entité. Lorsque cette case est cochée, la dérive de schéma n'est plus applicable dans l'entité source.

      • Si vous sélectionnez Charger, déposez un fichier de schéma personnalisé dans la zone fournie ou cliquez sur Sélectionner un fichier pour sélectionner le fichier de schéma à charger.

      • Si vous sélectionnez Coller dans le schéma, copiez le contenu du fichier texte du schéma et collez-le dans la zone fournie.

      PARQUET

      Le type de compression par défaut est Automatique, ce qui ne peut pas être modifié.

      AVRO

      Le type de compression par défaut est Automatique, ce qui ne peut pas être modifié.

      EXCEL

      Seuls les fichiers XLSX sont pris en charge.

      Le type de compression par défaut est Automatique, ce qui ne peut pas être modifié.

      Par défaut, le service d'intégration de données traite la première rangée d'un fichier en tant que rangée d'en-tête. Si la première rangée d'un fichier n'est pas une rangée d'en-tête, sélectionnez Non pour A un en-tête.

      Pour Sélectionner une entité par, vous pouvez sélectionner les critères Nom de la feuille, Index de feuille ou Nom de la table. Entrez ensuite une valeur pour le nom de feuille de calcul, l'index de feuille de calcul ou le nom de table. L'indice de feuille est basé sur zéro.

      Pour Nom de la feuille ou Index de feuille, entrez la zone du fichier à utiliser comme intervalle de données pour la sélection. Si vous n'entrez pas de valeur d'intervalle de données, la valeur par défaut est l'intervalle de données A1, qui correspond à la feuille entière. Si le fichier comporte une rangée d'en-tête, entrez une valeur qui commence à partir de la rangée d'en-tête, par exemple A1:K56.

    3. Une fois la configuration de l'entité de données terminée, cliquez sur Sélectionner.

      Vous êtes retourné à l'onglet Détails du panneau Propriétés. Le nom de l'entité de données ou l'expression de modèle d'entité sélectionnée s'affiche à côté de Entité de données. Par exemple, CUSTOMERS_EU.csv, CUSTOMERS* ou CUSTOMERS_${REGION}/*

      Note

      Pour une entité de données dont le nom contient un paramètre, vous ne pouvez pas lier la ressource d'entité à un autre paramètre. L'option Affecter un paramètre n'est pas disponible.

    4. Si disponible et applicable, cochez la case Chargement incrémentiel pour identifier et charger uniquement les données créées ou modifiées depuis la dernière exécution du processus de chargement.

      Pour les ressources de données de fichier telles que le stockage d'objets, le service d'intégration de données effectue une extraction incrémentielle en fonction de la date de dernière modification (horodatage) des objets sélectionnés dans un dossier ou sélectionnés par un modèle de fichier.

      Par exemple, supposons que le 5 janvier il y ait trois fichiers dans le seau de stockage d'objets : EMPLOYEE_1.csv, EMPLOYEE_2.csv, EMPLOYEE_3.csv

      Si une tâche de chargement est exécutée avec succès le 5 janvier, les trois fichiers sont traités.

      • Le 6 janvier, un nouveau fichier EMPLOYEE_4.csv est ajouté au seau; ce fichier a la date de dernière modification (horodatage) du 6 janvier. Si une tâche de chargement est exécutée le 6 janvier, seule EMPLOYEE_4.csv est récupérée et traitée pour le chargement incrémentiel des données.
      • Le 6 janvier, un nouveau fichier EMPLOYEE_4.csv est ajouté au seau; ce fichier a la date de dernière modification (horodatage) du 6 janvier. Le fichier EMPLOYEE_2.csv est également modifié le 6 janvier. Si une tâche de chargement est exécutée le 6 janvier, les fichiers EMPLOYEE_2.csv et EMPLOYEE_4.csv sont récupérés pour traitement.
  6. (Facultatif) Dans l'onglet Détails, sélectionnez l'icône d'actualisation à côté du nom de l'entité sélectionnée pour vous assurer que vous utilisez les derniers schémas de l'entité au cours de la session de travail courante dans le concepteur. Seules les métadonnées de l'entité sont extraites, et non les modifications de données réelles.
  7. (Facultatif) Dans l'onglet Options avancées, selon le type de ressource de données pour cet opérateur Source, vous pouvez sélectionner ou effacer les options applicables.

    Élément Description

    Extraire les métadonnées de fichier en tant qu'attributs

    Cochez la case pour inclure les métadonnées du fichier (telles que le nom et la taille du fichier) en tant qu'attributs dans les données retournées.

    Les caractères spéciaux (espace compris) dans les noms de fichier ne sont pas pris en charge.

    Autoriser la dérive de schéma

    Par défaut, la dérive de schéma est activée pour permettre au service d'intégration de données de gérer dynamiquement les modifications de définition de schéma lors de la conception et de l'exécution du flux de données. La dérive de schéma est une modification des définitions de schéma dans l'entité de données spécifiée. Les modifications comprennent les attributs ajoutés ou supprimés, ainsi que les types de données d'attribut ou les noms d'entité modifiés.

    Si vous désélectionnez la case Autoriser la dérive de schéma, vous désactiverez la dérive de schéma afin de verrouiller les définitions de schéma lors de la définition du flux de données. Lorsque la dérive de schéma est désactivée, le service d'intégration de données utilise une forme fixe de l'entité de données spécifiée même lorsque la forme sous-jacente a changé.

    Si un schéma personnalisé est sélectionné, la dérive de schéma ne s'applique pas et cette option ne peut pas être sélectionnée.

    Traiter le fichier manquant comme un fichier vide

    Uniquement pour une ressource de données de stockage d'objets.

    Cette case à cocher est disponible uniquement lorsque l'option Autoriser la dérive de schéma n'est pas sélectionnée.

    Autoriser la poussée vers le bas

    Par défaut, la poussée vers le bas est activée pour permettre au service d'intégration de données d'utiliser le système de base de données source pour traiter les opérations de transformation, si le système prend en charge la poussée vers le bas. Seules les bases de données Oracle Database, Oracle Autonomous Data Warehouse, Oracle Autonomous Transaction Processing et MySQL prennent en charge la poussée vers le bas. Moins de données sont extraites de la source lorsque le service d'intégration de données utilise le système de base de données source pour traiter les opérations.

    En désélectionnant la case Autoriser la poussée vers le bas, vous désactivez la poussée vers le bas. Lorsque la poussée vers le bas est désactivée, le service d'intégration de données tire toutes les données directement du système source, puis traite les transformations.

    Paramètres de paramètre et d'en-tête

    Uniquement pour une ressource de données REST.

    Utilisez les paramètres Paramètre et En-tête pour configurer d'autres propriétés sources.

  8. Dans l'onglet Attributs, consultez les attributs de l'entité de données sélectionnée. Pour une ressource de données BICC Fusion Applications, les attributs sont les colonnes BICC de l'objet de vue que vous avez sélectionné.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (type de données), COMPOSITE ou MAP (type de clé, type de valeur). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  9. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Pour une ressource de données BICC Fusion Applications, seulement 10 rangées de données sont affichées.

    Le profil de données ne s'affiche pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  10. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Utilisation de modèles de fichiers

Lors de la configuration du service de stockage d'objets pour OCI en tant que source de données, vous pouvez utiliser une expression rationnelle pour spécifier un modèle de fichier afin de sélectionner une ou plusieurs entités de données.

Un modèle de fichier est une règle permettant de rechercher les fichiers qui correspondent à un répertoire et à un nom de fichier et de déterminer comment gérer les fichiers trouvés.

Syntaxe à utiliser

Le service d'intégration de données prend en charge la syntaxe de modèle Glob pour spécifier un modèle de fichier.

  • Un astérisque, *, correspond à un nombre quelconque de caractères (y compris aucun).
  • Deux astérisques, **, fonctionnent de la même manière que *, mais traversent les limites du répertoire pour correspondre aux chemins complets.
  • Un point d'interrogation, ?, correspond exactement à un caractère.
  • Les accolades indiquent une collection de sous-modèles. Par exemple :
    • {sun,moon,stars} correspond à "sun", "moon" ou "stars".
    • {temp*,tmp*} correspond à toutes les chaînes commençant par "temp" ou "tmp".
  • Les crochets indiquent un jeu de caractères uniques ou, lorsque le trait d'union (-) est utilisé, une plage de caractères. Par exemple :
    • [aeiou] correspond à n'importe quelle voyelle minuscule.
    • [0-9] correspond à n'importe quel chiffre.
    • [A-Z] correspond à n'importe quelle lettre majuscule.
    • [a-z,A-Z] correspond à une lettre majuscule ou minuscule quelconque.

    Lorsqu'ils sont à l'intérieur de crochets, les caractères *, ? et \ correspondent à eux-mêmes.

  • Tous les autres caractères correspondent à eux-mêmes.
  • Pour mettre en correspondance *, ? ou les autres caractères spéciaux, vous pouvez effectuer un échappement à l'aide de la barre oblique inverse, \. Par exemple : \\ correspond à une seule barre oblique inverse et \? correspond au point d'interrogation.
Exemples
*.htmlCorrespond à toutes les chaînes qui se terminent par .html
???Correspond à toutes les chaînes contenant exactement trois lettres ou chiffres
*[0-9]*Correspond à toutes les chaînes contenant une valeur numérique
*.{htm,html,pdf}Correspond à toute chaîne se terminant par .htm, .html ou .pdf
a?*.javaCorrespond à toute chaîne commençant par la lettre a, suivie d'au moins une lettre ou un chiffre, et se terminant par .java
{foo*,*[0-9]*}Correspond à toute chaîne commençant par foo ou à toute chaîne contenant une valeur numérique
directory1/20200209/part-*[0-9]*jsonCorrespond à tous les fichiers du dossier dont le nom commence par part-, comporte un nombre quelconque de chiffres 0-9 et se termine par json
directory3/**.csvCorrespond à tous les fichiers avec une extension de csv qui se trouvent dans le dossier directory3 et ses sous-dossiers
directory3/*.csvCorrespond à tous les fichiers ayant une extension csv qui ne se trouvent que dans le dossier principal directory3. Les fichiers dans les sous-dossiers ne sont pas inclus.
Test et utilisation d'un modèle

Vous pouvez tester l'expression pour vérifier que le modèle à utiliser extrait les fichiers de stockage d'objets pour une ou plusieurs entités de données.

  1. Dans le panneau Select data entity (Sélectionner une entité de données), sélectionnez Browse by pattern (Parcourir par modèle).

  2. Dans le panneau Rechercher des entités de données par modèle, sélectionnez Tester le modèle dans le menu Actions supplémentaires.

  3. Dans le panneau Tester le modèle, dans le champ Modèle de recherche, entrez une expression de modèle à tester avant de l'utiliser.

    Par exemple, entrez department1/2020/*.json pour rechercher tous les fichiers ayant l'extension .json dans le répertoire department1/2020. Vous pouvez utiliser la syntaxe de paramètre ${} dans le champ Modèle de recherche.

  4. Pour tester le modèle de recherche, dans le bloc Tester les noms de fichier, fournissez un nom de fichier ou plusieurs noms de fichier délimités par une nouvelle ligne. Par exemple, pour le modèle BANK_C*/*, les noms de fichier peuvent être les suivants :

    BANK_CITY/part-00002-0aaf87d57fbc-c000.csv	
    BANK_COUNTRY/part-00000-a66df3ab02fd-c000.csv
  5. Sélectionnez Tester le modèle.

    Vérifiez que les noms de fichier de test sont retournés dans le bloc Nom du fichier obtenu.

  6. Sélectionnez Utiliser le modèle pour ajouter l'expression de modèle au panneau Parcourir les entités de données par modèle.

    Vous retournez au panneau Parcourir les entités de données par modèle. Les fichiers correspondant à l'expression de modèle sont affichés dans le tableau.

  7. Cliquez sur Sélectionner un modèle.

    Vous retournez au panneau Sélectionner une entité de données. L'expression de modèle s'affiche à côté de Data entity.

    Lorsque vous utilisez une expression de modèle, tous les fichiers existants qui correspondent au modèle sont censés avoir la même structure. Les fichiers correspondants sont traités comme une seule entité dans le flux de données. Tous les futurs nouveaux fichiers correspondant au modèle seront également traités.

Utilisation du chargement incrémentiel géré par le service d'intégration de données (BICC)

Le chargement incrémentiel charge uniquement les données nouvelles ou mises à jour d'une source dans une cible. Dans le service d'intégration de données, lorsque vous configurez BICC Oracle Fusion Applications en tant que données sources, vous pouvez utiliser la stratégie d'extraction incrémentielle Gérée pour effectuer un chargement incrémentiel.

Lorsque vous choisissez d'utiliser la stratégie d'extraction incrémentielle, seuls les enregistrements nouveaux ou mis à jour de la source sont extraits en fonction d'une date de dernière extraction. Le service d'intégration de données offre deux options de date de dernière extraction :

  • Personnalisé : Vous indiquez une date de dernière extraction pour chaque exécution de tâche.

  • Géré : Le service d'intégration de données gère la date pour vous en suivant l'horodatage de l'exécution de la tâche et en stockant la date du dernier chargement réussi en tant que filigrane pour les exécutions consécutives.

    Avec l'option de date de dernière extraction gérée par le service d'intégration de données, vous n'avez pas besoin de spécifier explicitement une date pour une exécution de tâche. Vous pouvez toutefois remplacer la date au moment de l'exécution.

Exécutions de tâche lancées par un programme de tâche

Le service d'intégration de données effectue le suivi d'une exécution de tâche indépendamment d'une exécution de tâche lancée par un programme de tâche. Ainsi, si vous utilisez l'option Géré pour la dernière date d'extraction et que vous configurez également un programme de tâche, le service d'intégration de données conserve automatiquement l'horodatage de la dernière exécution de tâche réussie des exécutions programmées de tâche séparément de l'horodatage de la dernière exécution de tâche réussie des exécutions de tâche qui ne sont pas lancées par un programme de tâche. Cela signifie que la dernière date gérée dans un programme de tâche ou la dernière date gérée dans une tâche n'est pas modifiée par l'autre opération d'exécution.

Chargement incrémentiel pour différentes entités de données dans un flux de données

Supposons que vous souhaitiez configurer le chargement incrémentiel pour différentes entités de données dans un flux de données. Pour ce faire, vous pouvez utiliser des paramètres et créer un programme de tâche pour chaque entité de données. Les étapes générales sont les suivantes :

  1. Dans le flux de données, affectez des paramètres au schéma source (offre BICC) et à l'entité de données (objet de vue BICC).
  2. Créer et publier une tâche d'intégration pour le flux de données paramétré.
  3. Créez un programme de tâche pour la tâche d'intégration. Dans la page Configurer les paramètres, spécifiez les valeurs de schéma et d'entité de données pour le programme de tâche.
  4. Créez un autre programme de tâche pour la même tâche d'intégration. Dans la page Configurer les paramètres, définissez les valeurs de schéma et d'entité de données pour ce programme de tâche.
Chargement incrémentiel plusieurs fois en une journée

Pour effectuer un chargement incrémentiel plusieurs fois par jour, ajoutez un opérateur de filtre immédiatement après l'opérateur source BICC dans le flux de données. Créez ensuite une expression de condition pour filtrer les données qui ont déjà été traitées. Par exemple, si la colonne last_update_date de l'objet de vue BICC est LastUpdateDateField, l'expression peut être la suivante :

FILTER_1.MYSOURCE_1.LastUpdateDateField > ${SYS.LAST_LOAD_DATE}

Opérateur Cible

Utilisez l'opérateur Cible pour indiquer les entités de données qui servent de sortie pour stocker les données transformées.

Ajout et configuration d'un opérateur Cible

Vous pouvez ajouter plusieurs opérateurs Cible à un flux de données. Chaque cible ne peut avoir qu'un seul port entrant.

Important

Si vous utilisez une entité de données hiérarchique pour un opérateur Cible, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge. Il se peut que vous ne puissiez pas effectuer certaines configurations dans les onglets Attributs, Mappage et Données du panneau Propriétés.
  1. À partir du panneau Opérateurs, faites glisser un opérateur Cible sur le canevas.
  2. Avec l'opérateur Cible en évidence, effectuez les opérations suivantes dans l'onglet Détails du panneau Propriétés :

    Élément Description

    Identificateur

    Entrez un nom pour l'opérateur cible ou laissez le nom par défaut tel quel.

    Créer une entité de données

    (Facultatif) Cochez la case pour créer une nouvelle entité sur la cible, au lieu de mettre à jour une entité existante sur la cible. Plus tard, vous serez invité à entrer un nom pour l'entité de données à créer dans la cible.

    Ne cochez pas la case si vous souhaitez utiliser une entité de données existante comme cible. Vous êtes invité à sélectionner l'entité de données après avoir sélectionné la ressource de données cible, la connexion et le schéma.

    Ressource de données

    Connexion

    Schéma ou Seau

    Dans l'ordre des ressources présenté, cliquez sur Sélectionner à côté de la ressource pour sélectionner la ressource de données, la connexion et le schéma ou le seau.

    Notez ce qui suit :

    • Tous les types de source de données ne sont pas disponibles en tant que ressources de données cibles. Par exemple, PostgreSQL et Hive ne sont pas disponibles en tant que cibles.

    • Pour la stratégie d'intégration de fusion, vous ne pouvez pas utiliser une ressource de données de stockage d'objets comme cible.

    • Si vous utilisez une ressource de données de stockage d'objets, sélectionnez d'abord le compartiment, puis sélectionnez le seau.

    • Pour utiliser la base de données Autonomous Data Warehouse ou Autonomous Transaction Processing comme cible, vous avez besoin d'un seau de stockage d'objets comme emplacement temporaire. Si vous sélectionnez une ressource de données qui n'a pas d'emplacement temporaire par défaut spécifié dans cette ressource de données, le service d'intégration de données affiche un avis d'avertissement. Lorsque l'avis s'affiche, sélectionnez l'une des options suivantes :
      • Sélectionnez Mettre à jour la ressource de données pour ajouter un emplacement temporaire par défaut à cette ressource de données.
      • Cliquez sur Sélectionner à côté de Emplacement temporaire dans le panneau Propriétés pour sélectionner la ressource de données de stockage d'objets qui contient le seau à utiliser pour le stockage temporaire.
      L'autorisation de demande PAR_MANAGE est requise. Pour plus d'informations, voir l'étape 5.

    Entité de données

    Si vous avez coché la case Créer une entité de données, entrez un nom pour l'entité à créer en tant que cible. Pour plus d'informations, voir l'étape 3.

    Si vous n'avez pas coché la case Créer une entité de données, sélectionnez une entité de données existante comme cible. Pour plus d'informations, voir l'étape 4.

    (Uniquement pour les ressources de données de type Autonomous Data Warehouse ou Autonomous Transaction Processing)

    Emplacement temporaire

    Data Integration utilise l'emplacement temporaire pour stocker les données avant de les charger dans la cible.

    Pour plus d'informations, voir l'étape 5.

    Stratégie d'intégration

    La façon dont les données sont déplacées dans l'entité de données cible dépend de la stratégie d'intégration que vous choisissez. Les options sont les suivantes :

    • Insérer : Permet d'insérer de nouveaux enregistrements ou d'ajouter les enregistrements lorsque les données existent dans la cible.

      Si la case Créer une entité de données est cochée, l'option de stratégie uniquement disponible pour sélection est Insérer.

    • Remplacement : Vide la cible avant d'insérer de nouveaux enregistrements.

      Si vous sélectionnez la stratégie Remplacement, vous ne pouvez pas créer une nouvelle entité de données pour l'entité cible.

    • Fusionner : Insère de nouveaux enregistrements et fusionne les enregistrements existants dans une entité de données existante.

      Prenez note des points suivants lors de l'utilisation de la stratégie de fusion :

      • La stratégie de fusion n'est disponible que pour les cibles de base de données. Vous ne pouvez pas utiliser une ressource de données de stockage d'objets comme cible si vous voulez utiliser cette stratégie d'intégration.

      • La clé de fusion identifie le ou les attributs permettant de déterminer les rangées existantes ou les nouvelles rangées à mettre à jour ou à insérer. Vous pouvez sélectionner une clé principale/unique ou une clé non principale comme clé de fusion.

        Cliquez sur Sélectionner ou sur Modifier. Dans le panneau Clé de fusion, effectuez l'une des actions suivantes :

        • Sélectionnez Attributs de clé principale/unique et sélectionnez une clé.
        • Sélectionnez Autres attributs pour utiliser d'autres attributs (non principaux). Entrez un nom pour la clé de fusion et sélectionnez les attributs dans la liste.
      • Si une entité de données cible paramétrée est configurée pour utiliser la stratégie de fusion, vous pouvez modifier la sélection de clé de fusion :
        • Dans une tâche d'intégration lors de la conception et de l'exécution
        • Dans une tâche d'intégration dans un pipeline au moment de la conception et de l'exécution (tâche de pipeline)
        • Dans un programme de tâches (tâche d'intégration et tâche de pipeline)

    (Pour le stockage d'objets uniquement)

    Créer la sortie en tant que fichier unique

    Cette étape est facultative pour les cibles de stockage d'objets.

    Cochez la case Créer une sortie en tant que fichier unique pour écrire la sortie dans un seul fichier, sinon l'opération crée plusieurs fichiers. Le fichier de sortie unique est remplacé chaque fois que la tâche est exécutée.

    La création d'un fichier de sortie unique peut avoir une incidence sur la performance du service d'intégration de données. N'utilisez pas l'option de fichier de sortie unique pour les jeux de données volumineux.

    Vous pouvez choisir d'écrire la sortie dans un seul fichier uniquement si l'une des conditions suivantes s'applique :

    • La case Stratégie d'intégration est Insérée et la case Créer une entité de données est cochée. N'ajoutez pas la barre oblique (/) à la fin du nouveau nom d'entité. Pour plus d'informations, voir l'étape 3.
    • Lorsque la stratégie d'intégration est Remplacement et que vous utilisez une entité de données existante (la case Créer une entité de données n'est pas sélectionnée). Sélectionnez une entité de données existante dont le nom ne comporte pas de barre oblique (/) finale. Pour plus d'informations, voir l'étape 4.
  3. Si vous avez coché la case Créer une entité de données : Entrez un nom pour l'entité à créer. Une nouvelle entité de données n'est créée que si le nom n'existe pas.

    Voir aussi Paramètres dans les noms d'entité de données si vous voulez utiliser un paramètre pour une partie du nouveau nom d'entité.

    Selon le type de ressource de données, prenez note des éléments suivants lorsque vous entrez un nom pour l'entité de données :

    Type de cible Description

    Pour Oracle Database, Autonomous Data Warehouse ou Autonomous Transaction Processing

    Entrez le nom de la nouvelle entité de données.

    Lors de la création d'une entité de données de base de données en tant que sortie cible, si le nom d'entité fourni n'existe pas, une entité de données est créée et les données sont insérées dans la sortie. Si le nom d'entité indiqué existe, le résultat de l'opération dépend de la forme de la cible dans le flux de données et de la forme de l'entité existante.

    Une forme est basée sur le nombre et le nom des attributs, les types de données, les caractéristiques de type telles que la longueur et la précision, et sur la présence ou non de données. Par exemple, le type de données varchar2(4000) n'a pas la même forme que varchar2(2000) même si le nom d'attribut dans la cible du flux de données est identique au nom de l'attribut dans l'entité de données existante.

    • Si la forme de l'entité cible dans le flux de données est identique à celle de l'entité existante, l'opération de base de données :
      • Insère les données, si aucune donnée n'est présente
      • Met à jour ou insère les données, si des données sont présentes
    • Si la forme de l'entité cible dans le flux de données n'est pas la même que celle de l'entité existante :
      • L'opération ajoute l'attribut à l'entité existante lorsque le nom d'attribut n'existe pas.

        Par exemple, la cible dans flux de données contient l'attribut EMPLOYEE_ID NUMBER(10), mais EMPLOYEE_ID NUMBER n'est pas présent dans l'entité existante.

      • Lorsque le nom d'attribut est présent dans l'entité existante, mais que la forme du type de données n'est pas la même :
        • Lorsque des données d'attribut sont présentes, l'opération de base de données échoue lorsque la forme des données est plus petite. Par exemple, lorsque la cible dans flux de données contient EMPLOYEE_COMMENTS VARCHAR2(4000) et que l'entité existante contient EMPLOYEE_COMMENTS VARCHAR2(2000), l'opération échoue. Lorsque la cible dans le flux de données contient EMPLOYEE_COMMENTS VARCHAR2(2000) et que l'entité existante contient EMPLOYEE_COMMENTS VARCHAR2(4000), l'opération réussit.

        • En l'absence de données d'attribut, l'opération modifie l'attribut et insère des données.

          Si la cible est une base de données autonome, vous pouvez rencontrer l'erreur de base de données ORA-22859: invalid modification of columns lorsqu'une tentative de modification d'un objet de colonne, d'une colonne REF, VARRAY, imbriquée ou LOB. Créez une colonne du type voulu et copiez les données de la colonne dans le nouveau type à l'aide du constructeur de type approprié.

    Notez également que la conversion entre TEXT et CLOB n'est pas prise en charge dans le service d'intégration de données. Avec la limite de 4000 octets pour une colonne VARCHAR2 dans une base de données autonome, vous devrez peut-être utiliser une entité de données cible existante ayant un type de données CLOB au lieu de cocher la case Créer une nouvelle entité de données dans certains cas d'utilisation.

    Pour le stockage d'objets

    Entrez le nom de la nouvelle entité de données, suivi d'une barre oblique (/). Par exemple, entrez newdirectory/.

    Toutefois, si vous cochez la case Créer la sortie en tant que fichier unique pour créer un fichier de sortie unique, entrez le nom de la nouvelle entité sans la barre oblique (/) à la fin.

    Lors de l'écriture de la sortie dans un seul fichier, vous pouvez inclure des paramètres dans le nom du fichier à l'aide de la syntaxe ${PARAMETER_NAME}. Par exemple, le nom du fichier peut être écrit comme suit :

    /bucket1/file_${REGION}.csv
    /bucket1/file_${CURRENT_DATE}.csv

    Sélectionnez également le type de fichier et le type de compression. Les types de compression disponibles pour sélection dépendent du type de fichier que vous choisissez. Si vous ne connaissez pas la méthode de compression utilisée pour compresser le fichier, sélectionnez Aucun (par défaut).

    Pour les types de fichier CSV et JSON, l'encodage par défaut est UTF-8 et il ne peut pas être modifié.

    Si vous choisissez le type de fichier CSV, les autres paramètres que vous pouvez configurer sont les suivants :

    • Si la première rangée du fichier est une rangée d'en-tête, sélectionnez Oui pour A l'en-tête.
    • Si les valeurs des rangées de données couvrent plusieurs lignes, sélectionnez Oui pour Lignes multiples.
    • Spécifiez le caractère d'évaluation pour les autres caractères figurant dans les valeurs de données. Par exemple : \
    • Sélectionnez le délimiteur qui sépare les champs de données. Par exemple : COLON (:), COMMA (,), PIPE (|), SEMICOLON (;) ou TAB (\t)
    • Si un délimiteur de colonne est inclus à la fin d'une rangée de données dans le fichier, sélectionnez Oui pour Délimiteur de fin.
    • Spécifiez le caractère guichet qui traite les autres caractères en tant que caractères alphanumériques. Par exemple : "
  4. Si vous ne cochez pas la case Créer une entité de données : Sélectionnez une entité de données existante.

    Pour vous assurer d'utiliser les derniers schémas de l'entité au cours de la session de travail courante dans le concepteur, sélectionnez l'icône Actualiser à côté du nom de l'entité. Seules les métadonnées de l'entité sont extraites, et non les modifications de données réelles.

    Selon le type de ressource de données, prenez note des éléments suivants lors de la configuration pour utiliser une entité de données existante :

    Type de cible Description

    Pour le stockage d'objets

    Cochez la case Créer une sortie en tant que fichier unique pour utiliser un seul fichier de sortie, sinon l'opération crée plusieurs fichiers. Le fichier de sortie unique est remplacé chaque fois que la tâche est exécutée.

    La création d'un fichier de sortie unique peut avoir une incidence sur la performance du service d'intégration de données. N'utilisez pas l'option de fichier de sortie unique pour les jeux de données volumineux.

    Si la case Créer la sortie en tant que fichier unique est cochée : Lors de la sélection de l'entité de données, sélectionnez un nom d'entité qui n'a pas de barre oblique (/) à la fin.

    Sélectionnez le type de fichier. Si CSV est le type de fichier, vous pouvez sélectionner Prévisualiser les données brutes pour afficher les 10 premières lignes du fichier.

    Sélectionnez le type de compression. Les types de compression disponibles pour sélection dépendent du type de fichier que vous choisissez. Si vous ne connaissez pas la méthode de compression utilisée pour compresser le fichier, sélectionnez Aucun (par défaut).

    Pour les types de fichier CSV et JSON, l'encodage par défaut est UTF-8 et il ne peut pas être modifié.

    Si le type de fichier est CSV, les autres paramètres que vous pouvez configurer sont les suivants :

    • Si la première rangée du fichier est une rangée d'en-tête, sélectionnez Oui pour A l'en-tête.
    • Si les valeurs des rangées de données couvrent plusieurs lignes, sélectionnez Oui pour Lignes multiples.
    • Spécifiez le caractère d'évaluation pour les autres caractères figurant dans les valeurs de données. Par exemple : \
    • Sélectionnez le délimiteur qui sépare les champs de données. Par exemple : COLON (:), COMMA (,), PIPE (|), SEMICOLON (;) ou TAB (\t)
    • Si un délimiteur de colonne est inclus à la fin d'une rangée de données dans le fichier, sélectionnez Oui pour Délimiteur de fin.
    • Spécifiez le caractère guillemet qui traite les autres caractères en tant que caractères littéraux. Par exemple : "

    Si le type de fichier est JSON, sélectionnez Utiliser un schéma personnalisé pour coller ou charger un exemple de schéma personnalisé utilisé pour déduire la forme de l'entité.

    • Si vous sélectionnez Charger, déposez un fichier de schéma personnalisé dans la zone fournie ou cliquez sur Sélectionner un fichier pour sélectionner le fichier de schéma à charger.

    • Si vous sélectionnez Coller dans le schéma, copiez le contenu du fichier texte du schéma et collez-le dans la zone fournie.

  5. Pour Autonomous Data Warehouse ou Autonomous Transaction Processing, sélectionnez l'emplacement temporaire si aucun emplacement par défaut n'est défini pour la ressource ou modifiez l'emplacement pour utiliser un autre emplacement temporaire.
    Note

    Si la cible est une base de données Autonomous Data Warehouse ou Autonomous Transaction Processing, l'option d'emplacement temporaire est activée pour que vous puissiez sélectionner un compartiment de stockage d'objets. Data Integration utilise l'emplacement temporaire pour stocker les données avant de les charger dans la cible.

    Si la ressource de données cible est configurée avec un emplacement temporaire par défaut, le service d'intégration de données utilise automatiquement ce seau comme emplacement temporaire, sauf si vous modifiez explicitement la valeur pour spécifier un autre emplacement temporaire.

    Pour utiliser une base de données Autonomous Data Warehouse ou Autonomous Transaction Processing comme cible, vous devez d'abord activer l'autorisation PAR_MANAGE pour le seau temporaire, par exemple :

    allow any-user to manage buckets in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.permission='PAR_MANAGE', request.principal.id='<workspace-ocid>'}

    En savoir plus sur l'utilisation de demandes préauthentifiées.

    1. Pour Emplacement temporaire, cliquez sur Sélectionner ou Modifier.
    2. (Pour modification) Dans le panneau Sélectionner un emplacement temporaire, ne sélectionnez pas la case à cocher Utiliser les paramètres d'emplacement temporaire par défaut si vous voulez sélectionner un autre emplacement temporaire.
    3. Sélectionnez le menu Ressource de données et sélectionnez une ressource de données de stockage d'objets.
    4. Sélectionnez ensuite la connexion, le compartiment et le seau, puis cliquez sur Sélectionner.
  6. (Facultatif) Dans l'onglet Options avancées, selon le type de ressource de données pour cet opérateur Cible, vous pouvez entrer des valeurs ou utiliser des valeurs par défaut.

    Élément Description

    Limite de rejet

    For une base de données Autonomous Data Warehouse ou Autonomous Transaction Processing

    Entrer une valeur.

    Vous pouvez indiquer le nombre maximal de rangées erronées dont le chargement dans la cible peut échouer, avant l'échec de la tâche d'intégration. Par exemple, si la source de données contient 1 000 rangées et que vous réglez la limite de rejet à 200, la tâche échoue immédiatement après le rejet de la 200e rangée erronée.

    Si vous ne spécifiez pas de valeur, la valeur par défaut est zéro, ce qui signifie que la tâche échoue lors du rejet de la première rangée erronée.

    Si une tâche échoue, recherchez dans les journaux les noms des tables dans lesquelles les rangées ont été rejetées. Interrogez ensuite les tables et les rangées concernées dans la base de données autonome.

    Ordre de chargement

    Entrer une valeur.

    Seuls les entiers positifs sont autorisés. La valeur par défaut est 0. L'ordre de chargement indique l'ordre des noeuds cibles dans lesquels les données sont chargées. La cible avec la valeur 0 est chargée en premier, puis la cible avec la valeur 1, etc. Si plusieurs noeuds ont la même valeur, le chargement ne respecte aucun ordre particulier.

  7. Dans l'onglet Attributs, vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste d'attributs par modèle de nom ou type d'attribut. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    Vous ne pouvez appliquer qu'un seul filtre de modèle de nom à la fois, mais pouvez appliquer plusieurs filtres de type. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (type de données), COMPOSITE ou MAP (type de clé, type de valeur). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  8. Dans l'onglet Données, consultez un échantillon des données, en fonction de toutes les règles que vous avez appliquées dans l'onglet Attributs. Les transformations ne peuvent pas être appliquées à un opérateur Cible, car les données sont en lecture seule.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  9. Dans l'onglet Mappage, spécifiez comment les attributs entrants sont mappés aux attributs de l'entité de données cible. Notez que les attributs de mappage ne sont pas applicables si vous avez coché la case Créer une entité de données.

    Pour les entités cibles ayant des types de données hiérarchiques, seuls les champs de premier niveau peuvent être mappés. Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  10. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.

    Le service d'intégration de données vérifie et fournit des avertissements dans les cas suivants :

    • La troncature des données peut se produire lorsque les données sont chargées à partir des attributs sources vers les attributs cibles mappés.
    • Le type de données d'un attribut source ne correspond pas à celui de l'attribut mappé.
Affichage des données

L'onglet Données affiche les données transformées en fonction des opérateurs appliqués dans le flux de données.

Important

Si vous utilisez une entité de données hiérarchique pour un opérateur Cible, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

Vous pouvez filtrer les données de l'entité cible par modèle de nom ou type de données. Pour filtrer les données par modèle de nom, entrez un modèle regex simple ou les caractères génériques ? et * dans le champ Filtrer par modèle. Pour filtrer les données par type, sélectionnez le type de données dans le menu à côté du champ de modèle.

Les transformations ne peuvent pas être appliquées à l'opérateur Cible, car les données sont en lecture seule.

Attributs de mappage

L'onglet Mappage est disponible uniquement pour un opérateur Cible.

Important

Si vous utilisez une entité de données hiérarchique pour un opérateur Cible, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

Lorsque vous créez une entité de données cible, l'onglet Mappe n'est pas disponible. Les attributs entrants sont utilisés pour créer la table ou la structure de fichiers avec un mappage 1-à-1.

Lors de l'utilisation d'une entité de données cible existante, mappez les attributs entrants aux attributs de cette dernière. Les actions que vous pouvez effectuer sont les suivantes :

Mapper par position

Mappe les attributs entrants aux attributs de l'entité cible en fonction de leur position dans les listes.

Dans le menu Actions, sélectionnez Mapper automatiquement par position. La règle de mappage automatique par position est ajoutée.

Mapper par nom

Mappe les attributs entrants aux attributs cibles ayant le même nom.

Dans le menu Actions, sélectionnez Mapper automatiquement par nom. La règle de mappage automatique par nom est ajoutée.

Mapper par modèle

Mappe les attributs entrants aux attributs cibles en fonction de règles regex simples définies par l'utilisateur.

Dans le menu Actions, sélectionnez Mapper par modèle. Entrez un modèle source et un modèle cible. Sélectionnez ensuite le mappage Prévisualiser pour tester les modèles source et cible.

Pour définir un modèle, vous pouvez utiliser des symboles d'astérisque (*) et de point d'interrogation (?). Utilisez un astérisque comme caractère générique contenant n'importe quel nombre de caractères dans un modèle de chaîne. Utilisez un point d'interrogation pour indiquer un caractère générique unique. Par exemple, *INPUT? mappe tout attribut correspondant commençant par un nombre n et contenant la chaîne INPUT suivie d'un seul caractère, tel que NEWINPUTS.

Par défaut, la correspondance de modèle n'est pas sensible à la casse. Par exemple, le modèle source *Name correspond au nom cible CUSTOMER_NAME et Customer_Name.

Pour indiquer différents groupes de saisie, utilisez $n. Supposons, par exemple, que vous voulez mapper respectivement LAST_NAME, FIRST_NAME et USERNAME d'un opérateur source ou amont à TGT_LAST_NAME, TGT_FIRST_NAME et TGT_USERNAME dans l'entité de données cible. Vous entrez *NAME dans le champ Plan source et TGT_$1 dans le champ Plan cible. L' astérisque (*) dans *NAME signifie que la chaîne de caractères précédant NAME doit être identique à la chaîne de caractères trouvée dans $1 du modèle cible. $1 fait référence au premier groupe de saisie dans le modèle source, qui dans ce cas est l' astérisque (*).

Dans les cas où vous avez besoin d'une mise en correspondance de modèle sensible à la casse, ajoutez le préfixe (?c) au modèle source. Par exemple, supposons que vous souhaitiez mapper l'attribut source CustomerName, qui utilise la majuscule camel dans son nom, à l'attribut cible portant le nom Customer_Name. Vous devez entrer (?c)([A-Z][a-z]+)([A-Z][a-z]+) comme modèle source et $1_$2 comme modèle cible. Lorsque le préfixe (?c) est ajouté au début d'un modèle source, la mise en correspondance de modèle sensible à la casse est activée pour le mappage. Le service d'intégration de données détecte que le "N" dans CustomerName est le début d'un nouveau modèle et traite donc ([A-Z][a-z]+)([A-Z][a-z]+) comme deux mots différents (groupes de capture) lors de la mise en correspondance.

Mappage manuel direct

Faites glisser un attribut entrant de la liste source vers un attribut de la liste cible afin de créer un mappage.

Vous pouvez également sélectionner Mappage manuel dans le menu Actions. Utilisez ensuite la boîte de dialogue Mapper un attribut pour créer un mappage en sélectionnant un attribut source et un attribut cible.

Supprimer un mappage

Supprime le mappage sélectionné.

Sélectionner des règles d'affichage. Dans le panneau Règles, sélectionnez une ou plusieurs règles et sélectionnez Supprimer. Vous pouvez également sélectionner Supprimer dans le menu Actions (Menu Actions) de la règle pour effacer cette règle.

Effacer tous les mappages

Supprime tous les mappages.

From the Actions menu, select Reset mappings. Toutes les règles de mappage manuel et automatique sont supprimées.

Opérateurs de mise en forme

Important

Pour les types de données complexes, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge. Il se peut que vous ne puissiez pas effectuer certaines configurations dans les onglets Attributs et Données du panneau Propriétés.

Opérateur Filtrer

Utilisez l'opérateur Filtrer pour sélectionner un sous-ensemble des données entre le port entrant et le port sortant en fonction d'une condition de filtre.

Ajout et configuration d'un opérateur Filtrer
  1. À partir du panneau Opérateurs, faites glisser un opérateur Filtrer sur le canevas.
  2. Avec l'opérateur Filtre en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. À côté de Condition de filtre, sélectionnez Créer.
  4. Dans le panneau Créer une condition de filtre, section Générateur de conditions, vous pouvez faire glisser ou cliquer deux fois sur des attributs, des paramètres et des fonctions à ajouter à l'éditeur pour créer une condition. Vous pouvez également entrer manuellement une expression de condition dans l'éditeur et la valider.
    Note

    Dans l'éditeur, un élément ajouté, comme une fonction, peut comporter des paramètres fictifs. Pour remplacer un paramètre fictif par un autre élément, mettez le paramètre fictif en surbrillance, puis cliquez deux fois sur un autre élément de la liste.
  5. Sélectionnez Créer.
  6. (Facultatif) Sélectionnez Affecter un paramètre pour utiliser des paramètres afin que la condition de filtre ne soit pas liée au code compilé lors de la publication du flux de données. Voir Affectation d'un paramètre.
  7. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  8. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  9. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Création d'une condition de filtre

Utilisez le générateur de conditions pour sélectionner visuellement les éléments formant la condition de filtre. Vous pouvez également entrer manuellement une condition de filtre dans l'éditeur.

La création d'une condition de filtre permet de sélectionner un sous-ensemble des données à partir d'un opérateur en amont en fonction de cette condition.

Les éléments que vous pouvez utiliser dans une condition de filtre comprennent notamment les attributs entrants, les paramètres et les fonctions. Vous pouvez double-cliquer ou faire glisser un élément de la liste à ajouter à l'éditeur pour créer une condition. Vous pouvez valider la condition avant de la créer.

La zone Entrant affiche les attributs de l'opérateur amont qui entrent dans cet opérateur Filtre.

Par exemple, pour filtrer les données par nom de ville, vous pouvez créer l'expression de condition suivante :

FILTER_1.ADDRESSES.CITY='Redwood Shores'

Les paramètres sont les paramètres d'expression qui ont été ajoutés au flux de données à l'aide du générateur de conditions (opérateurs Filtrer, joindre, consulter et fractionner) ou du générateur d'expressions (opérateurs Expression et agréger). Un paramètre d'expression a un nom, un type et une valeur par défaut. Voir Ajout d'un paramètre d'expression.

Supposons que vous vouliez utiliser un paramètre pour le nom de la ville dans la condition de filtre. Vous pouvez créer un paramètre VARCHAR portant le nom P_VARCHAR_CITY et définir la valeur par défaut à Redwood Shores. Vous pouvez ensuite créer la condition de filtre ainsi :

FILTER_1.ADDRESSES.CITY=$P_VARCHAR_CITY

Les fonctions sont les fonctions disponibles dans le service d'intégration de données que vous pouvez utiliser dans une condition. Les fonctions sont des opérations effectuées sur des arguments transmis à la fonction. Les fonctions calculent, manipulent ou extraient des valeurs de données à partir d'arguments.

Par exemple, pour filtrer les données par nom de ville ou par population, vous pouvez utiliser la fonction OR pour créer l'expression de condition de filtre de l'une des façons suivantes :

FILTER_1.COUNTRIES.CITY=$P_VARCHAR_CITY OR FILTER_1.COUNTRIES.POPULATION>100000000
FILTER_1.COUNTRIES.CITY=$P_VARCHAR_CITY OR FILTER_1.COUNTRIES.POPULATION>$P_NUMERIC

Voici une liste de fonctions que vous pouvez ajouter lors de la création de conditions :

Fonctions de hachage
FonctionDescriptionExemple
MD5(all data types)Calcule un total de contrôle MD5 pour le type de données et retourne une valeur de chaîne. MD5(column_name)
SHA1(all data types)Calcule une valeur de hachage SHA-1 pour le type de données et retourne une valeur de chaîne. SHA1(column_name)
SHA2(all data types, bitLength)Calcule une valeur de hachage SHA-2 pour le type de données et retourne une valeur de chaîne. bitLength est un nombre entier. SHA2 (column_name, bitLength peut être réglé à 0 (équivaut à 256), 256, 384 ou 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcule une valeur de hachage pour expr et retourne une valeur NUMBER.

expr peut être une expression, une colonne, un littéral.

max_bucket est la valeur maximale de seau retournée, entre 0 et 4294967295 (par défaut).

seed_value est une valeur comprise entre 0 (valeur par défaut) et 4294967295.

Oracle applique la fonction de hachage à la combinaison de expr et seed_value pour produire de nombreux résultats différents pour le même jeu de données.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Fonctions arithmétiques
FonctionDescriptionExemple
ABS(numeric)Retourne la valeur absolue de la valeur numeric.ABS(-1)
CEIL(numeric)Retourne le plus petit entier ne dépassant pas la valeur numericCEIL(-1,2)
FLOOR(numeric)Retourne le plus grand nombre entier ne dépassant pas la valeur numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Retourne le reste après la division de numeric1 par numeric2.MOD(8,2)
POWER(numeric1, numeric2)Élève numeric1 à la puissance numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Retourne la valeur numeric1 arrondie à numeric2 décimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Retourne la valeur numeric1 tronquée à numeric2 décimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convertit une expression expr en nombre, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format pris en charge :

  • 0 : Un chiffre
  • # : Un chiffre, zéro s'affiche comme absent
  • . : Paramètre fictif pour le séparateur décimal
  • , : Paramètre fictif pour le séparateur de regroupement
  • E : Sépare la mantisse et l'exposant pour les formats exponentiels
  • - : Préfixe négatif par défaut
  • ¤ : Signe de devise; remplacé par le symbole de devise; s'il est doublé, il est remplacé par le symbole monétaire international; s'il est présent dans un modèle, le séparateur décimal monétaire est utilisé au lieu du séparateur décimal

TO_NUMBER('5467.12') retourne 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') retourne -45677.7

Fonctions de date/heure
Fonction Description Exemple
CURRENT_DATE Retourne la date courante. CURRENT_DATEretourne la date du jour, par exemple 2023-05-26
CURRENT_TIMESTAMP Retourne la date et l'heure courantes pour le fuseau horaire de la session. CURRENT_TIMESTAMP retourne la date du jour et l'heure courante, par exemple 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Retourne la date correspondant au number de jours spécifié après la date spécifiée. DATE_ADD('2017-07-30', 1) retourne 2017-07-31
DATE_FORMAT(expr, format[, locale])

Formate une expression expr de date, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format de date pris en charge :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') retourne '2020-10-11'. Le premier argument est un objet Date représentant le 11 octobre 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') retourne '2018/junio/17'

DAYOFMONTH(date) Retourne le jour du mois dans la date indiquée. DAYOFMONTH('2020-12-25') retourne 25
DAYOFWEEK(date) Retourne le jour de la semaine dans la date indiquée. DAYOFWEEK('2020-12-25') retourne 6 pour vendredi. Aux États-Unis, le dimanche est considéré comme 1, le lundi est 2, et ainsi de suite.
DAYOFYEAR(date) Retourne le jour de l'année dans la date indiquée. DAYOFYEAR('2020-12-25') retourne 360
WEEKOFYEAR(date) Retourne la semaine de la date dans l'année.

WEEKOFYEAR('2022-07-28') retourne 30

WEEKOFYEAR('2022-07-28 13:24:30') retourne 30

HOUR(datetime) Retourne la valeur d'heure de date/heure. HOUR('2020-12-25 15:10:30') retourne 15
LAST_DAY(date) Retourne le dernier jour du mois de la date indiquée. LAST_DAY ('2020-12-25') retourne 31
MINUTE(datetime) Retourne la valeur des minutes de date/heure. HOUR('2020-12-25 15:10:30') retourne 10
MONTH(date) Retourne la valeur du mois de la date indiquée. MONTH ('2020-06-25') retourne 6
QUARTER(date) Retourne le trimestre de l'année de la date indiquée. QUARTER('2020-12-25') retourne 4
SECOND(datetime) Retourne la valeur des secondes de date/heure. SECOND('2020-12-25 15:10:30') retourne 30
TO_DATE(string, format_string[, localeStr]) Analyse l'expression de chaîne en considérant l'expression format_string comme une date. Les paramètres régionaux sont facultatifs. La valeur par défaut est en-US. Marqueurs de langue pris en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les chaînes de format sensibles à la casse prises en charge sont les suivantes :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') retourne une valeur de date de 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') retourne une valeur de date de 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convertit une expr de type VARCHAR en une valeur de type TIMESTAMP, en fonction de format_string et de localeStr (facultatif).

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') retourne un objet TIMESTAMP représentant 11am 10:10 Oct 11th, 2020
WEEK(date)

Retourne la valeur de semaine de la date indiquée.

WEEK('2020-06-25') retourne 4
YEAR(date) Retourne la valeur d'année de la date indiquée. YEAR('2020-06-25') retourne 2020
ADD_MONTHS(date_expr, number_months) Retourne la date après l'ajout du nombre de mois spécifié à la date, la chaîne ou l'horodatage spécifié dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) retourne 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) retourne 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Retourne le nombre de mois entre start_date_expr et end_date_expr. start_date_expr et end_date_expr peuvent être une date, un horodatage ou une chaîne dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Un nombre entier est retourné si les deux dates correspondent au même jour du mois, ou au dernier jour de leur mois respectif. Sinon, la différence est calculée sur la base de 31 jours par mois.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') retourne 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') retourne 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') retourne 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interprète une date, un horodatage ou une chaîne en tant que temps UTC et le convertit en horodatage dans le fuseau horaire spécifié.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convertit une date, un horodatage ou une chaîne dans le fuseau horaire spécifié en horodatage UTC.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convertit l'heure ou l'heure de référence Unix spécifiée en chaîne qui représente l'horodatage de ce moment dans le fuseau horaire du système courant et dans le format spécifié.

Note : L'heure Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:000000 UTC.

Si fmt est omis, le format par défaut est yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) retourne '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) retourne '2021-11-18 10:07:34'

Le fuseau horaire par défaut est PST dans les exemples

UNIX_TIMESTAMP([time_expr[, fmt]])

Convertit l'heure courante ou spécifiée en horodatage Unix en secondes.

time_expr est une date, un horodatage ou une chaîne dans un format tel que yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Si time_expr n'est pas indiqué, l'heure courante est convertie.

Si time_expr est une chaîne et que fmt est omis, la valeur par défaut est yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') retourne 28800

Le fuseau horaire par défaut est PST dans cet exemple

INTERVAL 'year' YEAR[(year_precision)]

Renvoie une période en années.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '1' YEAR retourne un intervalle de 1 an

INTERVAL '200' YEAR(3) retourne un intervalle de 200 ans

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Retourne une période en années et en mois. Permet de stocker une période à l'aide des champs year et month.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '100-5' YEAR(3) TO MONTH retourne un intervalle de 100 ans et 5 mois. Vous devez spécifier 3 en tant que valeur de précision de l'année de début.
INTERVAL 'month' MONTH[(month_precision)]

Retourne une période en mois.

month_precision est le nombre de chiffres dans le champ mois; il est compris entre 0 et 9. Si month_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '200' MONTH(3) retourne un intervalle de 200 mois. Vous devez spécifier 3 en tant que valeur de précision du mois.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de jours, heures, minutes et secondes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) retourne un intervalle de 11 jours, 10 heures, 09 minutes, 08 secondes et 555 millièmes de seconde
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme de jours, heures et minutes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '11 10:09' DAY TO MINUTE retourne un intervalle de 11 jours, 10 heures et 09 minutes
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Retourne une période sous forme de jours et d'heures.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '100 10' DAY(3) TO HOUR retourne un intervalle de 100 jours et 10 heures
INTERVAL 'day' DAY[(day_precision)]

Retourne une période sous forme de jours.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

INTERVAL '999' DAY(3) retourne un intervalle de 999 jours
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme d'heures, minutes et secondes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) retourne un intervalle de 9 heures, 08 minutes et 7,6666666 secondes
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme d'heures et de minutes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '09:30' HOUR TO MINUTE retourne un intervalle de 9 heures et 30 minutes
INTERVAL 'hour' HOUR[(hour_precision)]

Retourne une période sous forme d'heures.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '40' HOUR retourne un intervalle de 40 heures
INTERVAL 'minute' MINUTE[(minute_precision)]

Retourne une période sous forme de minutes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '15' MINUTE retourne un intervalle de 15 minutes
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de minutes et secondes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '15:30' MINUTE TO SECOND retourne un intervalle de 15 minutes et 30 secondes
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de secondes.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire du champ second; il est compris entre 0 et 9. La valeur par défaut est 3.

INTERVAL '15.678' SECOND retourne un intervalle de 15,678 secondes
Fonctions d'analyse
Fonction Description Exemple
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Retourne la valeur évaluée à la rangée qui est la première rangée du cadre de la fenêtre. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la première valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné avant la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) retourne la valeur de BANK_ID de la deuxième rangée avant la rangée courante, avec un partitionnement par BANK_ID et en ordre décroissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Retourne la valeur évaluée à la rangée qui est la dernière rangée du cadre de la fenêtre. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la dernière valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné après la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne la valeur de BANK_ID de la deuxième rangée après la rangée courante, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
RANK() OVER([ partition_clause ] order_by_clause) Retourne le rang de la rangée courante avec les écarts, en comptant à partir de 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le rang de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Retourne le numéro unique de la rangée courante dans sa partition, en comptant à partir de 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le numéro unique de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
Fonctions de chaîne
FonctionsDescriptionExemple
CAST(value AS type)Retourne la valeur indiquée dans le type indiqué.CAST("10" AS INT) retourne 10
CONCAT(string, string)Retourne les valeurs combinées des chaînes ou des colonnes.CONCAT('Oracle','SQL') retourne OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Retourne les valeurs combinées des chaînes ou des colonnes à l'aide du séparateur spécifié entre les chaînes ou les colonnes.

Un séparateur est requis et doit être une chaîne.

Au moins une expression doit être fournie après le séparateur. Par exemple : CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') retourne Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) retourne 123 MyCity 987654

Si un enfant de la fonction est un tableau, le tableau est aplati :

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) retourne 1,2,3,4,5,6,7,8,9

INITCAP(string)Retourne la chaîne avec une majuscule à la première lettre de chaque mot, tandis que toutes les autres lettres sont en minuscules, et chaque mot est délimité par une espace.INITCAP('oRACLE sql') retourne Oracle Sql
INSTR(string, substring[start_position])Retourne l'index (à partir de 1) de la première occurrence de la sous-chaîne (substring) dans la chaîne string.INSTR('OracleSQL', 'SQL') retourne 7
LOWER(string)Retourne la chaîne avec toutes les lettres en minuscules.LOWER('ORACLE') retourne oracle
LENGTH(string)Retourne la longueur de la chaîne en nombre de caractères ou le nombre d'octets dans le cas de données binaires. La longueur de la chaîne comprend les espaces de fin.LENGTH('Oracle') retourne 6
LTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la gauche.LTRIM(' Oracle')
NVL(expr1, epxr2)Retourne l'argument qui n'est pas vide.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Recherche et extrait de la chaîne d'entrée la chaîne qui correspond à un modèle d'expression rationnelle. Si l'index de groupe de saisie facultatif est fourni, la fonction extrait le groupe particulier.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') retourne https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retourne 22
REPLACE(string, search, replacement)Remplace toutes les occurrences de la chaîne recherchée search par la chaîne de remplacement replacement.

Si search est introuvable dans la chaîne, celle-ci est retournée inchangée.

Si la chaîne de remplacement replacement n'est pas indiquée ou est une chaîne vide, rien ne remplace la chaîne recherchée search qui est alors supprimée de la chaîne string.

REPLACE('ABCabc', 'abc', 'DEF') retourne ABCDEF
RTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la droite.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Retourne la sous-chaîne à partir de la position indiquée. SUBSTRING('Oracle SQL' FROM 2 FOR 3) retourne rac
Pour les chiffres, TO_CHAR(expr) et pour les dates TO_CHAR(expr, format[, locale])Convertit les nombres et les dates en chaînes. Pour les nombres, aucun format n'est requis. Pour les dates, utilisez le même format que DATE_FORMAT décrit dans Fonctions de date et d'heure. Les paramètres régionaux par défaut sont en-US. Voir les étiquettes de langue prises en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format de date pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

Exemple de nombre : TO_CHAR(123) retourne 123

Exemple de date : TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') retourne la chaîne 2020.10.30. Le premier argument est un objet Date représentant le 30 octobre 2020.

UPPER(string)Retourne une chaîne avec toutes les lettres en majuscules.UPPER('oracle') retourne ORACLE
LPAD(str, len[, pad])Retourne une chaîne avec remplissage à gauche avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.LPAD('ABC', 5, '*') retourne '**ABC'
RPAD(str, len[, pad])Retourne une chaîne avec remplissage à droite avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Fonctions d'opérateur (comparaison)
FonctionDescriptionExemple
CASE WHEN condition1 THEN result1 ELSE result2 ENDRetourne la valeur pour laquelle une condition est satisfaite.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END retourne ABC si 1> 0, sinon retourne XYZ
ANDOpérateur logique AND. Retourne Vrai si les deux opérandes sont vrais, sinon retourne Faux.(x = 10 AND y = 20) retourne "Vrai" si x est égal à 10 et y égal à 20. Si l'un ou l'autre n'est pas vrai, alors "Faux" est retourné
OROpérateur logique OR. Retourne Vrai si l'un ou l'autre opérande est vrai ou si les deux sont vrais, sinon retourne Faux.(x = 10 OR y = 20) retourne "Faux" si x n'est pas égal à 10 et y n'est pas égal à 20. Si l'un ou l'autre est vrai, alors "Vrai" est retourné
NOTOpérateur logique NOT.
LIKEMet en correspondance des modèles de chaîne, si string1 correspond au modèle dans string2.
=Teste l'égalité. Retourne Vrai si expr1 est égal à expr2, sinon retourne Faux.x = 10 retourne "Vrai" lorsque la valeur de x est 10, sinon "Faux" est retourné
!=Teste l'inégalité. Retourne Vrai si expr1 n'est pas égal à expr2, sinon retourne Faux.x != 10 retourne "Faux" si la valeur de x est 10, sinon "Vrai" est retourné
>Teste si une expression est supérieure. Retourne Vrai si expr1 est supérieur à expr2.x > 10 retourne "Vrai" si la valeur de x est supérieure à 10, sinon "Faux" est retourné
>=Teste si une expression est supérieure ou égale. Retourne Vrai si expr1 est supérieur ou égal à expr2.x > =10 retourne "Vrai" si la valeur de x est supérieure ou égale à 10, sinon "Faux" est retourné
<Teste si une expression est inférieure. Retourne Vrai si expr1 est inférieur à expr2.x < 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
<=Teste si une expression est inférieure ou égale. Retourne Vrai si expr1 est inférieur ou égal à expr2.x <= 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
||Concatène deux chaînes.'XYZ' || 'hello' retourne 'XYZhello'
BETWEENÉvalue un intervalle.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INVérifie si une expression correspond à une liste de valeurs.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Fonctions de création d'ID unique
FonctionDescriptionExemple
NUMERIC_ID()Génère pour chaque rangée un identificateur universel unique qui est un numéro 64 bits.NUMERIC_ID() retourne, par exemple, 3458761969522180096 et 3458762008176885761
ROWID()Génère des nombres monotones croissants de 64 bits.ROWID() retourne par exemple 0, 1, 2 et ainsi de suite
UUID()Génère pour chaque rangée un identifiant universel unique qui est une chaîne de 128 bits.UUID() retourne par exemple 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Génère des entiers uniques monotones croissants de 64 bits, qui ne sont pas des nombres consécutifs. MONOTONICALLY_INCREASING_ID() retourne, par exemple, 8589934592 et 25769803776
Fonctions conditionnelles
FonctionDescriptionExemple
COALESCE(value, value [, value]*)Retourne le premier argument non nul, s'il existe, sinon retourne une valeur nulle.COALESCE(NULL, 1, NULL) retourne 1
NULLIF(value, value)Retourne une valeur nulle si les deux valeurs sont égales, sinon retourne la première valeur.NULLIF('ABC','XYZ') retourne ABC
Fonctions hiérarchiques
FonctionDescriptionExemple
SCHEMA_OF_JSON(string)Analyse une chaîne JSON et en tire le schéma au format LDD.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') retourne 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') retourne 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analyse une colonne contenant une chaîne JSON dans l'un des types suivants, avec le schéma spécifié.

  • Map, avec String comme type de clé
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') retourne une colonne de type Struct avec le schéma spécifié : {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') retourne une colonne de type Struct avec le schéma spécifié : {1, 0.8}

TO_JSON(column)Convertit une colonne contenant le type Struct ou Array of Structs, ou Map ou Array of Maps, en chaîne JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) retourne une chaîne JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crée une colonne de type Map. Les colonnes d'entrée doivent être regroupées en paires clé-valeur. Les colonnes de clé d'entrée ne peuvent pas être nulles et elles doivent toutes avoir le même type de données. Les colonnes de valeur d'entrée doivent toutes avoir le même type de données.

TO_MAP('Ename',Expression_1.attribute1) retourne une colonne de Map : {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) retourne une colonne de type Map : {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crée une colonne de type Struct. Les colonnes d'entrée doivent être regroupées en paires clé-valeur.

TO_STRUCT('Ename',Expression_1.attribute1) retourne {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) retourne {100, "John"}

TO_ARRAY(column[,column]*)Crée une colonne de type Array. Les colonnes d'entrée doivent toutes avoir le même type de données.

TO_Array(Expression_1.attribute1) retourne [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) retourne ["John","Friend"]

Fonctions d'ordre supérieur

Les opérateurs de flux de données qui prennent en charge la création d'expressions et de types de données hiérarchiques peuvent utiliser des fonctions d'ordre supérieur.

Les opérateurs pris en charge sont les suivants :

  • Regrouper

  • Expression

  • Filtre

  • Jointure

  • Consulter

  • Split

  • Faire pivoter

FonctionDescriptionExemple
TRANSFORM(column, lambda_function)Prend un tableau et une fonction anonyme, et configure un nouveau tableau en appliquant la fonction à chaque élément, et en affectant le résultat au tableau de sortie.Pour un tableau d'entrée de nombres entiers [1, 2, 3], TRANSFORM(array, x -> x + 1) retourne un nouveau tableau de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les clés ont le type du résultat de la fonction lambda, et les valeurs ont le type des valeurs de mappage de colonne.Pour un mappage d'entrée avec des clés entières et des valeurs de chaîne de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) retourne un nouveau mappage de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les valeurs ont le type du résultat des fonctions lambda, et les clés ont le type des clés de carte de colonne. Pour un mappage d'entrée avec des clés de chaîne et des valeurs de chaîne de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) retourne un nouveau mappage de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Seul l'opérateur Expression prend en charge ARRAY_SORT.

Prend un tableau et trie en fonction de la fonction donnée qui prend 2 arguments.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Si la fonction est omise, le tableau est trié dans l'ordre croissant.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Le tableau retourné est le suivant :

[1,5,6]

Opérateur Jointure

Utilisez l'opérateur Jointure pour relier les données de plusieurs sources entrantes.

Ajout et configuration d'un opérateur Jointure
  1. À partir du panneau Opérateurs, faites glisser un opérateur Jointure sur le canevas.
  2. Avec l'opérateur Jointure en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Sélectionnez le type de jointure. Les types de jointure pris en charge sont :
    Types de jointure
    Icône Type de jointure Description
    diagramme de Venn de jointure interne Interne Sélectionne les données des deux sources entrantes où la condition de jointure est remplie.
    diagramme de Venn de jointure externe gauche Externe gauche Sélectionne toutes les données de la source entrante 1 et de la source entrante 2 lorsque la condition de jointure est remplie.
    diagramme de Venn de jointure externe droite Externe droite Sélectionne les données de la source entrante 1 où la condition de jointure est remplie et toutes les données de la source entrante 2.
    diagramme de Venn de jointure externe complète Externe complète Sélectionne toutes les données des deux sources entrantes, en faisant correspondre les rangées lorsque des correspondances sont possibles et en insérant des valeurs nulles s'il n'y a aucune correspondance.
  4. À côté de Condition de jointure, sélectionnez Créer.
  5. Dans le panneau Créer une condition de jointure, section Générateur de conditions, vous pouvez faire glisser ou cliquer deux fois sur des attributs, des paramètres et des fonctions à ajouter à l'éditeur pour créer une condition. Vous pouvez également entrer manuellement une expression de condition dans l'éditeur et la valider.
    Note

    Dans l'éditeur, un élément ajouté, comme une fonction, peut comporter des paramètres fictifs. Pour remplacer un paramètre fictif par un autre élément, mettez le paramètre fictif en surbrillance, puis cliquez deux fois sur un autre élément de la liste.
  6. Sélectionnez Créer.
  7. (Facultatif) Sélectionnez Affecter un paramètre pour utiliser des paramètres afin que la condition de jointure ne soit pas liée au code compilé lorsque vous publiez le flux de données. Voir Affectation d'un paramètre.
  8. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  9. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  10. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Création d'une condition de jointure

Utilisez le générateur de conditions pour sélectionner visuellement les éléments formant la condition de jointure. Vous pouvez également entrer manuellement une condition de jointure dans l'éditeur.

La création d'une condition de jointure permet de sélectionner des données à partir de deux sources entrantes en fonction de la condition.

Les éléments que vous pouvez utiliser dans une condition de jointure comprennent notamment les attributs entrants, les paramètres et les fonctions. Vous pouvez double-cliquer ou faire glisser un élément de la liste à ajouter à l'éditeur pour créer une condition. Vous pouvez valider la condition avant de la créer.

Entrante affiche les attributs des ports amont connectés à l'opérateur Jointure dans deux dossiers JOIN distincts. Consultez les attributs de chaque port en développant ou en réduisant le dossier JOIN approprié. Par exemple, JOIN_1_1 et JOIN_1_2.

JOIN_1_1.BANK_CUSTOMER.ADDRESS_ID = JOIN_1_2.BANK_ADDRESS.ADDRESS_ID

Les paramètres sont les paramètres d'expression qui ont été ajoutés au flux de données à l'aide du générateur de conditions (opérateurs Filtrer, joindre, consulter et fractionner) ou du générateur d'expressions (opérateurs Expression et agréger). Un paramètre d'expression a un nom, un type et une valeur par défaut. Voir Ajout d'un paramètre d'expression.

Supposons que vous vouliez joindre deux sources et conserver uniquement les rangées où BANK_NAME='ABC Bank'. Vous pouvez créer un paramètre VARCHAR portant le nom P_VARCHAR et définir la valeur par défaut à ABC BANK. Ensuite, vous pouvez créer l'expression de jointure comme suit :

JOIN_1_1.ADDRESSES.BANK_ID = JOIN_1_2.BANK.BANK_ID AND JOIN_1_2.BANK.BANK_NAME = $P_VARCHAR

Les fonctions sont les fonctions disponibles dans le service d'intégration de données que vous pouvez utiliser dans une condition. Les fonctions sont des opérations effectuées sur des arguments transmis à la fonction. Les fonctions calculent, manipulent ou extraient des valeurs de données à partir d'arguments.

Voici une liste de fonctions que vous pouvez ajouter lors de la création de conditions :

Fonctions de hachage
FonctionDescriptionExemple
MD5(all data types)Calcule un total de contrôle MD5 pour le type de données et retourne une valeur de chaîne. MD5(column_name)
SHA1(all data types)Calcule une valeur de hachage SHA-1 pour le type de données et retourne une valeur de chaîne. SHA1(column_name)
SHA2(all data types, bitLength)Calcule une valeur de hachage SHA-2 pour le type de données et retourne une valeur de chaîne. bitLength est un nombre entier. SHA2 (column_name, bitLength peut être réglé à 0 (équivaut à 256), 256, 384 ou 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcule une valeur de hachage pour expr et retourne une valeur NUMBER.

expr peut être une expression, une colonne, un littéral.

max_bucket est la valeur maximale de seau retournée, entre 0 et 4294967295 (par défaut).

seed_value est une valeur comprise entre 0 (valeur par défaut) et 4294967295.

Oracle applique la fonction de hachage à la combinaison de expr et seed_value pour produire de nombreux résultats différents pour le même jeu de données.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Fonctions arithmétiques
FonctionDescriptionExemple
ABS(numeric)Retourne la valeur absolue de la valeur numeric.ABS(-1)
CEIL(numeric)Retourne le plus petit entier ne dépassant pas la valeur numericCEIL(-1,2)
FLOOR(numeric)Retourne le plus grand nombre entier ne dépassant pas la valeur numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Retourne le reste après la division de numeric1 par numeric2.MOD(8,2)
POWER(numeric1, numeric2)Élève numeric1 à la puissance numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Retourne la valeur numeric1 arrondie à numeric2 décimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Retourne la valeur numeric1 tronquée à numeric2 décimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convertit une expression expr en nombre, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format pris en charge :

  • 0 : Un chiffre
  • # : Un chiffre, zéro s'affiche comme absent
  • . : Paramètre fictif pour le séparateur décimal
  • , : Paramètre fictif pour le séparateur de regroupement
  • E : Sépare la mantisse et l'exposant pour les formats exponentiels
  • - : Préfixe négatif par défaut
  • ¤ : Signe de devise; remplacé par le symbole de devise; s'il est doublé, il est remplacé par le symbole monétaire international; s'il est présent dans un modèle, le séparateur décimal monétaire est utilisé au lieu du séparateur décimal

TO_NUMBER('5467.12') retourne 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') retourne -45677.7

Fonctions de date/heure
Fonction Description Exemple
CURRENT_DATE Retourne la date courante. CURRENT_DATEretourne la date du jour, par exemple 2023-05-26
CURRENT_TIMESTAMP Retourne la date et l'heure courantes pour le fuseau horaire de la session. CURRENT_TIMESTAMP retourne la date du jour et l'heure courante, par exemple 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Retourne la date correspondant au number de jours spécifié après la date spécifiée. DATE_ADD('2017-07-30', 1) retourne 2017-07-31
DATE_FORMAT(expr, format[, locale])

Formate une expression expr de date, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format de date pris en charge :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') retourne '2020-10-11'. Le premier argument est un objet Date représentant le 11 octobre 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') retourne '2018/junio/17'

DAYOFMONTH(date) Retourne le jour du mois dans la date indiquée. DAYOFMONTH('2020-12-25') retourne 25
DAYOFWEEK(date) Retourne le jour de la semaine dans la date indiquée. DAYOFWEEK('2020-12-25') retourne 6 pour vendredi. Aux États-Unis, le dimanche est considéré comme 1, le lundi est 2, et ainsi de suite.
DAYOFYEAR(date) Retourne le jour de l'année dans la date indiquée. DAYOFYEAR('2020-12-25') retourne 360
WEEKOFYEAR(date) Retourne la semaine de la date dans l'année.

WEEKOFYEAR('2022-07-28') retourne 30

WEEKOFYEAR('2022-07-28 13:24:30') retourne 30

HOUR(datetime) Retourne la valeur d'heure de date/heure. HOUR('2020-12-25 15:10:30') retourne 15
LAST_DAY(date) Retourne le dernier jour du mois de la date indiquée. LAST_DAY ('2020-12-25') retourne 31
MINUTE(datetime) Retourne la valeur des minutes de date/heure. HOUR('2020-12-25 15:10:30') retourne 10
MONTH(date) Retourne la valeur du mois de la date indiquée. MONTH ('2020-06-25') retourne 6
QUARTER(date) Retourne le trimestre de l'année de la date indiquée. QUARTER('2020-12-25') retourne 4
SECOND(datetime) Retourne la valeur des secondes de date/heure. SECOND('2020-12-25 15:10:30') retourne 30
TO_DATE(string, format_string[, localeStr]) Analyse l'expression de chaîne en considérant l'expression format_string comme une date. Les paramètres régionaux sont facultatifs. La valeur par défaut est en-US. Marqueurs de langue pris en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les chaînes de format sensibles à la casse prises en charge sont les suivantes :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') retourne une valeur de date de 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') retourne une valeur de date de 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convertit une expr de type VARCHAR en une valeur de type TIMESTAMP, en fonction de format_string et de localeStr (facultatif).

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') retourne un objet TIMESTAMP représentant 11am 10:10 Oct 11th, 2020
WEEK(date)

Retourne la valeur de semaine de la date indiquée.

WEEK('2020-06-25') retourne 4
YEAR(date) Retourne la valeur d'année de la date indiquée. YEAR('2020-06-25') retourne 2020
ADD_MONTHS(date_expr, number_months) Retourne la date après l'ajout du nombre de mois spécifié à la date, la chaîne ou l'horodatage spécifié dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) retourne 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) retourne 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Retourne le nombre de mois entre start_date_expr et end_date_expr. start_date_expr et end_date_expr peuvent être une date, un horodatage ou une chaîne dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Un nombre entier est retourné si les deux dates correspondent au même jour du mois, ou au dernier jour de leur mois respectif. Sinon, la différence est calculée sur la base de 31 jours par mois.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') retourne 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') retourne 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') retourne 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interprète une date, un horodatage ou une chaîne en tant que temps UTC et le convertit en horodatage dans le fuseau horaire spécifié.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convertit une date, un horodatage ou une chaîne dans le fuseau horaire spécifié en horodatage UTC.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convertit l'heure ou l'heure de référence Unix spécifiée en chaîne qui représente l'horodatage de ce moment dans le fuseau horaire du système courant et dans le format spécifié.

Note : L'heure Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:000000 UTC.

Si fmt est omis, le format par défaut est yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) retourne '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) retourne '2021-11-18 10:07:34'

Le fuseau horaire par défaut est PST dans les exemples

UNIX_TIMESTAMP([time_expr[, fmt]])

Convertit l'heure courante ou spécifiée en horodatage Unix en secondes.

time_expr est une date, un horodatage ou une chaîne dans un format tel que yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Si time_expr n'est pas indiqué, l'heure courante est convertie.

Si time_expr est une chaîne et que fmt est omis, la valeur par défaut est yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') retourne 28800

Le fuseau horaire par défaut est PST dans cet exemple

INTERVAL 'year' YEAR[(year_precision)]

Renvoie une période en années.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '1' YEAR retourne un intervalle de 1 an

INTERVAL '200' YEAR(3) retourne un intervalle de 200 ans

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Retourne une période en années et en mois. Permet de stocker une période à l'aide des champs year et month.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '100-5' YEAR(3) TO MONTH retourne un intervalle de 100 ans et 5 mois. Vous devez spécifier 3 en tant que valeur de précision de l'année de début.
INTERVAL 'month' MONTH[(month_precision)]

Retourne une période en mois.

month_precision est le nombre de chiffres dans le champ mois; il est compris entre 0 et 9. Si month_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '200' MONTH(3) retourne un intervalle de 200 mois. Vous devez spécifier 3 en tant que valeur de précision du mois.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de jours, heures, minutes et secondes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) retourne un intervalle de 11 jours, 10 heures, 09 minutes, 08 secondes et 555 millièmes de seconde
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme de jours, heures et minutes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '11 10:09' DAY TO MINUTE retourne un intervalle de 11 jours, 10 heures et 09 minutes
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Retourne une période sous forme de jours et d'heures.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '100 10' DAY(3) TO HOUR retourne un intervalle de 100 jours et 10 heures
INTERVAL 'day' DAY[(day_precision)]

Retourne une période sous forme de jours.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

INTERVAL '999' DAY(3) retourne un intervalle de 999 jours
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme d'heures, minutes et secondes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) retourne un intervalle de 9 heures, 08 minutes et 7,6666666 secondes
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme d'heures et de minutes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '09:30' HOUR TO MINUTE retourne un intervalle de 9 heures et 30 minutes
INTERVAL 'hour' HOUR[(hour_precision)]

Retourne une période sous forme d'heures.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '40' HOUR retourne un intervalle de 40 heures
INTERVAL 'minute' MINUTE[(minute_precision)]

Retourne une période sous forme de minutes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '15' MINUTE retourne un intervalle de 15 minutes
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de minutes et secondes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '15:30' MINUTE TO SECOND retourne un intervalle de 15 minutes et 30 secondes
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de secondes.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire du champ second; il est compris entre 0 et 9. La valeur par défaut est 3.

INTERVAL '15.678' SECOND retourne un intervalle de 15,678 secondes
Fonctions d'analyse
Fonction Description Exemple
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Retourne la valeur évaluée à la rangée qui est la première rangée du cadre de la fenêtre. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la première valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné avant la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) retourne la valeur de BANK_ID de la deuxième rangée avant la rangée courante, avec un partitionnement par BANK_ID et en ordre décroissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Retourne la valeur évaluée à la rangée qui est la dernière rangée du cadre de la fenêtre. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la dernière valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné après la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne la valeur de BANK_ID de la deuxième rangée après la rangée courante, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
RANK() OVER([ partition_clause ] order_by_clause) Retourne le rang de la rangée courante avec les écarts, en comptant à partir de 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le rang de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Retourne le numéro unique de la rangée courante dans sa partition, en comptant à partir de 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le numéro unique de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
Fonctions de chaîne
FonctionsDescriptionExemple
CAST(value AS type)Retourne la valeur indiquée dans le type indiqué.CAST("10" AS INT) retourne 10
CONCAT(string, string)Retourne les valeurs combinées des chaînes ou des colonnes.CONCAT('Oracle','SQL') retourne OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Retourne les valeurs combinées des chaînes ou des colonnes à l'aide du séparateur spécifié entre les chaînes ou les colonnes.

Un séparateur est requis et doit être une chaîne.

Au moins une expression doit être fournie après le séparateur. Par exemple : CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') retourne Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) retourne 123 MyCity 987654

Si un enfant de la fonction est un tableau, le tableau est aplati :

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) retourne 1,2,3,4,5,6,7,8,9

INITCAP(string)Retourne la chaîne avec une majuscule à la première lettre de chaque mot, tandis que toutes les autres lettres sont en minuscules, et chaque mot est délimité par une espace.INITCAP('oRACLE sql') retourne Oracle Sql
INSTR(string, substring[start_position])Retourne l'index (à partir de 1) de la première occurrence de la sous-chaîne (substring) dans la chaîne string.INSTR('OracleSQL', 'SQL') retourne 7
LOWER(string)Retourne la chaîne avec toutes les lettres en minuscules.LOWER('ORACLE') retourne oracle
LENGTH(string)Retourne la longueur de la chaîne en nombre de caractères ou le nombre d'octets dans le cas de données binaires. La longueur de la chaîne comprend les espaces de fin.LENGTH('Oracle') retourne 6
LTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la gauche.LTRIM(' Oracle')
NVL(expr1, epxr2)Retourne l'argument qui n'est pas vide.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Recherche et extrait de la chaîne d'entrée la chaîne qui correspond à un modèle d'expression rationnelle. Si l'index de groupe de saisie facultatif est fourni, la fonction extrait le groupe particulier.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') retourne https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retourne 22
REPLACE(string, search, replacement)Remplace toutes les occurrences de la chaîne recherchée search par la chaîne de remplacement replacement.

Si search est introuvable dans la chaîne, celle-ci est retournée inchangée.

Si la chaîne de remplacement replacement n'est pas indiquée ou est une chaîne vide, rien ne remplace la chaîne recherchée search qui est alors supprimée de la chaîne string.

REPLACE('ABCabc', 'abc', 'DEF') retourne ABCDEF
RTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la droite.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Retourne la sous-chaîne à partir de la position indiquée. SUBSTRING('Oracle SQL' FROM 2 FOR 3) retourne rac
Pour les chiffres, TO_CHAR(expr) et pour les dates TO_CHAR(expr, format[, locale])Convertit les nombres et les dates en chaînes. Pour les nombres, aucun format n'est requis. Pour les dates, utilisez le même format que DATE_FORMAT décrit dans Fonctions de date et d'heure. Les paramètres régionaux par défaut sont en-US. Voir les étiquettes de langue prises en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format de date pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

Exemple de nombre : TO_CHAR(123) retourne 123

Exemple de date : TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') retourne la chaîne 2020.10.30. Le premier argument est un objet Date représentant le 30 octobre 2020.

UPPER(string)Retourne une chaîne avec toutes les lettres en majuscules.UPPER('oracle') retourne ORACLE
LPAD(str, len[, pad])Retourne une chaîne avec remplissage à gauche avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.LPAD('ABC', 5, '*') retourne '**ABC'
RPAD(str, len[, pad])Retourne une chaîne avec remplissage à droite avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Fonctions d'opérateur (comparaison)
FonctionDescriptionExemple
CASE WHEN condition1 THEN result1 ELSE result2 ENDRetourne la valeur pour laquelle une condition est satisfaite.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END retourne ABC si 1> 0, sinon retourne XYZ
ANDOpérateur logique AND. Retourne Vrai si les deux opérandes sont vrais, sinon retourne Faux.(x = 10 AND y = 20) retourne "Vrai" si x est égal à 10 et y égal à 20. Si l'un ou l'autre n'est pas vrai, alors "Faux" est retourné
OROpérateur logique OR. Retourne Vrai si l'un ou l'autre opérande est vrai ou si les deux sont vrais, sinon retourne Faux.(x = 10 OR y = 20) retourne "Faux" si x n'est pas égal à 10 et y n'est pas égal à 20. Si l'un ou l'autre est vrai, alors "Vrai" est retourné
NOTOpérateur logique NOT.
LIKEMet en correspondance des modèles de chaîne, si string1 correspond au modèle dans string2.
=Teste l'égalité. Retourne Vrai si expr1 est égal à expr2, sinon retourne Faux.x = 10 retourne "Vrai" lorsque la valeur de x est 10, sinon "Faux" est retourné
!=Teste l'inégalité. Retourne Vrai si expr1 n'est pas égal à expr2, sinon retourne Faux.x != 10 retourne "Faux" si la valeur de x est 10, sinon "Vrai" est retourné
>Teste si une expression est supérieure. Retourne Vrai si expr1 est supérieur à expr2.x > 10 retourne "Vrai" si la valeur de x est supérieure à 10, sinon "Faux" est retourné
>=Teste si une expression est supérieure ou égale. Retourne Vrai si expr1 est supérieur ou égal à expr2.x > =10 retourne "Vrai" si la valeur de x est supérieure ou égale à 10, sinon "Faux" est retourné
<Teste si une expression est inférieure. Retourne Vrai si expr1 est inférieur à expr2.x < 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
<=Teste si une expression est inférieure ou égale. Retourne Vrai si expr1 est inférieur ou égal à expr2.x <= 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
||Concatène deux chaînes.'XYZ' || 'hello' retourne 'XYZhello'
BETWEENÉvalue un intervalle.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INVérifie si une expression correspond à une liste de valeurs.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Fonctions de création d'ID unique
FonctionDescriptionExemple
NUMERIC_ID()Génère pour chaque rangée un identificateur universel unique qui est un numéro 64 bits.NUMERIC_ID() retourne, par exemple, 3458761969522180096 et 3458762008176885761
ROWID()Génère des nombres monotones croissants de 64 bits.ROWID() retourne par exemple 0, 1, 2 et ainsi de suite
UUID()Génère pour chaque rangée un identifiant universel unique qui est une chaîne de 128 bits.UUID() retourne par exemple 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Génère des entiers uniques monotones croissants de 64 bits, qui ne sont pas des nombres consécutifs. MONOTONICALLY_INCREASING_ID() retourne, par exemple, 8589934592 et 25769803776
Fonctions conditionnelles
FonctionDescriptionExemple
COALESCE(value, value [, value]*)Retourne le premier argument non nul, s'il existe, sinon retourne une valeur nulle.COALESCE(NULL, 1, NULL) retourne 1
NULLIF(value, value)Retourne une valeur nulle si les deux valeurs sont égales, sinon retourne la première valeur.NULLIF('ABC','XYZ') retourne ABC
Fonctions hiérarchiques
FonctionDescriptionExemple
SCHEMA_OF_JSON(string)Analyse une chaîne JSON et en tire le schéma au format LDD.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') retourne 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') retourne 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analyse une colonne contenant une chaîne JSON dans l'un des types suivants, avec le schéma spécifié.

  • Map, avec String comme type de clé
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') retourne une colonne de type Struct avec le schéma spécifié : {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') retourne une colonne de type Struct avec le schéma spécifié : {1, 0.8}

TO_JSON(column)Convertit une colonne contenant le type Struct ou Array of Structs, ou Map ou Array of Maps, en chaîne JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) retourne une chaîne JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crée une colonne de type Map. Les colonnes d'entrée doivent être regroupées en paires clé-valeur. Les colonnes de clé d'entrée ne peuvent pas être nulles et elles doivent toutes avoir le même type de données. Les colonnes de valeur d'entrée doivent toutes avoir le même type de données.

TO_MAP('Ename',Expression_1.attribute1) retourne une colonne de Map : {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) retourne une colonne de type Map : {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crée une colonne de type Struct. Les colonnes d'entrée doivent être regroupées en paires clé-valeur.

TO_STRUCT('Ename',Expression_1.attribute1) retourne {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) retourne {100, "John"}

TO_ARRAY(column[,column]*)Crée une colonne de type Array. Les colonnes d'entrée doivent toutes avoir le même type de données.

TO_Array(Expression_1.attribute1) retourne [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) retourne ["John","Friend"]

Fonctions d'ordre supérieur

Les opérateurs de flux de données qui prennent en charge la création d'expressions et de types de données hiérarchiques peuvent utiliser des fonctions d'ordre supérieur.

Les opérateurs pris en charge sont les suivants :

  • Regrouper

  • Expression

  • Filtre

  • Jointure

  • Consulter

  • Split

  • Faire pivoter

FonctionDescriptionExemple
TRANSFORM(column, lambda_function)Prend un tableau et une fonction anonyme, et configure un nouveau tableau en appliquant la fonction à chaque élément, et en affectant le résultat au tableau de sortie.Pour un tableau d'entrée de nombres entiers [1, 2, 3], TRANSFORM(array, x -> x + 1) retourne un nouveau tableau de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les clés ont le type du résultat de la fonction lambda, et les valeurs ont le type des valeurs de mappage de colonne.Pour un mappage d'entrée avec des clés entières et des valeurs de chaîne de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) retourne un nouveau mappage de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les valeurs ont le type du résultat des fonctions lambda, et les clés ont le type des clés de carte de colonne. Pour un mappage d'entrée avec des clés de chaîne et des valeurs de chaîne de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) retourne un nouveau mappage de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Seul l'opérateur Expression prend en charge ARRAY_SORT.

Prend un tableau et trie en fonction de la fonction donnée qui prend 2 arguments.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Si la fonction est omise, le tableau est trié dans l'ordre croissant.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Le tableau retourné est le suivant :

[1,5,6]

Opérateur Expression

Utilisez l'opérateur Expression pour effectuer une ou plusieurs transformations sur une seule rangée de données afin de créer de nouveaux champs dérivés.

Pour utiliser l'opérateur Expression pour modifier le type de données d'un groupe d'attributs, voir Modification du type de données d'un groupe d'attributs.

Ajout et configuration d'un opérateur Expression
  1. À partir du panneau Opérateurs, glissez un opérateur Expression sur le canevas.
  2. Avec l'opérateur Expression en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Sous Expressions, sélectionnez Ajouter une expression.
  4. Dans le panneau Ajouter une expression, entrez un nom pour l'expression dans le champ Identificateur ou laissez le nom tel quel.
  5. (Facultatif) Pour appliquer l'expression à deux attributs ou plus, sélectionnez Autoriser la sélection en masse. Sélectionnez ensuite les attributs par nom ou en utilisant un modèle d'expression rationnelle. Supposons, par exemple, que vous avez trois attributs de nom dans le jeu de données source et que vous souhaitez appliquer la fonction UPPER aux trois attributs sources. Vous pouvez utiliser un modèle pour sélectionner ce groupe d'attributs sources.
    1. Pour attributs sources, sélectionnez Modèle et sélectionnez Modifier le modèle. Entrez ensuite l'expression rationnelle qui correspond à un groupe d'attributs sources. For example, enter *NAME to match attributes FIRST_NAME, LAST_NAME, and FULL_NAME.
    2. Sélectionnez un type de données dans le menu.
    3. Pour attributs cibles, entrez l'expression rationnelle qui définit les noms des attributs cibles dans Modèle. Par défaut, $0 est entré, ce qui fait référence aux noms initiaux des attributs sources. Mettez à jour le modèle pour nommer les attributs cibles en fonction des besoins. Par exemple, entrez $0_UPPER pour ajouter le texte UPPER aux noms d'attribut source initiaux.
    4. Par défaut, Utiliser les types de données des attributs sources est sélectionné. Vous pouvez conserver la sélection. Si vous désélectionnez la case Utiliser les types de données des attributs sources, sélectionnez un type de données et entrez les champs correspondant au type sélectionné.
  6. (Facultatif) Si vous n'avez pas sélectionné Autoriser la sélection en masse, sous Type de données d'expression, vous pouvez sélectionner Déduire le type de données si vous voulez que le générateur d'expressions détecte le type de données à partir de l'expression que vous entrez. Vous pouvez sélectionner Préviser le type de données et Valider pour prévisualiser et actualiser le type de données, et valider l'expression.

    L'option Déduire le type de données est utile lorsque vous utilisez des types de données complexes tels que Map, Array et Struct, qui peuvent avoir des niveaux de types imbriqués.

  7. Si vous n'avez pas sélectionné Autoriser la sélection en masse et Déférer le type de données, sélectionnez une valeur dans le menu Type de données, puis remplissez les champs correspondant au type sélectionné.
  8. Dans la section Générateur d'expressions, créez visuellement une expression en cliquant deux fois sur des attributs, des paramètres ou des fonctions entrants ou en les faisant glisser pour les ajouter à l'éditeur pour créer l'expression. Vous pouvez également rédiger manuellement l'expression. Voir Ajout d'une expression. Vous pouvez également valider l'expression.

    Vous pouvez utiliser des paramètres dans des expressions, notamment des paramètres définis par l'utilisateur qui ont été créés dans le flux de données et des paramètres de système générés par le service d'intégration de données lors de l'exécution.

    Si vous avez sélectionné Autoriser la sélection en masse, utilisez %MACRO_INPUT% dans l'expression pour indiquer les attributs sur lesquels la fonction doit être appliquée. Supposons, par exemple, que vous avez utilisé le modèle *NAME pour les attributs sources FIRST_NAME, LAST_NAME et FULL_NAME. Vous pouvez maintenant spécifier une fonction UPPER(%MACRO_INPUT%) pour appliquer la fonction à tous les attributs qui correspondent au modèle.

    Pour exclure un ou plusieurs attributs entrants de la sortie de cette expression, cochez la case Exclure les attributs entrants. Utilisez ensuite le menu pour ajouter les attributs entrants à exclure de la sortie. Une règle Exclure est appliquée à chaque attribut que vous choisissez d'exclure. Vous ne pouvez exclure des attributs que lors de l'ajout initial de l'expression. Lorsque vous modifiez l'expression, la case à cocher Exclure les attributs entrants n'est pas disponible.

    Note

    Pour remplacer un paramètre fictif dans une fonction par un autre élément, mettez en surbrillance le paramètre fictif, puis cliquez deux fois sur un autre élément de la liste pour l'ajouter à la fonction.
  9. Sélectionnez Ajouter.
    Vous pouvez répéter les étapes à partir de l'étape 3 pour ajouter plus d'expressions, si nécessaire.
  10. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs, puis appliquer des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser des caractères génériques tels que ? et * dans le modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.

      Pour modifier le type de données d'un groupe d'attributs, sélectionnez Modifier le type de données. Dans la boîte de dialogue qui s'affiche, sélectionnez le nouveau type de données pour les attributs sélectionnés ou filtrés. Sélectionnez ensuite les autres propriétés applicables au nouveau type de données que vous avez sélectionné. Lorsque vous sélectionnez appliquer, une expression est ajoutée à l'onglet Détails au lieu d'une règle.

    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  11. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

    Voir aussi Ajout d'une expression.

  12. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Modification du type de données d'un groupe d'attributs

Vous pouvez utiliser l'opérateur Expression pour modifier le type de données d'attributs à l'aide d'une action de transformation en masse.

Au lieu d'utiliser une fonction CAST pour modifier le type de données d'attributs un attribut à la fois, vous pouvez ajouter l'opérateur Expression et appliquer une action de transformation en masse sur plusieurs attributs en même temps.
  1. Connectez l'opérateur Expression à l'objet entrant approprié.
  2. Avec l'opérateur Expression en évidence sur le canevas, dans l'onglet Attributs du panneau Propriétés, sélectionnez l'option appropriée pour afficher les attributs entrants (liés à l'opérateur Expression sur le côté gauche).
  3. Si vous n'avez que quelques attributs à transformer, utilisez les cases à cocher pour sélectionner les attributs à transformer.
  4. Si vous avez de nombreux attributs à transformer, appliquez un filtre sur les attributs :
    1. Sélectionnez l'icône de filtre dans la colonne Nom. Dans le champ de filtre affiché, entrez un modèle regex simple à l'aide des caractères génériques (? et *) pour filtrer les attributs selon un modèle de nom. Par exemple, entrez ADD* pour les attributs ADDRESS1, ADDRESS2 et ADDRESS_KEY.
    2. Sélectionnez l'icône de filtre dans la colonne Type. Dans le menu affiché, sélectionnez le type d'attribut courant des attributs que vous souhaitez modifier. Supposons, par exemple, que le type des attributs ADDRESS1 et ADDRESS2 est VARCHAR et que le type de l'attribut ADDRESS_KEY est NUMERIC. Vous pouvez sélectionner VARCHAR pour transformer ADDRESS1 et ADDRESS2 uniquement.
  5. Dans le menu Actions, sélectionnez Modifier le type de données.
  6. Dans la boîte de dialogue Modifier le type de données, sélectionnez le nouveau type de données pour les attributs sélectionnés ou les attributs filtrés.

    Spécifiez ensuite les autres propriétés applicables au nouveau type de données que vous avez sélectionné.

    Pour garder les attributs initiaux dans le jeu de données, sélectionnez Conserver les attributs sources. Si cette case n'est pas sélectionnée, seuls les nouveaux attributs sont disponibles dans les données obtenues.

  7. Sélectionnez Appliquer.
  8. Sélectionnez l'onglet Détails.
    Vérifiez l'expression ajoutée à l'opérateur pour vous.
Ajout d'une expression

Utilisez le générateur d'expressions pour sélectionner visuellement des éléments afin de créer une expression dans l'éditeur. Vous pouvez également rédiger manuellement une expression.

Tenez compte des points suivants lorsque vous créez des expressions :

  • Placez un littéral de chaîne entre apostrophes. Par exemple : CONCAT('We ', 'like') et UPPER('oracle').

  • Placez un nom d'attribut entre guillemets. Par exemple : UPPER("Sales") et CONCAT(CONCAT("EXPRESSION_1.EMP_UTF8_EN_COL_CSV.EN_NAME", ' '), "EXPRESSION_1.EMP_UTF8_EN_COL_CSV.NAME").

    L'utilisation de guillemets autour des noms d'attribut est obligatoire pour les caractères multioctets et les noms comportant des caractères spéciaux dans le nom complet.

Le panneau Ajouter une expression comporte deux sections : informations sur l'expression et générateur d'expressions. Les champs de la section Informations sur l'expression permettent d'indiquer un nom et un type de données pour l'expression. Vous pouvez également créer l'expression pour l'appliquer à deux attributs ou plus. Lorsque vous utilisez des types de données complexes tels que Map, Array et Struct, qui peuvent comporter des niveaux de types imbriqués, vous pouvez choisir de laisser le générateur détecter le type de données à partir de l'expression que vous entrez. Lorsque vous laissez le générateur déduire le type de données, vous pouvez prévisualiser et actualiser le type de données et valider l'expression.

La section Générateur d'expression répertorie les éléments pouvant être utilisés pour créer une expression. Les éléments que vous pouvez utiliser dans une expression comprennent notamment les attributs entrants, les paramètres et les fonctions. Cliquez deux fois sur un élément de la liste ou faites-le glisser pour l'ajouter à l'éditeur afin de créer l'expression, ou écrivez vous-même l'expression manuellement. Vous pouvez valider l'expression avant de la créer.

La zone Entrant affiche les attributs de l'opérateur amont qui entrent dans cet opérateur Expression. Sous la liste d'attributs se trouve une case à cocher qui vous permet d'appliquer des règles d'exclusion. Pour exclure un ou plusieurs attributs entrants de la sortie de cette expression, cochez la case Exclure les attributs entrants. Utilisez ensuite le menu pour ajouter les attributs entrants à exclure de la sortie. Une règle Exclure est appliquée à chaque attribut que vous choisissez d'exclure. Vous ne pouvez exclure des attributs que lors de l'ajout initial de l'expression. Lorsque vous modifiez l'expression, la case à cocher Exclure les attributs entrants n'est pas disponible.

Les paramètres peuvent être définis par l'utilisateur ou générés par le système.

Les paramètres définis par l'utilisateur sont les paramètres d'expression qui ont été ajoutés au flux de données à l'aide du générateur de conditions (opérateurs Filtrer, Jointure, Consultation et Fractionner) ou du générateur d'expressions (opérateurs Expression et Agréger). Voir Ajout d'un paramètre d'expression. La syntaxe est $PARAMETER_NAME. Par exemple : EXPRESSION_1.ADDRESSES.POSTAL_CODE=$P_CODE

Le service d'intégration de données génère les paramètres de système, par exemple SYS.TASK_START_TIME. Les valeurs des paramètres du système peuvent être utilisées dans des expressions pour journaliser les informations sur le système. La syntaxe est ${SYSTEM_PARAMETER}. Par exemple : ${SYS.TASK_RUN_NAME}

Les fonctions sont les fonctions disponibles dans le service d'intégration de données que vous pouvez utiliser dans une expression. Les fonctions sont des opérations effectuées sur des arguments transmis à la fonction. Les fonctions calculent, manipulent ou extraient des valeurs de données à partir d'arguments. Vous pouvez également ajouter des fonctions définies par l'utilisateur que vous avez créées dans l'espace de travail. Par exemple : MYLIBRARY.MYFUNCTION

La liste des fonctions disponibles dans le service d'intégration de données que vous pouvez utiliser est la suivante :

Fonctions de hachage
FonctionDescriptionExemple
MD5(all data types)Calcule un total de contrôle MD5 pour le type de données et retourne une valeur de chaîne. MD5(column_name)
SHA1(all data types)Calcule une valeur de hachage SHA-1 pour le type de données et retourne une valeur de chaîne. SHA1(column_name)
SHA2(all data types, bitLength)Calcule une valeur de hachage SHA-2 pour le type de données et retourne une valeur de chaîne. bitLength est un nombre entier. SHA2 (column_name, bitLength peut être réglé à 0 (équivaut à 256), 256, 384 ou 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcule une valeur de hachage pour expr et retourne une valeur NUMBER.

expr peut être une expression, une colonne, un littéral.

max_bucket est la valeur maximale de seau retournée, entre 0 et 4294967295 (par défaut).

seed_value est une valeur comprise entre 0 (valeur par défaut) et 4294967295.

Oracle applique la fonction de hachage à la combinaison de expr et seed_value pour produire de nombreux résultats différents pour le même jeu de données.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Fonctions arithmétiques
FonctionDescriptionExemple
ABS(numeric)Retourne la valeur absolue de la valeur numeric.ABS(-1)
CEIL(numeric)Retourne le plus petit entier ne dépassant pas la valeur numericCEIL(-1,2)
FLOOR(numeric)Retourne le plus grand nombre entier ne dépassant pas la valeur numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Retourne le reste après la division de numeric1 par numeric2.MOD(8,2)
POWER(numeric1, numeric2)Élève numeric1 à la puissance numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Retourne la valeur numeric1 arrondie à numeric2 décimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Retourne la valeur numeric1 tronquée à numeric2 décimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convertit une expression expr en nombre, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format pris en charge :

  • 0 : Un chiffre
  • # : Un chiffre, zéro s'affiche comme absent
  • . : Paramètre fictif pour le séparateur décimal
  • , : Paramètre fictif pour le séparateur de regroupement
  • E : Sépare la mantisse et l'exposant pour les formats exponentiels
  • - : Préfixe négatif par défaut
  • ¤ : Signe de devise; remplacé par le symbole de devise; s'il est doublé, il est remplacé par le symbole monétaire international; s'il est présent dans un modèle, le séparateur décimal monétaire est utilisé au lieu du séparateur décimal

TO_NUMBER('5467.12') retourne 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') retourne -45677.7

Fonctions de tableau

Seul l'opérateur Expression prend en charge les fonctions de tableau.

FonctionDescriptionExemple
ARRAY_POSITION(array(...), element)Retourne la position de la première occurrence de l'élément donné dans le tableau donné.

La position n'est pas basée sur zéro, mais elle commence par 1.

ARRAY_POSITION(array(3, 2, 1, 4, 1), 1) retourne 3
REVERSE(array(...)) Retourne le tableau d'éléments indiqué dans un ordre inverse. REVERSE(array(2, 1, 4, 3)) retourne [3,4,1,2]
ELEMENT_AT(array(...), index) Retourne l'élément du tableau donné à la position d'index indiquée.

L'index n'est pas basé sur zéro, mais il commence par 1.

Si index = -1, il retourne le dernier élément.

ELEMENT_AT(array(1, 2, 3), 2) retourne 2
Fonctions de date/heure
Fonction Description Exemple
CURRENT_DATE Retourne la date courante. CURRENT_DATEretourne la date du jour, par exemple 2023-05-26
CURRENT_TIMESTAMP Retourne la date et l'heure courantes pour le fuseau horaire de la session. CURRENT_TIMESTAMP retourne la date du jour et l'heure courante, par exemple 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Retourne la date correspondant au number de jours spécifié après la date spécifiée. DATE_ADD('2017-07-30', 1) retourne 2017-07-31
DATE_FORMAT(expr, format[, locale])

Formate une expression expr de date, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format de date pris en charge :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') retourne '2020-10-11'. Le premier argument est un objet Date représentant le 11 octobre 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') retourne '2018/junio/17'

DAYOFMONTH(date) Retourne le jour du mois dans la date indiquée. DAYOFMONTH('2020-12-25') retourne 25
DAYOFWEEK(date) Retourne le jour de la semaine dans la date indiquée. DAYOFWEEK('2020-12-25') retourne 6 pour vendredi. Aux États-Unis, le dimanche est considéré comme 1, le lundi est 2, et ainsi de suite.
DAYOFYEAR(date) Retourne le jour de l'année dans la date indiquée. DAYOFYEAR('2020-12-25') retourne 360
WEEKOFYEAR(date) Retourne la semaine de la date dans l'année.

WEEKOFYEAR('2022-07-28') retourne 30

WEEKOFYEAR('2022-07-28 13:24:30') retourne 30

HOUR(datetime) Retourne la valeur d'heure de date/heure. HOUR('2020-12-25 15:10:30') retourne 15
LAST_DAY(date) Retourne le dernier jour du mois de la date indiquée. LAST_DAY ('2020-12-25') retourne 31
MINUTE(datetime) Retourne la valeur des minutes de date/heure. HOUR('2020-12-25 15:10:30') retourne 10
MONTH(date) Retourne la valeur du mois de la date indiquée. MONTH ('2020-06-25') retourne 6
QUARTER(date) Retourne le trimestre de l'année de la date indiquée. QUARTER('2020-12-25') retourne 4
SECOND(datetime) Retourne la valeur des secondes de date/heure. SECOND('2020-12-25 15:10:30') retourne 30
TO_DATE(string, format_string[, localeStr]) Analyse l'expression de chaîne en considérant l'expression format_string comme une date. Les paramètres régionaux sont facultatifs. La valeur par défaut est en-US. Marqueurs de langue pris en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les chaînes de format sensibles à la casse prises en charge sont les suivantes :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') retourne une valeur de date de 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') retourne une valeur de date de 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convertit une expr de type VARCHAR en une valeur de type TIMESTAMP, en fonction de format_string et de localeStr (facultatif).

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') retourne un objet TIMESTAMP représentant 11am 10:10 Oct 11th, 2020
WEEK(date)

Retourne la valeur de semaine de la date indiquée.

WEEK('2020-06-25') retourne 4
YEAR(date) Retourne la valeur d'année de la date indiquée. YEAR('2020-06-25') retourne 2020
ADD_MONTHS(date_expr, number_months) Retourne la date après l'ajout du nombre de mois spécifié à la date, la chaîne ou l'horodatage spécifié dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) retourne 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) retourne 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Retourne le nombre de mois entre start_date_expr et end_date_expr. start_date_expr et end_date_expr peuvent être une date, un horodatage ou une chaîne dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Un nombre entier est retourné si les deux dates correspondent au même jour du mois, ou au dernier jour de leur mois respectif. Sinon, la différence est calculée sur la base de 31 jours par mois.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') retourne 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') retourne 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') retourne 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interprète une date, un horodatage ou une chaîne en tant que temps UTC et le convertit en horodatage dans le fuseau horaire spécifié.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convertit une date, un horodatage ou une chaîne dans le fuseau horaire spécifié en horodatage UTC.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convertit l'heure ou l'heure de référence Unix spécifiée en chaîne qui représente l'horodatage de ce moment dans le fuseau horaire du système courant et dans le format spécifié.

Note : L'heure Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:000000 UTC.

Si fmt est omis, le format par défaut est yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) retourne '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) retourne '2021-11-18 10:07:34'

Le fuseau horaire par défaut est PST dans les exemples

UNIX_TIMESTAMP([time_expr[, fmt]])

Convertit l'heure courante ou spécifiée en horodatage Unix en secondes.

time_expr est une date, un horodatage ou une chaîne dans un format tel que yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Si time_expr n'est pas indiqué, l'heure courante est convertie.

Si time_expr est une chaîne et que fmt est omis, la valeur par défaut est yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') retourne 28800

Le fuseau horaire par défaut est PST dans cet exemple

INTERVAL 'year' YEAR[(year_precision)]

Renvoie une période en années.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '1' YEAR retourne un intervalle de 1 an

INTERVAL '200' YEAR(3) retourne un intervalle de 200 ans

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Retourne une période en années et en mois. Permet de stocker une période à l'aide des champs year et month.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '100-5' YEAR(3) TO MONTH retourne un intervalle de 100 ans et 5 mois. Vous devez spécifier 3 en tant que valeur de précision de l'année de début.
INTERVAL 'month' MONTH[(month_precision)]

Retourne une période en mois.

month_precision est le nombre de chiffres dans le champ mois; il est compris entre 0 et 9. Si month_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '200' MONTH(3) retourne un intervalle de 200 mois. Vous devez spécifier 3 en tant que valeur de précision du mois.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de jours, heures, minutes et secondes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) retourne un intervalle de 11 jours, 10 heures, 09 minutes, 08 secondes et 555 millièmes de seconde
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme de jours, heures et minutes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '11 10:09' DAY TO MINUTE retourne un intervalle de 11 jours, 10 heures et 09 minutes
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Retourne une période sous forme de jours et d'heures.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '100 10' DAY(3) TO HOUR retourne un intervalle de 100 jours et 10 heures
INTERVAL 'day' DAY[(day_precision)]

Retourne une période sous forme de jours.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

INTERVAL '999' DAY(3) retourne un intervalle de 999 jours
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme d'heures, minutes et secondes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) retourne un intervalle de 9 heures, 08 minutes et 7,6666666 secondes
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme d'heures et de minutes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '09:30' HOUR TO MINUTE retourne un intervalle de 9 heures et 30 minutes
INTERVAL 'hour' HOUR[(hour_precision)]

Retourne une période sous forme d'heures.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '40' HOUR retourne un intervalle de 40 heures
INTERVAL 'minute' MINUTE[(minute_precision)]

Retourne une période sous forme de minutes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '15' MINUTE retourne un intervalle de 15 minutes
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de minutes et secondes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '15:30' MINUTE TO SECOND retourne un intervalle de 15 minutes et 30 secondes
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de secondes.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire du champ second; il est compris entre 0 et 9. La valeur par défaut est 3.

INTERVAL '15.678' SECOND retourne un intervalle de 15,678 secondes
Fonctions d'analyse
Fonction Description Exemple
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Retourne la valeur évaluée à la rangée qui est la première rangée du cadre de la fenêtre. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la première valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné avant la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) retourne la valeur de BANK_ID de la deuxième rangée avant la rangée courante, avec un partitionnement par BANK_ID et en ordre décroissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Retourne la valeur évaluée à la rangée qui est la dernière rangée du cadre de la fenêtre. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la dernière valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné après la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne la valeur de BANK_ID de la deuxième rangée après la rangée courante, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
RANK() OVER([ partition_clause ] order_by_clause) Retourne le rang de la rangée courante avec les écarts, en comptant à partir de 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le rang de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Retourne le numéro unique de la rangée courante dans sa partition, en comptant à partir de 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le numéro unique de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
Fonctions de chaîne
FonctionsDescriptionExemple
CAST(value AS type)Retourne la valeur indiquée dans le type indiqué.CAST("10" AS INT) retourne 10
CONCAT(string, string)Retourne les valeurs combinées des chaînes ou des colonnes.CONCAT('Oracle','SQL') retourne OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Retourne les valeurs combinées des chaînes ou des colonnes à l'aide du séparateur spécifié entre les chaînes ou les colonnes.

Un séparateur est requis et doit être une chaîne.

Au moins une expression doit être fournie après le séparateur. Par exemple : CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') retourne Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) retourne 123 MyCity 987654

Si un enfant de la fonction est un tableau, le tableau est aplati :

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) retourne 1,2,3,4,5,6,7,8,9

INITCAP(string)Retourne la chaîne avec une majuscule à la première lettre de chaque mot, tandis que toutes les autres lettres sont en minuscules, et chaque mot est délimité par une espace.INITCAP('oRACLE sql') retourne Oracle Sql
INSTR(string, substring[start_position])Retourne l'index (à partir de 1) de la première occurrence de la sous-chaîne (substring) dans la chaîne string.INSTR('OracleSQL', 'SQL') retourne 7
LOWER(string)Retourne la chaîne avec toutes les lettres en minuscules.LOWER('ORACLE') retourne oracle
LENGTH(string)Retourne la longueur de la chaîne en nombre de caractères ou le nombre d'octets dans le cas de données binaires. La longueur de la chaîne comprend les espaces de fin.LENGTH('Oracle') retourne 6
LTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la gauche.LTRIM(' Oracle')
NVL(expr1, epxr2)Retourne l'argument qui n'est pas vide.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Recherche et extrait de la chaîne d'entrée la chaîne qui correspond à un modèle d'expression rationnelle. Si l'index de groupe de saisie facultatif est fourni, la fonction extrait le groupe particulier.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') retourne https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retourne 22
REPLACE(string, search, replacement)Remplace toutes les occurrences de la chaîne recherchée search par la chaîne de remplacement replacement.

Si search est introuvable dans la chaîne, celle-ci est retournée inchangée.

Si la chaîne de remplacement replacement n'est pas indiquée ou est une chaîne vide, rien ne remplace la chaîne recherchée search qui est alors supprimée de la chaîne string.

REPLACE('ABCabc', 'abc', 'DEF') retourne ABCDEF
RTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la droite.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Retourne la sous-chaîne à partir de la position indiquée. SUBSTRING('Oracle SQL' FROM 2 FOR 3) retourne rac
Pour les chiffres, TO_CHAR(expr) et pour les dates TO_CHAR(expr, format[, locale])Convertit les nombres et les dates en chaînes. Pour les nombres, aucun format n'est requis. Pour les dates, utilisez le même format que DATE_FORMAT décrit dans Fonctions de date et d'heure. Les paramètres régionaux par défaut sont en-US. Voir les étiquettes de langue prises en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format de date pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

Exemple de nombre : TO_CHAR(123) retourne 123

Exemple de date : TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') retourne la chaîne 2020.10.30. Le premier argument est un objet Date représentant le 30 octobre 2020.

UPPER(string)Retourne une chaîne avec toutes les lettres en majuscules.UPPER('oracle') retourne ORACLE
LPAD(str, len[, pad])Retourne une chaîne avec remplissage à gauche avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.LPAD('ABC', 5, '*') retourne '**ABC'
RPAD(str, len[, pad])Retourne une chaîne avec remplissage à droite avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Fonctions d'opérateur (comparaison)
FonctionDescriptionExemple
CASE WHEN condition1 THEN result1 ELSE result2 ENDRetourne la valeur pour laquelle une condition est satisfaite.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END retourne ABC si 1> 0, sinon retourne XYZ
ANDOpérateur logique AND. Retourne Vrai si les deux opérandes sont vrais, sinon retourne Faux.(x = 10 AND y = 20) retourne "Vrai" si x est égal à 10 et y égal à 20. Si l'un ou l'autre n'est pas vrai, alors "Faux" est retourné
OROpérateur logique OR. Retourne Vrai si l'un ou l'autre opérande est vrai ou si les deux sont vrais, sinon retourne Faux.(x = 10 OR y = 20) retourne "Faux" si x n'est pas égal à 10 et y n'est pas égal à 20. Si l'un ou l'autre est vrai, alors "Vrai" est retourné
NOTOpérateur logique NOT.
LIKEMet en correspondance des modèles de chaîne, si string1 correspond au modèle dans string2.
=Teste l'égalité. Retourne Vrai si expr1 est égal à expr2, sinon retourne Faux.x = 10 retourne "Vrai" lorsque la valeur de x est 10, sinon "Faux" est retourné
!=Teste l'inégalité. Retourne Vrai si expr1 n'est pas égal à expr2, sinon retourne Faux.x != 10 retourne "Faux" si la valeur de x est 10, sinon "Vrai" est retourné
>Teste si une expression est supérieure. Retourne Vrai si expr1 est supérieur à expr2.x > 10 retourne "Vrai" si la valeur de x est supérieure à 10, sinon "Faux" est retourné
>=Teste si une expression est supérieure ou égale. Retourne Vrai si expr1 est supérieur ou égal à expr2.x > =10 retourne "Vrai" si la valeur de x est supérieure ou égale à 10, sinon "Faux" est retourné
<Teste si une expression est inférieure. Retourne Vrai si expr1 est inférieur à expr2.x < 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
<=Teste si une expression est inférieure ou égale. Retourne Vrai si expr1 est inférieur ou égal à expr2.x <= 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
||Concatène deux chaînes.'XYZ' || 'hello' retourne 'XYZhello'
BETWEENÉvalue un intervalle.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INVérifie si une expression correspond à une liste de valeurs.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Fonctions de création d'ID unique
FonctionDescriptionExemple
NUMERIC_ID()Génère pour chaque rangée un identificateur universel unique qui est un numéro 64 bits.NUMERIC_ID() retourne, par exemple, 3458761969522180096 et 3458762008176885761
ROWID()Génère des nombres monotones croissants de 64 bits.ROWID() retourne par exemple 0, 1, 2 et ainsi de suite
UUID()Génère pour chaque rangée un identifiant universel unique qui est une chaîne de 128 bits.UUID() retourne par exemple 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Génère des entiers uniques monotones croissants de 64 bits, qui ne sont pas des nombres consécutifs. MONOTONICALLY_INCREASING_ID() retourne, par exemple, 8589934592 et 25769803776
Fonctions conditionnelles
FonctionDescriptionExemple
COALESCE(value, value [, value]*)Retourne le premier argument non nul, s'il existe, sinon retourne une valeur nulle.COALESCE(NULL, 1, NULL) retourne 1
NULLIF(value, value)Retourne une valeur nulle si les deux valeurs sont égales, sinon retourne la première valeur.NULLIF('ABC','XYZ') retourne ABC
Fonctions hiérarchiques
FonctionDescriptionExemple
SCHEMA_OF_JSON(string)Analyse une chaîne JSON et en tire le schéma au format LDD.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') retourne 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') retourne 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analyse une colonne contenant une chaîne JSON dans l'un des types suivants, avec le schéma spécifié.

  • Map, avec String comme type de clé
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') retourne une colonne de type Struct avec le schéma spécifié : {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') retourne une colonne de type Struct avec le schéma spécifié : {1, 0.8}

TO_JSON(column)Convertit une colonne contenant le type Struct ou Array of Structs, ou Map ou Array of Maps, en chaîne JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) retourne une chaîne JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crée une colonne de type Map. Les colonnes d'entrée doivent être regroupées en paires clé-valeur. Les colonnes de clé d'entrée ne peuvent pas être nulles et elles doivent toutes avoir le même type de données. Les colonnes de valeur d'entrée doivent toutes avoir le même type de données.

TO_MAP('Ename',Expression_1.attribute1) retourne une colonne de Map : {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) retourne une colonne de type Map : {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crée une colonne de type Struct. Les colonnes d'entrée doivent être regroupées en paires clé-valeur.

TO_STRUCT('Ename',Expression_1.attribute1) retourne {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) retourne {100, "John"}

TO_ARRAY(column[,column]*)Crée une colonne de type Array. Les colonnes d'entrée doivent toutes avoir le même type de données.

TO_Array(Expression_1.attribute1) retourne [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) retourne ["John","Friend"]

Fonctions d'ordre supérieur

Les opérateurs de flux de données qui prennent en charge la création d'expressions et de types de données hiérarchiques peuvent utiliser des fonctions d'ordre supérieur.

Les opérateurs pris en charge sont les suivants :

  • Regrouper

  • Expression

  • Filtre

  • Jointure

  • Consulter

  • Split

  • Faire pivoter

FonctionDescriptionExemple
TRANSFORM(column, lambda_function)Prend un tableau et une fonction anonyme, et configure un nouveau tableau en appliquant la fonction à chaque élément, et en affectant le résultat au tableau de sortie.Pour un tableau d'entrée de nombres entiers [1, 2, 3], TRANSFORM(array, x -> x + 1) retourne un nouveau tableau de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les clés ont le type du résultat de la fonction lambda, et les valeurs ont le type des valeurs de mappage de colonne.Pour un mappage d'entrée avec des clés entières et des valeurs de chaîne de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) retourne un nouveau mappage de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les valeurs ont le type du résultat des fonctions lambda, et les clés ont le type des clés de carte de colonne. Pour un mappage d'entrée avec des clés de chaîne et des valeurs de chaîne de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) retourne un nouveau mappage de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Seul l'opérateur Expression prend en charge ARRAY_SORT.

Prend un tableau et trie en fonction de la fonction donnée qui prend 2 arguments.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Si la fonction est omise, le tableau est trié dans l'ordre croissant.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Le tableau retourné est le suivant :

[1,5,6]
Duplication d'une expression

Vous pouvez dupliquer les expressions ajoutées à un opérateur Expression.

  1. Sur le canevas du flux de données, sélectionnez l'opérateur Expression.
  2. Dans l'onglet Détails du panneau Propriétés, vérifiez la liste des expressions dans la liste.
  3. Sélectionnez Dupliquer dans le menu Actions (Menu Actions) de l'expression à dupliquer.
    Aucune boîte de confirmation ne s'affiche; l'expression dupliquée est immédiatement ajoutée à la liste.
Déplacement d'une expression

Vous pouvez modifier l'ordre des expressions ajoutées à un opérateur Expression.

  1. Sur le canevas du flux de données, sélectionnez l'opérateur Expression.
  2. Dans l'onglet Détails du panneau Propriétés, vérifiez la liste des expressions dans la liste.
  3. Pour l'expression que vous souhaitez déplacer, sélectionnez Déplacer vers le haut, Bas, Bas ou Bas dans le menu Actions (Menu Actions).
    Seules les actions de déplacement pertinentes sont disponibles, selon la position courante de l'expression. Par exemple, Développer et Déplacer au début ne sont pas disponibles pour la première expression de la liste.

Opérateur Agréger

Utilisez l'opérateur Agréger pour effectuer des calculs tels que la somme ou le comptage, sur toutes les rangées ou sur un groupe de rangées afin de créer de nouveaux attributs dérivés.

Ajout et configuration d'un opérateur Agréger
  1. À partir du panneau Opérateurs, faites glisser un élément Agréger sur le canevas.
  2. Avec l'opérateur Agréger en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Sous Regroupement par, sélectionnez l'une des options suivantes :
    • Attributs : Utilisez le menu pour sélectionner un ou plusieurs attributs aux fins de regroupement.
    • Modèle : Sélectionnez Ajouter un modèle pour ajouter un modèle qui sélectionne les attributs de regroupement. Vous pouvez utiliser un modèle d'expression rationnelle pour mettre en correspondance deux attributs ou plus.
    Note

    Les expressions que vous ajoutez sont exécutées sur chaque attribut sélectionné. Les attributs qui se poursuivent en aval comprennent les attributs de regroupement, plus les attributs dérivés des expressions que vous ajoutez.
  4. Sous Expressions, sélectionnez Ajouter une expression.
  5. Dans le panneau Ajouter une expression, entrez un nom pour l'expression d'agrégation dans le champ Identificateur ou laissez le nom tel quel.
  6. (Facultatif) Pour sélectionner les attributs source, où vous souhaitez appliquer l'opération d'expression, à l'aide de modèles d'expression rationnelle, sélectionnez Autoriser la sélection en masse, puis sélectionnez Modèle. Supposons, par exemple, que vous avez trois attributs de commande dans le jeu de données et que vous souhaitez appliquer la fonction d'opérateur SUM à tous les trois. Vous pouvez utiliser un modèle pour sélectionner ce groupe d'attributs sources.
    1. Pour attributs sources, entrez l'expression rationnelle qui correspond à un groupe d'attributs sources dans Modèle. For example, enter *ORDER to match attributes FIRST_ORDER, LAST_ORDER, and FINAL_ORDER.
    2. Ensuite, pour Type de données, sélectionnez une valeur dans le menu et remplisz les champs correspondant au type sélectionné.
    3. Pour attributs cibles, entrez l'expression rationnelle qui définit les noms des attributs cibles dans Modèle. Par défaut, $0 est entré pour faire référence aux attributs sources initiaux. Mettez à jour le modèle pour nommer l'attribut cible conformément aux exigences. Par exemple, entrez $0_SUM pour ajouter le texte SUM aux noms d'attribut source initiaux.
    4. Par défaut, Utiliser les types de données des attributs sources est sélectionné. Vous pouvez conserver la sélection. Si vous désélectionnez la case Utiliser les types de données des attributs sources, sélectionnez un type de données et entrez les champs correspondant au type sélectionné.
  7. (Facultatif) Si vous n'avez pas sélectionné Autoriser la sélection en masse, sous Type de données d'expression, vous pouvez sélectionner Déduire le type de données si vous voulez que le générateur d'expressions détecte le type de données à partir de l'expression que vous entrez. Vous pouvez sélectionner Préviser le type de données et Valider pour prévisualiser et actualiser le type de données, et valider l'expression.

    Laisser le générateur déduire le type de données est utile lorsque vous utilisez des types de données complexes tels que Map, Array et Struct, qui peuvent comporter des niveaux de types imbriqués.

  8. Si vous n'avez pas sélectionné Autoriser la sélection en masse, alors pour Type de données, sélectionnez une valeur dans le menu et remplissez les champs correspondant au type sélectionné.
  9. (Facultatif) sous Type de données d'expression, vous pouvez sélectionner Déduire le type de données si vous voulez que le générateur d'expressions détecte le type de données à partir de l'expression que vous entrez. Vous pouvez sélectionner Préviser le type de données et Valider pour prévisualiser et actualiser le type de données, et valider l'expression.

    Laisser le générateur déduire le type de données est utile lorsque vous utilisez des types de données complexes tels que Map, Array et Struct, qui peuvent comporter des niveaux de types imbriqués.

  10. Si vous n'avez pas sélectionné Autoriser la sélection en masse et Déférer le type de données, sélectionnez une valeur dans le menu Type de données, puis remplissez les champs correspondant au type sélectionné.
  11. Dans la section Générateur d'expressions, créez visuellement une expression en cliquant deux fois sur des attributs, des paramètres ou des fonctions entrants ou en les faisant glisser pour les ajouter à l'éditeur pour créer l'expression. Vous pouvez également rédiger manuellement l'expression. Vous pouvez également valider l'expression.

    Si vous avez sélectionné Autoriser la sélection en masse, utilisez %MACRO_INPUT% dans l'expression pour indiquer les attributs sur lesquels la fonction doit être appliquée. Supposons, par exemple, que vous avez utilisé le modèle *NAME pour les attributs sources FIRST_NAME, LAST_NAME et FULL_NAME. Vous pouvez maintenant spécifier une fonction UPPER(%MACRO_INPUT%) pour appliquer la fonction à tous les attributs qui correspondent au modèle.

    Pour exclure un ou plusieurs attributs entrants de la sortie de cette expression, cochez la case Exclure les attributs entrants. Utilisez ensuite le menu pour ajouter les attributs entrants à exclure de la sortie. Une règle Exclure est appliquée à chaque attribut que vous choisissez d'exclure. Vous ne pouvez exclure des attributs que lors de l'ajout initial de l'expression. Lorsque vous modifiez l'expression, la case à cocher Exclure les attributs entrants n'est pas disponible.

    Note

    Pour remplacer un paramètre fictif dans une fonction par un autre élément, mettez en surbrillance le paramètre fictif, puis cliquez deux fois sur un autre élément de la liste pour l'ajouter à la fonction.
  12. Sélectionnez Ajouter.
    Vous pouvez répéter les étapes à partir de l'étape 4 pour ajouter plus d'expression, si nécessaire.
  13. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  14. Dans l'onglet Données, consultez un échantillon des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs. Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.
  15. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Ajout d'une expression d'agrégation

Utilisez le générateur d'expressions pour sélectionner visuellement des éléments afin de créer une expression dans l'éditeur. Vous pouvez également rédiger manuellement une expression.

Le panneau Ajouter une expression comporte deux sections : informations sur l'expression et générateur d'expressions. Les champs de la section Informations sur l'expression permettent d'indiquer un nom et un type de données pour l'expression. Vous pouvez également créer l'expression pour l'appliquer à deux attributs ou plus. Lorsque vous utilisez des types de données complexes tels que Map, Array et Struct, qui peuvent comporter des niveaux de types imbriqués, vous pouvez choisir de laisser le générateur détecter le type de données à partir de l'expression que vous entrez. Lorsque vous laissez le générateur déduire le type de données, vous pouvez prévisualiser et actualiser le type de données et valider l'expression.

La section Générateur d'expression répertorie les éléments pouvant être utilisés pour créer une expression. Les éléments que vous pouvez utiliser dans une expression comprennent notamment les attributs entrants, les paramètres et les fonctions. Cliquez deux fois sur un élément de la liste ou faites-le glisser pour l'ajouter à l'éditeur afin de créer l'expression, ou écrivez vous-même l'expression manuellement. Vous pouvez valider l'expression avant de la créer.

La zone Entrant affiche les attributs de l'opérateur amont qui entrent dans cet opérateur Expression. Sous la liste d'attributs se trouve une case à cocher qui vous permet d'appliquer des règles d'exclusion. Pour exclure un ou plusieurs attributs entrants de la sortie de cette expression, cochez la case Exclure les attributs entrants. Utilisez ensuite le menu pour ajouter les attributs entrants à exclure de la sortie. Une règle Exclure est appliquée à chaque attribut que vous choisissez d'exclure. Vous ne pouvez exclure des attributs que lors de l'ajout initial de l'expression. Lorsque vous modifiez l'expression, la case à cocher Exclure les attributs entrants n'est pas disponible.

Les paramètres sont les paramètres d'expression qui ont été ajoutés au flux de données à l'aide du générateur de conditions (opérateurs Filtrer, joindre, consulter et fractionner) ou du générateur d'expressions (opérateurs Expression et agréger). Un paramètre d'expression a un nom, un type et une valeur par défaut. Voir Ajout d'un paramètre d'expression.

Les fonctions sont des opérations effectuées sur des arguments transmis à la fonction. Les fonctions calculent, manipulent ou extraient des valeurs de données à partir d'arguments. Voici une liste des fonctions à utiliser pour créer des expressions :

Fonctions d'agrégation
FonctionDescriptionExemple
COUNT(value[, value]*)Retourne le nombre de rangées pour lesquelles une ou plusieurs expressions fournies sont toutes non nulles.COUNT(expr1)
COUNT(*)Retourne le nombre total de rangées extraites, y compris les rangées contenant une valeur nulle.COUNT(*)
MAX(value)Retourne la valeur maximale de l'argument.MAX(expr)
MIN(value)Retourne la valeur minimale de l'argument.MIN(expr)
SUM(numeric)Retourne la somme calculée à partir des valeurs d'un groupe.SUM(expr1)
AVG(numeric)Retourne la moyenne des valeurs numériques dans une expression.AVG(AGGREGATE_1.src1.attribute1)
LISTAGG(column[, delimiter]) WITHIN GROUP (order_by_clause)

Concatène les valeurs de la colonne d'entrée avec le délimiteur spécifié, pour chaque groupe en fonction de la clause order.

column contient les valeurs que vous voulez synchroniser ensemble dans le résultat.

delimiter sépare les valeurs de column dans le résultat. Si aucun délimiteur n'est indiqué, un caractère vide est utilisé.

order_by_clause détermine l'ordre dans lequel les valeurs concaténées sont retournées.

Cette fonction ne peut être utilisée qu'en tant qu'agrégateur et elle peut être utilisée avec ou sans regroupement. Si vous l'utilisez sans regroupement, le résultat est une rangée unique. Si vous utilisez avec un regroupement, la fonction renvoie une rangée pour chaque groupe.

Considérez une table avec deux colonnes, id, name. La table comporte trois rangées. Les valeurs de la colonne id sont 101, 102, 102. Les valeurs de la colonne name sont A, B, C.

+-----+--------+
| id  | name  |
+-----+--------+
| 101 | A     |
+-----+--------+
| 102 | B     |
+-----+--------+
| 102 | C     |
+-----+--------+

Exemple 1 : Sans regroupement

LISTAGG(id, '-') WITHIN GROUP (ORDER BY id) retourne la colonne name avec la valeur A-B-C

+--------+
| name   |
+--------+
| A-B-C  |
+--------+

Exemple 2 : Regrouper par id

LISTAGG(id, '-') WITHIN GROUP (ORDER BY id) retourne la colonne name avec les valeurs A et B-C dans deux groupes.

+--------+
| name   |
+--------+
| A      |
+--------+
| B-C    |
+--------+
Fonctions d'ordre supérieur

Les opérateurs de flux de données qui prennent en charge la création d'expressions et de types de données hiérarchiques peuvent utiliser des fonctions d'ordre supérieur.

Les opérateurs pris en charge sont les suivants :

  • Regrouper

  • Expression

  • Filtre

  • Jointure

  • Consulter

  • Split

  • Faire pivoter

FonctionDescriptionExemple
TRANSFORM(column, lambda_function)Prend un tableau et une fonction anonyme, et configure un nouveau tableau en appliquant la fonction à chaque élément, et en affectant le résultat au tableau de sortie.Pour un tableau d'entrée de nombres entiers [1, 2, 3], TRANSFORM(array, x -> x + 1) retourne un nouveau tableau de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les clés ont le type du résultat de la fonction lambda, et les valeurs ont le type des valeurs de mappage de colonne.Pour un mappage d'entrée avec des clés entières et des valeurs de chaîne de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) retourne un nouveau mappage de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les valeurs ont le type du résultat des fonctions lambda, et les clés ont le type des clés de carte de colonne. Pour un mappage d'entrée avec des clés de chaîne et des valeurs de chaîne de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) retourne un nouveau mappage de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Seul l'opérateur Expression prend en charge ARRAY_SORT.

Prend un tableau et trie en fonction de la fonction donnée qui prend 2 arguments.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Si la fonction est omise, le tableau est trié dans l'ordre croissant.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Le tableau retourné est le suivant :

[1,5,6]

Opérateur Distinct

Utilisez l'opérateur Distinct pour retourner les rangées distinctes contenant des valeurs uniques.

Ajout et configuration d'un opérateur Distinct
  1. À partir du panneau Opérateurs, faites glisser un opérateur Distinct sur le canevas.
  2. Avec l'opérateur Distinct en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.

    Les configurations de l'onglet Détails sont définies par défaut pour l'opérateur Distinct.

  3. Pour voir la sortie de l'opérateur, sélectionnez l'onglet Données.
    Les rangées distinctes avec des valeurs uniques sont affichées. Vous pouvez également appliquer des transformations aux données ou sélectionner un attribut pour voir un profil de données ou un profil d'attribut. En savoir plus sur les transformations de données.
  4. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés. L'opérateur Distinct ne fonctionne que sur les attributs filtrés, et sa sortie est constituée des rangées distinctes contenant des valeurs uniques.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, si vous appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar), les attributs sont filtrés en fonction du modèle de nom *_CODE et du type numeric ou varchar.
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  5. Dans l'onglet Données, consultez un échantillon des données, en fonction de toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  6. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.

Opérateur Trier

Utilisez l'opérateur Trier pour effectuer le tri des données en ordre croissant ou décroissant.

Lors de l'utilisation d'un opérateur de tri, nous vous recommandons d'appliquer celui-ci après avoir appliqué d'autres opérateurs. Cela garantit que l'opérateur de tri demeure immédiatement avant l'opérateur Cible, ce qui permet d'insérer les données dans la cible dans un ordre précis.

Ajout et configuration d'un opérateur Trier

Lorsque vous utilisez un opérateur Trier, appliquez-le après les autres opérateurs de mise en forme et avant l'opérateur qui nécessite que les données soient triées.

Par exemple, appliquez l'opérateur Trier avant un opérateur Cible pour insérer les données dans la cible dans un ordre de tri particulier.

  1. À partir du panneau Opérateurs, faites glisser un opérateur Trier sur le canevas.
  2. Avec l'opérateur Trier en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Dans la section Conditions de tri, sélectionnez Ajouter.

    Le panneau Ajouter une condition de tri affiche tous les champs d'attribut extraits de la table source.

  4. Dans le panneau Ajouter une condition de tri, sélectionnez l'attribut en fonction duquel trier les données.
  5. Pour filtrer les attributs à l'aide de modèles de nom, entrez un modèle de nom, par exemple *CITY*.
  6. Pour Ordre de tri, sélectionnez Ordre croissant ou Ordre décroissant, puis sélectionnez Ajouter.

    Chaque condition que vous ajoutez est affichée dans la liste des conditions de tri.

    Note

    Vous pouvez ajouter plusieurs conditions de tri une par une. Le tri fonctionne suivant l'ordre des conditions de tri dans la liste. Par exemple, le tri commence en appliquant la première condition de la liste. Puis les données triées sont retriées en fonction de la deuxième condition, et ainsi de suite.

    Pour les données de type chaîne, l'opération de tri se fait selon l'ordre lexicographique.

  7. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  8. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  9. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Ajout de conditions de tri

Après avoir ajouté un opérateur Trier sur le canevas et l'avoir connecté à un autre opérateur, vous pouvez ajouter une condition de tri.

Dans le panneau Ajouter une condition de tri, vous pouvez sélectionner les attributs sur lesquels effectuer le tri dans les champs listés ou filtrer les noms d'attribut à l'aide de modèles. Pour les données de type chaîne, l'opération de tri se fait selon l'ordre lexicographique.

Pour ajouter des conditions de tri :

  1. Under the Details tab, go to the Sort conditions section, and select Add.

    Le panneau Ajouter une condition de tri affiche tous les champs d'attribut extraits de la table source.

  2. Dans le panneau Ajouter une condition de tri, sélectionnez l'attribut en fonction duquel trier les données.
  3. Pour filtrer les attributs à l'aide de modèles de nom, entrez un modèle de nom, par exemple *CITY*.
  4. Pour Ordre de tri, sélectionnez Ordre croissant ou Ordre décroissant, puis sélectionnez Ajouter.

    Chaque condition que vous avez ajoutée est affichée dans la liste des conditions de tri.

    Note

    Vous pouvez ajouter plusieurs conditions de tri une par une. Le tri fonctionne suivant l'ordre des conditions de tri dans la liste. Par exemple, le tri se fait d'abord en fonction de la première condition de la liste, puis les données triées sont retriées selon la deuxième condition, etc.
Définition de la hiérarchie des conditions de tri

Déplacez les conditions de tri vers le haut ou vers le bas dans la liste pour hiérarchiser le tri.

Le déplacement des conditions de tri vers le haut ou vers le bas vous permet de trier d'abord par une condition de tri à priorité élevée, puis de trier les données triées en fonction de la condition suivante dans la liste. Par exemple, pour trier d'abord par adresse puis par code postal, déplacez au début la condition de tri avec l'adresse.

Pour hiérarchiser les conditions de tri :

  1. Dans l'onglet Détails, allez à la section Conditions de tri.
  2. Sélectionnez le menu Actions (Menu Actions) correspondant à la condition de tri que vous souhaitez déplacer vers le haut ou vers le bas.
  3. Pour qu'une condition de tri soit appliquée en premier, sélectionnez Déplacer vers le haut.
  4. Pour qu'une condition de tri soit appliquée plus tard, sélectionnez Déplacer vers le bas.
    Le tri est appliqué d'abord selon la condition déplacée vers le haut, puis selon la condition déplacée vers le bas.
Modification des conditions de tri

Pour modifier les conditions de tri :

  1. Dans l'onglet Détails, allez à la section Conditions de tri.
  2. Sélectionnez le menu Actions (Menu Actions) correspondant à la condition de tri à modifier, puis sélectionnez Modifier.
  3. Dans le panneau Modifier la condition de tri, sélectionnez le nouvel attribut ou filtrez les attributs en entrant un modèle de nom.
    Les attributs ou modèles déjà sélectionnés, y compris leurs attributs associés, ne peuvent pas être sélectionnés.
Suppression des conditions de tri

Vous pouvez supprimer des conditions de tri une par une ou en masse.

Pour supprimer les conditions de tri :

  1. Dans l'onglet Détails, allez à la section Conditions de tri.
  2. Pour supprimer les conditions de tri une par une, sélectionnez le menu Actions (Menu Actions) correspondant à la condition de tri que vous souhaitez supprimer.
  3. Pour supprimer plusieurs conditions de tri, cochez les cases correspondant à chacune, puis sélectionnez Supprimer en haut de la liste.

Opérateur Union

Utilisez l'opérateur Union pour effectuer une opération d'union entre deux jeux de données ou plus.

Présentation des types d'union

Vous pouvez effectuer une opération d'union sur un maximum de 10 opérateurs Source. Vous devez configurer au moins deux entrées sources. Vous pouvez choisir d'effectuer l'opération d'union en mettant en correspondance les noms d'attribut dans les attributs d'entrée source, ou vous pouvez faire correspondre les attributs par leur position.

Union par nom d'attribut

Considérez les deux exemples suivants d'entité de données. L'entité de données 1 est définie comme l'entrée principale. L'entité de données résultante montre comment les données des deux entrées sont combinées lors d'une opération d'union par nom. L'entité de données résultante utilise le nom d'attribut, l'ordre et le type de données de l'entité de données définie comme entrée principale.

Entité de données 1, entrée principale
Service ID EMPLACEMENT Entrepôt
Informatique 1400 San Francisco
Expédition 1500 Southlake (Texas)
Comptabilité 1700 New Jersey
Entité de données 2
Entrepôt ID EMPLACEMENT Service
Denver 1600 Avantages sociaux
New York 1400 Construction
Entité de données résultante
Service ID EMPLACEMENT Entrepôt
Informatique 1400 San Francisco
Expédition 1500 Southlake (Texas)
Comptabilité 1700 New Jersey
Avantages sociaux 1600 Denver
Construction 1400 New York
Union par position d'attribut

Considérez les deux exemples suivants d'entité de données. L'entité de données 2 est définie comme l'entrée principale. L'entité de données résultante montre comment les données des deux entrées sont combinées lors d'une opération d'union par position. L'entité de données résultante utilise le nom d'attribut, l'ordre et le type de données de l'entité de données définie comme entrée principale.

Entité de données 1
Service ID EMPLACEMENT Entrepôt
Informatique 1400 San Francisco
Expédition 1500 Southlake (Texas)
Comptabilité 1700 New Jersey
Entité de données 2, entrée principale
Entrepôt ID EMPLACEMENT Service
Denver 1600 Avantages sociaux
New York 1400 Construction
Entité de données résultante
Entrepôt ID EMPLACEMENT Service
Denver 1600 Avantages sociaux
New York 1400 Construction
Informatique 1400 San Francisco
Expédition 1500 Southlake (Texas)
Comptabilité 1700 New Jersey
Ajout et configuration d'un opérateur Union
  1. Pour ajouter un opérateur Union au flux de données, faites glisser l'opérateur Union sur le canevas à partir du panneau Opérateurs. Vous pouvez effectuer l'opération d'union sur un maximum de dix sources de données.
    L'onglet Détails de l'opérateur Union s'affiche dans le panneau Propriétés.
  2. Dans l'onglet Détails, entrez un nom pour cette opération d'union dans le champ Identificateur ou laissez le nom tel quel.
  3. Spécifiez comment l'opération d'union doit être effectuée dans le champ Mettre en correspondance les attributs d'entrée par. Vous pouvez choisir une des deux options suivantes :
    • Nom : Les noms d'attribut dans les sources sont correspondants pour effectuer l'opération d'union. Les noms d'attribut et les types de données, ainsi que le nombre d'attributs dans les entrées doivent être identiques. La correspondance est sensible à la casse. Examinez les exemples pour comprendre comment fonctionne l'opération d'union par nom.
    • Position : Les attributs des sources sont mis en correspondance en fonction de leur position. Le nombre d'attributs et le type de données des attributs dans les entrées doivent être identiques. Examinez les exemples pour comprendre comment fonctionne l'opération d'union par position.
  4. Pour Union de tout, cochez la case pour que l'opération retourne toutes les rangées de toutes les entités de données connectées sans éliminer les doubles.
  5. Pour Entrée principale, sélectionnez la source qui doit être considérée comme la source clé de l'opération d'union. Cette entrée principale détermine les noms, les types de données et l'ordre des attributs résultant de l'opération d'union. Par défaut, la première source ajoutée au flux de données est définie comme l'entrée principale.
  6. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, si vous appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar), les attributs sont filtrés en fonction du modèle de nom *_CODE et du type numeric ou varchar.
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  7. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  8. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.

Opérateur Soustraction

Utilisez l'opérateur Soustraction pour comparer deux entités de données et retourner les rangées présentes dans une entité, mais absentes de l'autre entité.

Vous pouvez choisir de conserver ou d'éliminer les rangées en double dans les données résultantes.

Présentation des types de soustraction

Vous pouvez effectuer une opération de soustraction sur deux opérateurs Source seulement. Vous pouvez choisir d'effectuer l'opération de soustraction en mettant en correspondance les noms d'attribut dans les attributs d'entrée source, ou vous pouvez faire correspondre les attributs par leur position.

Soustraction par nom d'attribut

Considérez les deux exemples suivants d'entité de données. L'entité de données 1 est définie comme l'entrée principale. L'entité de données résultante montre comment les données des deux entrées sont soustraites lors d'une opération de soustraction par nom. L'entité de données résultante utilise le nom d'attribut, l'ordre et le type de données de l'entité de données définie comme entrée principale.

Entité de données 1, entrée principale
ServiceID EMPLACEMENTEntrepôt
Informatique1400San Francisco
Expédition1500Austin
Comptabilité1700New Jersey
Entité de données 2
ServiceEntrepôtID EMPLACEMENT
Avantages sociauxDenver1600
InformatiqueSan Francisco1400
Entité de données résultante
ServiceID EMPLACEMENTEntrepôt
Expédition1500Austin
Comptabilité1700New Jersey
Soustraction par position d'attribut

Considérez les deux exemples suivants d'entité de données. L'entité de données 2 est définie comme l'entrée principale. L'entité de données résultante montre comment les données des deux entrées sont soustraites lors d'une opération de soustraction par position. L'entité de données résultante utilise le nom d'attribut, l'ordre et le type de données de l'entité de données définie comme entrée principale.

Entité de données 1
ServiceID EMPLACEMENTEntrepôt
Informatique1400San Francisco
Expédition1500Austin
Comptabilité1700New Jersey
Entité de données 2, entrée principale
Nom du serviceEmplacementEntrepôt - Ville
Avantages sociaux1600Denver
Informatique1400San Francisco
Entité de données résultante
Nom du serviceEmplacementEntrepôt - Ville
Avantages sociaux1600Denver
Ajout et configuration d'un opérateur Soustraction
  1. Pour ajouter un opérateur Soustraction au flux de données, faites glisser l'opérateur S moins du panneau Opérateurs sur le canevas.
    L'onglet Détails de l'opérateur Soustraction s'affiche dans le panneau Propriétés.
  2. Dans l'onglet Détails, entrez un nom pour cette opération de souscription dans le champ Identificateur ou laissez le nom tel quel.
  3. Spécifiez comment l'opération de soustraction doit être effectuée dans le champ Mettre en correspondance les attributs d'entrée par. Vous pouvez choisir une des deux options suivantes :
    • Nom : Les noms d'attribut des sources sont mis en correspondance pour l'opération de souscription. Les noms d'attribut et les types de données, ainsi que le nombre d'attributs dans les entrées doivent être identiques. La correspondance est sensible à la casse. Examinez les exemples pour comprendre comment fonctionne l'opération de soustraction par nom.
    • Position : Les attributs des sources sont mis en correspondance en fonction de leur position. Le nombre d'attributs et le type de données des attributs dans les entrées doivent être identiques. Examinez les exemples pour comprendre comment fonctionne l'opération de soustraction par position.
  4. Pour Soustraire tous, cochez la case si vous voulez que l'opération retourne toutes les rangées d'une entité de données qui ne sont pas présentes dans l'autre entité de données, sans éliminer les doubles.
  5. Pour Entrée principale, sélectionnez la source à utiliser comme source principale pour l'opération de retrait. L'entrée principale détermine les noms, les types de données et l'ordre des attributs dans la sortie résultante. Par défaut, la première source connectée à l'opérateur Soustraction est définie comme l'entrée principale.
    Icône Entrée principale Description
    diagramme de Venn de jointure externe gauche Soustraction à gauche Sélectionne toutes les rangées distinctes restantes de la source entrante 1 après avoir éliminé les rangées qui correspondent à celles de la source entrante 2.
    diagramme de Venn de jointure externe droite Soustraction à droite Sélectionne toutes les rangées distinctes restantes de la source entrante 2 après avoir éliminé les rangées qui correspondent à celles de la source entrante 1.
  6. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, si vous appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar), les attributs sont filtrés en fonction du modèle de nom *_CODE et du type numeric ou varchar.
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  7. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  8. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.

Opérateur Intersection

Utilisez l'opérateur Intersection pour comparer deux entités de données ou plus et retourner les rangées présentes dans les entités connectées.

Vous pouvez choisir de conserver ou d'éliminer les rangées en double dans les données résultantes.

Présentation des types d'intersection

Vous pouvez effectuer une opération d'intersection sur deux opérateurs Source ou plus. Vous pouvez choisir d'effectuer l'opération en mettant en correspondance les noms d'attribut dans les attributs d'entrée source, ou vous pouvez faire correspondre les attributs par leur position.

Intersection par nom d'attribut

Considérez les deux exemples suivants d'entité de données. L'entité de données 1 est définie comme l'entrée principale. L'entité de données résultante montre comment l'intersection des données des deux entrées est basée sur le nom d'attribut. L'entité de données résultante utilise le nom d'attribut, l'ordre et le type de données de l'entité de données définie comme entrée principale.

Entité de données 1, entrée principale
ServiceID EMPLACEMENTEntrepôt
Informatique1400San Francisco
Expédition1500Austin
Comptabilité1700New Jersey
Entité de données 2
ServiceEntrepôtID EMPLACEMENT
Avantages sociauxDenver1600
InformatiqueSan Francisco1400
Entité de données résultante
ServiceID EMPLACEMENTEntrepôt
Informatique1400San Francisco
Intersection par position d'attribut

Considérez les deux exemples suivants d'entité de données. L'entité de données 2 est définie comme l'entrée principale. L'entité de données résultante montre comment l'intersection des données des deux entrées est basée sur la position des attributs. L'entité de données résultante utilise le nom d'attribut, l'ordre et le type de données de l'entité de données définie comme entrée principale.

Entité de données 1
ServiceID EMPLACEMENTEntrepôt
Informatique1400San Francisco
Expédition1500Austin
Comptabilité1700New Jersey
Entité de données 2, entrée principale
Nom du serviceEmplacementEntrepôt - Ville
Avantages sociaux1600Denver
Informatique1400San Francisco
Entité de données résultante
Nom du serviceEmplacementEntrepôt - Ville
Informatique1400San Francisco
Ajout et configuration d'un opérateur Intersection
  1. To add an intersect operator to the data flow, drag the Intersect operator from the Operators panel onto the canvas.
    L'onglet Détails de l'opérateur Intersection s'affiche dans le panneau Propriétés.
  2. Dans l'onglet Détails, entrez un nom pour cette opération d'intersection dans le champ Identificateur ou laissez le nom tel quel.
  3. Spécifiez comment l'opération d'intersection doit être effectuée dans le champ Mettre en correspondance les attributs d'entrée par. Vous pouvez choisir une des deux options suivantes :
    • Nom : Les noms d'attribut dans les sources sont mis en correspondance pour effectuer l'opération d'intersection. Les noms d'attribut et les types de données, ainsi que le nombre d'attributs dans les entrées doivent être identiques. La correspondance est sensible à la casse. Examinez les exemples pour comprendre comment fonctionne l'opération d'intersection par nom.
    • Position : Les attributs des sources sont mis en correspondance en fonction de leur position. Le nombre d'attributs et le type de données des attributs dans les entrées doivent être identiques. Examinez les exemples pour comprendre comment fonctionne l'opération d'intersection par position.
  4. Pour Intersection complète, cochez la case pour que l'opération retourne toutes les rangées de la sortie obtenue, sans éliminer les doubles.
  5. Pour Entrée principale, sélectionnez la source à utiliser comme source principale pour l'opération d'intersection. L'entrée principale détermine les noms, les types de données et l'ordre des attributs dans la sortie résultante. Par défaut, la première source connectée à l'opérateur Intersection est définie comme l'entrée principale.
  6. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, si vous appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar), les attributs sont filtrés en fonction du modèle de nom *_CODE et du type numeric ou varchar.
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  7. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  8. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.

Opérateur Fractionner

Utilisez l'opérateur Fractionner pour diviser une source de données d'entrée en deux ports de sortie ou plus en fonction des conditions de fractionnement qui sont évaluées dans une séquence.

Chaque condition de fractionnement a un port de sortie. Les données qui répondent à une condition sont dirigées vers le port de sortie correspondant.

Par défaut, un opérateur Fractionner est configuré avec la condition Aucune correspondance, qui est toujours disponible dans la séquence comme dernière condition. Vous ne pouvez pas ajouter votre propre condition à la condition Aucune correspondance. Vous ne pouvez pas non plus supprimer la condition Aucune correspondance.

L'opérateur évalue les conditions une à la fois. Une fois que toutes les conditions de la séquence ont été évaluées, les données qui ne répondent pas à une condition sont dirigées vers le port de sortie Aucune correspondance.

Exemple de fractionnement

Supposons que vous avez l'entité de données BANK, avec les attributs BANK_ID et BANK_NAME.

Vous définissez deux conditions de fractionnement. La séquence complète, y compris la condition Aucune correspondance, est la suivante :

Port de sortie de conditionCondition
CONDITION1SPLIT_1.BANK.BANK_ID<102
CONDITION2SPLIT_1.BANK.BANK_ID<104
UNMATCHEDLa condition par défaut UNMATCHED dirige toutes les données qui ne satisfont pas aux autres conditions de la séquence vers le port de sortie de la condition UNMATCHED
Entité de données BANK

L'entité de données comporte quatre rangées.

BANK_IDBANK_NAME
101Banque A 101
102Banque B 102
103Banque C 103
104Banque D 104
Sortie Condition1, Première condition de correspondance

CONDITION1 retourne une rangée correspondante.

BANK_IDBANK_NAME
101Banque A 101
Sortie Condition2, Première condition de correspondance

CONDITION2 retourne deux rangées correspondantes (à partir des rangées sans correspondance après CONDITION1).

BANK_IDBANK_NAME
102Banque B 102
103Banque C 103
Sortie de condition sans correspondance, Première condition de correspondance

La condition UNMATCHED retourne la rangée restante.

BANK_IDBANK_NAME
104Banque D 104
Sortie de Condition1, Toutes les conditions de correspondance

CONDITION1 retourne une rangée correspondante.

BANK_IDBANK_NAME
101Banque A 101
Sortie Condition2, Toutes les conditions de correspondance

Toutes les données sont évaluées par CONDITION2, et trois rangées correspondantes sont retournées.

BANK_IDBANK_NAME
101Banque A 101
102Banque B 102
103Banque C 103
Sortie de condition dans correspondance, Toutes les conditions de correspondance

La condition UNMATCHED retourne les rangées qui ne répondent pas à CONDITION1 ni à CONDITION2.

BANK_IDBANK_NAME
104Banque D 104
Ajout et configuration d'un opérateur Fractionner

Lorsque vous ajoutez un opérateur Fractionner sur le canevas, par défaut l'icône de l'opérateur Fractionner apparaît développée, affichant la condition de fractionnement Aucune correspondance. La condition Aucune correspondance dirige toutes les données qui ne satisfont pas aux autres conditions ajoutées à la séquence.

  1. À partir du panneau Opérateurs, faites glisser un opérateur Fractionner sur le canevas.
  2. Avec l'opérateur Fractionner en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Sous Correspondance, indiquez comment traiter les données entrantes qui répondent à une condition de fractionnement. Vous pouvez choisir une des deux options suivantes :
    • première condition de correspondance : Les données correspondant à la première condition de la séquence sont supprimées du traitement ultérieur par les conditions ultérieures.

      Supposons, par exemple, une séquence comportant quatre conditions, y compris la dernière condition Aucune correspondance : Condition1, Condition2, Condition3 et Aucune correspondance.

      Pour Condition1, l'opération ne trouve pas de correspondance. Pour Condition2, des correspondances sont trouvées. L'opération achemine les données avec correspondance vers le port de sortie spécifié pour Condition2, puis évalue les données sans correspondance pour Condition3. Si aucune correspondance n'est trouvée pour Condtion3, toutes les données sont acheminées vers le port de sortie indiqué pour la condition Aucune correspondance. Toutefois, si des correspondances sont trouvées pour Condition3, l'opération achemine les données correspondantes vers le port de sortie pour Condition3, puis les données restantes vers le port pour la condition Aucune correspondance.

    • Toutes les conditions de correspondance : Les données correspondant à une condition quelconque sont évaluées par rapport à toutes les conditions de la séquence.

      Supposons, par exemple, une séquence avec Condition1 et Condition2. Des correspondances sont trouvées après l'évaluation de Condition1. Les données correspondantes sont acheminées vers le port de sortie indiqué pour Condition1. Toutes les données (avec et sans correspondance) sont ensuite évaluées par Condition2. Les données répondant à Condition2 sont acheminées vers le port de sortie correspondant. Les données qui ne répondent pas à Condition1 ni à Condition2 sont acheminées vers le port de sortie pour la condition de fractionnement Aucune correspondance.

  4. Sous Conditions de fractionnement, sélectionnez Ajouter une condition pour ajouter une condition de fractionnement.
    1. Dans le panneau pour ajouter une condition de fractionnement, modifiez la valeur de l'identificateur ou laissez-la telle quelle.
    2. Dans la section Générateur de conditions, vous pouvez double-cliquer ou faire glisser des attributs, des paramètres et des fonctions à ajouter à l'éditeur pour créer une condition. Vous pouvez également entrer manuellement une expression de condition dans l'éditeur et la valider.
      Note

      Dans l'éditeur, un élément ajouté, comme une fonction, peut comporter des paramètres fictifs. Pour remplacer un paramètre fictif par un autre élément, mettez le paramètre fictif en surbrillance, puis cliquez deux fois sur un autre élément de la liste.
    3. Sélectionnez Ajouter.
      La première condition que vous ajoutez est insérée avant la condition Aucune correspondance. Vous pouvez également voir la séquence des conditions dans l'icône développée de l'opérateur sur le canevas.
    4. Répétez les étapes pour ajouter des conditions afin de former une séquence.
      La deuxième condition est insérée dans la séquence entre la première condition et la condition Aucune correspondance. Les conditions subséquentes sont toujours insérées avant la condition Aucune correspondance. La séquence des conditions de fractionnement est également reflétée dans l'icône développée de l'opérateur de fractionnement sur le canevas.
  5. Pour connecter le port de sortie d'une condition de fractionnement à un autre opérateur sur le canevas :
    1. Développez l'icône de l'opérateur Fractionner pour afficher la séquence des conditions.
      Si l'icône de l'opérateur Fractionner n'est pas développée, vous pouvez toujours connecter l'opérateur à l'opérateur suivant, mais le lien est créé à partir du port de la condition Aucune correspondance.
    2. Positionnez le curseur sur la fin d'une condition, puis faites glisser le petit cercle du côté droit de la condition vers l'opérateur de mise en forme suivant ou vers une cible.
    3. Connectez chaque condition à l'opérateur ou à la cible appropriée.
    Chaque port de sortie de condition peut être relié à plusieurs opérateurs de mise en forme et opérateurs Cible. Si l'icône de l'opérateur Fractionner n'est pas développée sur le canevas, vous pouvez survoler une ligne de lien pour voir le nom de la condition de ce lien.
  6. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  7. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le menu Port de sortie conditionnel affiche le même nombre d'éléments que le nombre de conditions configurées pour l'opérateur, y compris la condition Aucune correspondance. Par défaut, la sortie du port de la première condition est affichée. Pour modifier la vue de sortie, sélectionnez le port de sortie de la condition dans le menu.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  8. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Ajout d'une condition de fractionnement

Utilisez le générateur de conditions pour sélectionner visuellement les éléments afin de créer et d'ajouter une condition de fractionnement. Vous pouvez également entrer manuellement une condition de fractionnement dans l'éditeur.

Vous pouvez ajouter des conditions de fractionnement à une séquence de conditions existante. Les conditions de fractionnement sont ajoutées à la fin de la séquence, avant la condition Aucune correspondance. Vous ne pouvez pas ajouter votre propre condition à la condition Aucune correspondance.

Les éléments que vous pouvez utiliser dans une condition de fractionnement comprennent notamment les attributs entrants, les paramètres et les fonctions. Vous pouvez double-cliquer ou faire glisser un élément de la liste à ajouter à l'éditeur pour créer une condition. Vous pouvez valider la condition avant de la créer.

La zone Entrant affiche les attributs du port amont. Par exemple :

SPLIT_1.BANK.BANK_NAME='ABC Bank'

Les paramètres sont les paramètres d'expression qui ont été ajoutés au flux de données à l'aide du générateur de conditions (opérateurs Filtrer, joindre, consulter et fractionner) ou du générateur d'expressions (opérateurs Expression et agréger). Un paramètre d'expression a un nom, un type et une valeur par défaut. Voir Ajout d'un paramètre d'expression.

Supposons que vous créez un paramètre VARCHAR portant le nom P_VARCHAR_NAME et en définissiez la valeur par défaut à ABC BANK. Vous pouvez ensuite utiliser le paramètre dans une condition de fractionnement comme ci-dessous :

SPLIT_1.BANK.BANK_NAME=$P_VARCHAR_NAME

Les fonctions sont les fonctions disponibles dans le service d'intégration de données que vous pouvez utiliser dans une condition. Les fonctions sont des opérations effectuées sur des arguments transmis à la fonction. Les fonctions calculent, manipulent ou extraient des valeurs de données à partir d'arguments.

Supposons que vous créez un paramètre VARCHAR portant le nom P_VARCHAR_LIKE et en définissiez la valeur par défaut à B%. Vous pouvez ensuite utiliser le paramètre dans une condition de fractionnement comme ci-dessous :

SPLIT_1.BANK.BANK_NAME LIKE $P_VARCHAR_LIKE

Voici une liste de fonctions que vous pouvez ajouter lors de la création de conditions :

Fonctions de hachage
FonctionDescriptionExemple
MD5(all data types)Calcule un total de contrôle MD5 pour le type de données et retourne une valeur de chaîne. MD5(column_name)
SHA1(all data types)Calcule une valeur de hachage SHA-1 pour le type de données et retourne une valeur de chaîne. SHA1(column_name)
SHA2(all data types, bitLength)Calcule une valeur de hachage SHA-2 pour le type de données et retourne une valeur de chaîne. bitLength est un nombre entier. SHA2 (column_name, bitLength peut être réglé à 0 (équivaut à 256), 256, 384 ou 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcule une valeur de hachage pour expr et retourne une valeur NUMBER.

expr peut être une expression, une colonne, un littéral.

max_bucket est la valeur maximale de seau retournée, entre 0 et 4294967295 (par défaut).

seed_value est une valeur comprise entre 0 (valeur par défaut) et 4294967295.

Oracle applique la fonction de hachage à la combinaison de expr et seed_value pour produire de nombreux résultats différents pour le même jeu de données.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Fonctions arithmétiques
FonctionDescriptionExemple
ABS(numeric)Retourne la valeur absolue de la valeur numeric.ABS(-1)
CEIL(numeric)Retourne le plus petit entier ne dépassant pas la valeur numericCEIL(-1,2)
FLOOR(numeric)Retourne le plus grand nombre entier ne dépassant pas la valeur numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Retourne le reste après la division de numeric1 par numeric2.MOD(8,2)
POWER(numeric1, numeric2)Élève numeric1 à la puissance numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Retourne la valeur numeric1 arrondie à numeric2 décimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Retourne la valeur numeric1 tronquée à numeric2 décimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convertit une expression expr en nombre, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format pris en charge :

  • 0 : Un chiffre
  • # : Un chiffre, zéro s'affiche comme absent
  • . : Paramètre fictif pour le séparateur décimal
  • , : Paramètre fictif pour le séparateur de regroupement
  • E : Sépare la mantisse et l'exposant pour les formats exponentiels
  • - : Préfixe négatif par défaut
  • ¤ : Signe de devise; remplacé par le symbole de devise; s'il est doublé, il est remplacé par le symbole monétaire international; s'il est présent dans un modèle, le séparateur décimal monétaire est utilisé au lieu du séparateur décimal

TO_NUMBER('5467.12') retourne 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') retourne -45677.7

Fonctions de date/heure
Fonction Description Exemple
CURRENT_DATE Retourne la date courante. CURRENT_DATEretourne la date du jour, par exemple 2023-05-26
CURRENT_TIMESTAMP Retourne la date et l'heure courantes pour le fuseau horaire de la session. CURRENT_TIMESTAMP retourne la date du jour et l'heure courante, par exemple 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Retourne la date correspondant au number de jours spécifié après la date spécifiée. DATE_ADD('2017-07-30', 1) retourne 2017-07-31
DATE_FORMAT(expr, format[, locale])

Formate une expression expr de date, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format de date pris en charge :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') retourne '2020-10-11'. Le premier argument est un objet Date représentant le 11 octobre 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') retourne '2018/junio/17'

DAYOFMONTH(date) Retourne le jour du mois dans la date indiquée. DAYOFMONTH('2020-12-25') retourne 25
DAYOFWEEK(date) Retourne le jour de la semaine dans la date indiquée. DAYOFWEEK('2020-12-25') retourne 6 pour vendredi. Aux États-Unis, le dimanche est considéré comme 1, le lundi est 2, et ainsi de suite.
DAYOFYEAR(date) Retourne le jour de l'année dans la date indiquée. DAYOFYEAR('2020-12-25') retourne 360
WEEKOFYEAR(date) Retourne la semaine de la date dans l'année.

WEEKOFYEAR('2022-07-28') retourne 30

WEEKOFYEAR('2022-07-28 13:24:30') retourne 30

HOUR(datetime) Retourne la valeur d'heure de date/heure. HOUR('2020-12-25 15:10:30') retourne 15
LAST_DAY(date) Retourne le dernier jour du mois de la date indiquée. LAST_DAY ('2020-12-25') retourne 31
MINUTE(datetime) Retourne la valeur des minutes de date/heure. HOUR('2020-12-25 15:10:30') retourne 10
MONTH(date) Retourne la valeur du mois de la date indiquée. MONTH ('2020-06-25') retourne 6
QUARTER(date) Retourne le trimestre de l'année de la date indiquée. QUARTER('2020-12-25') retourne 4
SECOND(datetime) Retourne la valeur des secondes de date/heure. SECOND('2020-12-25 15:10:30') retourne 30
TO_DATE(string, format_string[, localeStr]) Analyse l'expression de chaîne en considérant l'expression format_string comme une date. Les paramètres régionaux sont facultatifs. La valeur par défaut est en-US. Marqueurs de langue pris en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les chaînes de format sensibles à la casse prises en charge sont les suivantes :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') retourne une valeur de date de 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') retourne une valeur de date de 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convertit une expr de type VARCHAR en une valeur de type TIMESTAMP, en fonction de format_string et de localeStr (facultatif).

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') retourne un objet TIMESTAMP représentant 11am 10:10 Oct 11th, 2020
WEEK(date)

Retourne la valeur de semaine de la date indiquée.

WEEK('2020-06-25') retourne 4
YEAR(date) Retourne la valeur d'année de la date indiquée. YEAR('2020-06-25') retourne 2020
ADD_MONTHS(date_expr, number_months) Retourne la date après l'ajout du nombre de mois spécifié à la date, la chaîne ou l'horodatage spécifié dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) retourne 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) retourne 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Retourne le nombre de mois entre start_date_expr et end_date_expr. start_date_expr et end_date_expr peuvent être une date, un horodatage ou une chaîne dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Un nombre entier est retourné si les deux dates correspondent au même jour du mois, ou au dernier jour de leur mois respectif. Sinon, la différence est calculée sur la base de 31 jours par mois.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') retourne 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') retourne 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') retourne 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interprète une date, un horodatage ou une chaîne en tant que temps UTC et le convertit en horodatage dans le fuseau horaire spécifié.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convertit une date, un horodatage ou une chaîne dans le fuseau horaire spécifié en horodatage UTC.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convertit l'heure ou l'heure de référence Unix spécifiée en chaîne qui représente l'horodatage de ce moment dans le fuseau horaire du système courant et dans le format spécifié.

Note : L'heure Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:000000 UTC.

Si fmt est omis, le format par défaut est yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) retourne '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) retourne '2021-11-18 10:07:34'

Le fuseau horaire par défaut est PST dans les exemples

UNIX_TIMESTAMP([time_expr[, fmt]])

Convertit l'heure courante ou spécifiée en horodatage Unix en secondes.

time_expr est une date, un horodatage ou une chaîne dans un format tel que yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Si time_expr n'est pas indiqué, l'heure courante est convertie.

Si time_expr est une chaîne et que fmt est omis, la valeur par défaut est yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') retourne 28800

Le fuseau horaire par défaut est PST dans cet exemple

INTERVAL 'year' YEAR[(year_precision)]

Renvoie une période en années.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '1' YEAR retourne un intervalle de 1 an

INTERVAL '200' YEAR(3) retourne un intervalle de 200 ans

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Retourne une période en années et en mois. Permet de stocker une période à l'aide des champs year et month.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '100-5' YEAR(3) TO MONTH retourne un intervalle de 100 ans et 5 mois. Vous devez spécifier 3 en tant que valeur de précision de l'année de début.
INTERVAL 'month' MONTH[(month_precision)]

Retourne une période en mois.

month_precision est le nombre de chiffres dans le champ mois; il est compris entre 0 et 9. Si month_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '200' MONTH(3) retourne un intervalle de 200 mois. Vous devez spécifier 3 en tant que valeur de précision du mois.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de jours, heures, minutes et secondes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) retourne un intervalle de 11 jours, 10 heures, 09 minutes, 08 secondes et 555 millièmes de seconde
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme de jours, heures et minutes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '11 10:09' DAY TO MINUTE retourne un intervalle de 11 jours, 10 heures et 09 minutes
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Retourne une période sous forme de jours et d'heures.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '100 10' DAY(3) TO HOUR retourne un intervalle de 100 jours et 10 heures
INTERVAL 'day' DAY[(day_precision)]

Retourne une période sous forme de jours.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

INTERVAL '999' DAY(3) retourne un intervalle de 999 jours
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme d'heures, minutes et secondes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) retourne un intervalle de 9 heures, 08 minutes et 7,6666666 secondes
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme d'heures et de minutes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '09:30' HOUR TO MINUTE retourne un intervalle de 9 heures et 30 minutes
INTERVAL 'hour' HOUR[(hour_precision)]

Retourne une période sous forme d'heures.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '40' HOUR retourne un intervalle de 40 heures
INTERVAL 'minute' MINUTE[(minute_precision)]

Retourne une période sous forme de minutes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '15' MINUTE retourne un intervalle de 15 minutes
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de minutes et secondes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '15:30' MINUTE TO SECOND retourne un intervalle de 15 minutes et 30 secondes
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de secondes.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire du champ second; il est compris entre 0 et 9. La valeur par défaut est 3.

INTERVAL '15.678' SECOND retourne un intervalle de 15,678 secondes
Fonctions d'analyse
Fonction Description Exemple
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Retourne la valeur évaluée à la rangée qui est la première rangée du cadre de la fenêtre. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la première valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné avant la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) retourne la valeur de BANK_ID de la deuxième rangée avant la rangée courante, avec un partitionnement par BANK_ID et en ordre décroissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Retourne la valeur évaluée à la rangée qui est la dernière rangée du cadre de la fenêtre. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la dernière valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné après la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne la valeur de BANK_ID de la deuxième rangée après la rangée courante, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
RANK() OVER([ partition_clause ] order_by_clause) Retourne le rang de la rangée courante avec les écarts, en comptant à partir de 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le rang de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Retourne le numéro unique de la rangée courante dans sa partition, en comptant à partir de 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le numéro unique de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
Fonctions de chaîne
FonctionsDescriptionExemple
CAST(value AS type)Retourne la valeur indiquée dans le type indiqué.CAST("10" AS INT) retourne 10
CONCAT(string, string)Retourne les valeurs combinées des chaînes ou des colonnes.CONCAT('Oracle','SQL') retourne OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Retourne les valeurs combinées des chaînes ou des colonnes à l'aide du séparateur spécifié entre les chaînes ou les colonnes.

Un séparateur est requis et doit être une chaîne.

Au moins une expression doit être fournie après le séparateur. Par exemple : CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') retourne Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) retourne 123 MyCity 987654

Si un enfant de la fonction est un tableau, le tableau est aplati :

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) retourne 1,2,3,4,5,6,7,8,9

INITCAP(string)Retourne la chaîne avec une majuscule à la première lettre de chaque mot, tandis que toutes les autres lettres sont en minuscules, et chaque mot est délimité par une espace.INITCAP('oRACLE sql') retourne Oracle Sql
INSTR(string, substring[start_position])Retourne l'index (à partir de 1) de la première occurrence de la sous-chaîne (substring) dans la chaîne string.INSTR('OracleSQL', 'SQL') retourne 7
LOWER(string)Retourne la chaîne avec toutes les lettres en minuscules.LOWER('ORACLE') retourne oracle
LENGTH(string)Retourne la longueur de la chaîne en nombre de caractères ou le nombre d'octets dans le cas de données binaires. La longueur de la chaîne comprend les espaces de fin.LENGTH('Oracle') retourne 6
LTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la gauche.LTRIM(' Oracle')
NVL(expr1, epxr2)Retourne l'argument qui n'est pas vide.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Recherche et extrait de la chaîne d'entrée la chaîne qui correspond à un modèle d'expression rationnelle. Si l'index de groupe de saisie facultatif est fourni, la fonction extrait le groupe particulier.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') retourne https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retourne 22
REPLACE(string, search, replacement)Remplace toutes les occurrences de la chaîne recherchée search par la chaîne de remplacement replacement.

Si search est introuvable dans la chaîne, celle-ci est retournée inchangée.

Si la chaîne de remplacement replacement n'est pas indiquée ou est une chaîne vide, rien ne remplace la chaîne recherchée search qui est alors supprimée de la chaîne string.

REPLACE('ABCabc', 'abc', 'DEF') retourne ABCDEF
RTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la droite.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Retourne la sous-chaîne à partir de la position indiquée. SUBSTRING('Oracle SQL' FROM 2 FOR 3) retourne rac
Pour les chiffres, TO_CHAR(expr) et pour les dates TO_CHAR(expr, format[, locale])Convertit les nombres et les dates en chaînes. Pour les nombres, aucun format n'est requis. Pour les dates, utilisez le même format que DATE_FORMAT décrit dans Fonctions de date et d'heure. Les paramètres régionaux par défaut sont en-US. Voir les étiquettes de langue prises en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format de date pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

Exemple de nombre : TO_CHAR(123) retourne 123

Exemple de date : TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') retourne la chaîne 2020.10.30. Le premier argument est un objet Date représentant le 30 octobre 2020.

UPPER(string)Retourne une chaîne avec toutes les lettres en majuscules.UPPER('oracle') retourne ORACLE
LPAD(str, len[, pad])Retourne une chaîne avec remplissage à gauche avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.LPAD('ABC', 5, '*') retourne '**ABC'
RPAD(str, len[, pad])Retourne une chaîne avec remplissage à droite avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Fonctions d'opérateur (comparaison)
FonctionDescriptionExemple
CASE WHEN condition1 THEN result1 ELSE result2 ENDRetourne la valeur pour laquelle une condition est satisfaite.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END retourne ABC si 1> 0, sinon retourne XYZ
ANDOpérateur logique AND. Retourne Vrai si les deux opérandes sont vrais, sinon retourne Faux.(x = 10 AND y = 20) retourne "Vrai" si x est égal à 10 et y égal à 20. Si l'un ou l'autre n'est pas vrai, alors "Faux" est retourné
OROpérateur logique OR. Retourne Vrai si l'un ou l'autre opérande est vrai ou si les deux sont vrais, sinon retourne Faux.(x = 10 OR y = 20) retourne "Faux" si x n'est pas égal à 10 et y n'est pas égal à 20. Si l'un ou l'autre est vrai, alors "Vrai" est retourné
NOTOpérateur logique NOT.
LIKEMet en correspondance des modèles de chaîne, si string1 correspond au modèle dans string2.
=Teste l'égalité. Retourne Vrai si expr1 est égal à expr2, sinon retourne Faux.x = 10 retourne "Vrai" lorsque la valeur de x est 10, sinon "Faux" est retourné
!=Teste l'inégalité. Retourne Vrai si expr1 n'est pas égal à expr2, sinon retourne Faux.x != 10 retourne "Faux" si la valeur de x est 10, sinon "Vrai" est retourné
>Teste si une expression est supérieure. Retourne Vrai si expr1 est supérieur à expr2.x > 10 retourne "Vrai" si la valeur de x est supérieure à 10, sinon "Faux" est retourné
>=Teste si une expression est supérieure ou égale. Retourne Vrai si expr1 est supérieur ou égal à expr2.x > =10 retourne "Vrai" si la valeur de x est supérieure ou égale à 10, sinon "Faux" est retourné
<Teste si une expression est inférieure. Retourne Vrai si expr1 est inférieur à expr2.x < 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
<=Teste si une expression est inférieure ou égale. Retourne Vrai si expr1 est inférieur ou égal à expr2.x <= 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
||Concatène deux chaînes.'XYZ' || 'hello' retourne 'XYZhello'
BETWEENÉvalue un intervalle.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INVérifie si une expression correspond à une liste de valeurs.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Fonctions de création d'ID unique
FonctionDescriptionExemple
NUMERIC_ID()Génère pour chaque rangée un identificateur universel unique qui est un numéro 64 bits.NUMERIC_ID() retourne, par exemple, 3458761969522180096 et 3458762008176885761
ROWID()Génère des nombres monotones croissants de 64 bits.ROWID() retourne par exemple 0, 1, 2 et ainsi de suite
UUID()Génère pour chaque rangée un identifiant universel unique qui est une chaîne de 128 bits.UUID() retourne par exemple 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Génère des entiers uniques monotones croissants de 64 bits, qui ne sont pas des nombres consécutifs. MONOTONICALLY_INCREASING_ID() retourne, par exemple, 8589934592 et 25769803776
Fonctions conditionnelles
FonctionDescriptionExemple
COALESCE(value, value [, value]*)Retourne le premier argument non nul, s'il existe, sinon retourne une valeur nulle.COALESCE(NULL, 1, NULL) retourne 1
NULLIF(value, value)Retourne une valeur nulle si les deux valeurs sont égales, sinon retourne la première valeur.NULLIF('ABC','XYZ') retourne ABC
Fonctions hiérarchiques
FonctionDescriptionExemple
SCHEMA_OF_JSON(string)Analyse une chaîne JSON et en tire le schéma au format LDD.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') retourne 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') retourne 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analyse une colonne contenant une chaîne JSON dans l'un des types suivants, avec le schéma spécifié.

  • Map, avec String comme type de clé
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') retourne une colonne de type Struct avec le schéma spécifié : {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') retourne une colonne de type Struct avec le schéma spécifié : {1, 0.8}

TO_JSON(column)Convertit une colonne contenant le type Struct ou Array of Structs, ou Map ou Array of Maps, en chaîne JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) retourne une chaîne JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crée une colonne de type Map. Les colonnes d'entrée doivent être regroupées en paires clé-valeur. Les colonnes de clé d'entrée ne peuvent pas être nulles et elles doivent toutes avoir le même type de données. Les colonnes de valeur d'entrée doivent toutes avoir le même type de données.

TO_MAP('Ename',Expression_1.attribute1) retourne une colonne de Map : {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) retourne une colonne de type Map : {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crée une colonne de type Struct. Les colonnes d'entrée doivent être regroupées en paires clé-valeur.

TO_STRUCT('Ename',Expression_1.attribute1) retourne {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) retourne {100, "John"}

TO_ARRAY(column[,column]*)Crée une colonne de type Array. Les colonnes d'entrée doivent toutes avoir le même type de données.

TO_Array(Expression_1.attribute1) retourne [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) retourne ["John","Friend"]

Fonctions d'ordre supérieur

Les opérateurs de flux de données qui prennent en charge la création d'expressions et de types de données hiérarchiques peuvent utiliser des fonctions d'ordre supérieur.

Les opérateurs pris en charge sont les suivants :

  • Regrouper

  • Expression

  • Filtre

  • Jointure

  • Consulter

  • Split

  • Faire pivoter

FonctionDescriptionExemple
TRANSFORM(column, lambda_function)Prend un tableau et une fonction anonyme, et configure un nouveau tableau en appliquant la fonction à chaque élément, et en affectant le résultat au tableau de sortie.Pour un tableau d'entrée de nombres entiers [1, 2, 3], TRANSFORM(array, x -> x + 1) retourne un nouveau tableau de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les clés ont le type du résultat de la fonction lambda, et les valeurs ont le type des valeurs de mappage de colonne.Pour un mappage d'entrée avec des clés entières et des valeurs de chaîne de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) retourne un nouveau mappage de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les valeurs ont le type du résultat des fonctions lambda, et les clés ont le type des clés de carte de colonne. Pour un mappage d'entrée avec des clés de chaîne et des valeurs de chaîne de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) retourne un nouveau mappage de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Seul l'opérateur Expression prend en charge ARRAY_SORT.

Prend un tableau et trie en fonction de la fonction donnée qui prend 2 arguments.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Si la fonction est omise, le tableau est trié dans l'ordre croissant.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Le tableau retourné est le suivant :

[1,5,6]
Modification des conditions de fractionnement

Vous pouvez modifier n'importe quelle condition de fractionnement, à l'exception de la condition Aucune correspondance.

  1. Sur le canevas du concepteur, sélectionnez l'opérateur Fractionner de la condition que vous souhaitez modifier.
    L'onglet Détails de l'opérateur Fractionner s'affiche dans le panneau Propriétés. Sur le canevas, vous pouvez développer et réduire l'icône de l'opérateur pour afficher et masquer les conditions de fractionnement existantes.
  2. Dans l'onglet Détails, sous Conditions de fractionnement, sélectionnez Modifier dans le menu Actions (Menu Actions) à côté de la condition de fractionnement que vous souhaitez modifier.
  3. Dans le panneau Modifier la condition de fractionnement, modifiez la valeur du champ Identificateur ou laissez-la telle quelle.
  4. Dans la section Générateur de conditions, vous pouvez double-cliquer pour sélectionner ou faire glisser des attributs entrants ou des fonctions dans l'éditeur pour créer la condition. Vous pouvez également modifier l'expression de condition manuellement dans l'éditeur et valider la condition avant de l'enregistrer.
  5. Sélectionnez Enregistrer les modifications.
Modification de la séquence des conditions de fractionnement

Vous pouvez déplacer une condition de fractionnement vers le haut ou vers le bas dans la séquence. Seule la condition Aucune correspondance ne peut pas être déplacée.

  1. Sur le canevas du concepteur, sélectionnez l'opérateur Fractionner avec la séquence des conditions que vous souhaitez modifier.
    L'onglet Détails de l'opérateur Fractionner s'affiche dans le panneau Propriétés. Sur le canevas, vous pouvez développer et réduire l'icône de l'opérateur pour afficher et masquer les conditions de fractionnement existantes.
  2. Dans l'onglet Détails, sous Conditions de fractionnement, vérifiez la séquence des conditions de fractionnement.
  3. À côté d'une rangée de condition, dans le menu Actions (Menu Actions), sélectionnez l'action permettant de déplacer la condition vers le haut ou vers le bas de la séquence.
    Notez que la position de la condition dans l'icône développée de l'opérateur Fractionner sur le canevas change lorsque vous déplacez une condition.
Suppression de conditions de fractionnement

Vous pouvez supprimer n'importe quelle condition de fractionnement, à l'exception de la condition Aucune correspondance.

  1. Sur le canevas du concepteur, sélectionnez l'opérateur Fractionner de la condition que vous souhaitez supprimer.
    L'onglet Détails de l'opérateur Fractionner s'affiche dans le panneau Propriétés. Sur le canevas, vous pouvez développer et réduire l'icône de l'opérateur pour afficher et masquer les conditions de fractionnement.
  2. Dans l'onglet Détails, sous Conditions de fractionnement, sélectionnez Supprimer dans le menu (Menu Actions) à côté de la condition que vous souhaitez supprimer.
  3. Pour supprimer deux conditions ou plus, utilisez la colonne à côté de la colonne Séquence afin de sélectionner les conditions, puis sélectionnez Supprimer.
  4. Si le port de sortie d'une condition supprimée était connecté à un autre opérateur ou à une autre cible, vérifiez le flux de données et apportez les modifications nécessaires après la suppression des conditions.

Opérateur Faire pivoter

L'opérateur Faire pivoter vous permet de transformer des valeurs de rangée uniques d'un attribut dans une source d'entrée en plusieurs attributs dans la sortie.

En utilisant les entrées de plusieurs rangées, l'opérateur Faire pivoter effectue une transformation basée sur des expressions de fonction d'agrégation et sur les valeurs d'un attribut que vous spécifiez en tant que clé de pivot. Cette opération produit une sortie pivotée ou réorganisée de lignes et d'attributs.

Le nombre de rangées dans la sortie est basé sur la sélection des attributs de regroupement.

  • Si vous spécifiez un ou plusieurs attributs de regroupement, les rangées entrantes qui ont la même valeur d'attribut Regrouper par sont regroupés dans une seule rangée. Par exemple, si vous spécifiez un attribut de regroupement ayant quatre valeurs uniques, les données entrantes sont transformées et regroupées en quatre rangées dans la sortie.
  • Si vous ne spécifiez aucun attribut de regroupement, toutes les données entrantes sont transformées en une seule rangée de sortie.

Le nombre d'attributs dans la sortie est :

  • Basé sur le nombre d'attributs que vous sélectionnez pour le regroupement
  • Un multiple du nombre de valeurs que vous sélectionnez dans la clé de pivot
  • Un résultat du nombre d'attributs transformés par les expressions de fonction d'agrégation

Par exemple, si vous sélectionnez un attribut de regroupement et trois valeurs de clé de pivot, et que vous ajoutez une expression qui transforme deux attributs, le nombre d'attributs dans la sortie est :

1 + (3 * 2)

Le nombre total d'attributs dans la sortie pivotée produite est calculé comme suit :

Number of group by attributes + (Number of pivot key values * Number of attributes that are transformed from expressions)

Les noms des nouveaux attributs dans la sortie sont dérivés d'un modèle que vous ajoutez pour les attributs cibles lorsque vous créez les expressions.

Les fonctions d'agrégation que vous utilisez avec un opérateur Faire pivoter déterminent les valeurs pivotées dans la sortie. Si aucune donnée n'est trouvée, une valeur nulle est insérée lorsqu'une valeur pivotée est attendue.

Exemple de pivotement

Prenons l'exemple de l'entité de données PRODUCT_SALES, qui possède les attributs STORE, PRODUCT et SALES. Cette entité de données comporte cinq rangées. Vous souhaitez créer un pivotement sur l'attribut PRODUCT avec une fonction SUM d'agrégation sur SALES.

Vous indiquez STORE en tant qu'attribut de regroupement des rangées pivotées. Chaque valeur STORE unique devient une ligne dans la sortie produite. Les rangées d'entrée ayant la même valeur de regroupement sont regroupées dans la même rangée dans la sortie pivotée. Si vous ne spécifiez pas d'attribut de regroupement, toutes les rangées d'entrée sont transformées en une rangée unique dans la sortie produite.

Vous spécifiez PRODUCT comme clé pivot et sélectionnez les trois valeurs à transformer en nouveaux attributs dans la sortie produite.

L'expression de fonction SUM d'agrégation sur SALES est :

SUM(PIVOT_1_1.PRODUCT_SALES.SALES)

Le modèle des attributs cibles est :

%PIVOT_KEY_VALUE%
Entité de données PRODUCT_SALES
STOREPRODUCTSALES
AB StoreTelevision2
AB StoreTelevision4
Country-StoreTelevision6
Country-StoreRefrigerator8
E-StoreCoffee maker10
Sortie du pivotement : Regrouper par STORE, Clé de pivot PRODUCT
STORETELEVISIONREFRIGERATORCOFFEE MAKER
AB-Store6--
Country-Store68-
E-Store--10
Sortie du pivotement : Sans Regrouper par, Clé de pivot PRODUCT
TELEVISIONREFRIGERATORCOFFEE MAKER
12810
Ajout et configuration d'un opérateur Faire pivoter

L'opérateur Faire pivoter effectue une transformation à l'aide d'une ou plusieurs expressions de fonction d'agrégation sur une ou plusieurs valeurs d'un attribut que vous spécifiez en tant que clé de pivot.

Vous pouvez choisir de regrouper les rangées pivotées en une seule ou de sélectionner des attributs pour créer plusieurs rangées de sortie basées sur la même valeur de regroupement.

  1. À partir du panneau Opérateurs, faites glisser un opérateur Faire pivoter sur le canevas.
  2. Avec l'opérateur Faire pivoter en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. (Facultatif) Pour Regrouper par, spécifiez les attributs dont les valeurs distinctes sont utilisées pour organiser les données pivotées dans des rangées regroupées. Par défaut, toutes les rangées entrantes sont agrégées et regroupées dans une rangée, sauf si vous spécifiez un ou plusieurs attributs pour effectuer le regroupement.
    • Sélectionnez Attributs, puis sélectionnez un ou plusieurs attributs pour regrouper les rangées pivotées selon la même valeur. Par exemple, si vous sélectionnez un attribut ayant deux valeurs uniques, la sortie produite comporte deux rangées de données agrégées.
    • Sélectionnez Modèle pour utiliser un modèle d'expression rationnelle afin de sélectionner les attributs de regroupement. Seuls les attributs correspondant au modèle sont utilisés pour regrouper les rangées pivotées selon la même valeur.
  4. Pour Clé de pivotement, sélectionnez l'attribut dont les valeurs peuvent être utilisées comme nouveaux attributs dans la sortie pivotée. Seuls les attributs de type VARCHAR, INTEGER, FLOAT ou BOOLEAN peuvent être utilisés en tant que clé de pivot.
  5. Sous Valeur de clé de pivot, sélectionnez Ajouter des valeurs de clé pour sélectionner une ou plusieurs valeurs de la clé de pivot sélectionnée que vous voulez transformer en attributs pivotés dans la sortie. Vous pouvez sélectionner jusqu'à 50 valeurs.

    Vous pouvez utiliser un alias pour une valeur de clé de pivot sélectionnée. Un alias ne peut pas commencer par un nombre. Seul le caractère spécial _ est autorisé.

    Pour utiliser un alias pour une valeur de clé dynamique sélectionnée, sélectionnez Modifier dans le menu Actions (Menu Actions) de cette valeur de clé. Dans le panneau Edit Pivot Key Alias, entrez l'alias de la valeur de clé.

    Pour supprimer une valeur de clé de pivot de la liste sélectionnée, cochez la case à côté de celle-ci et sélectionnez Supprimer. Vous pouvez également sélectionner Supprimer dans le menu Actions (Menu Actions).

  6. Sous Expressions, sélectionnez Ajouter une expression pour ajouter les expressions de fonction d'agrégation. Voir Ajout d'une expression de pivotement.
  7. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  8. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  9. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Ajout d'une expression de pivotement

Une ou plusieurs expressions de fonction d'agrégation sont requises pour un opérateur Faire pivoter.

  1. Avec l'opérateur Faire pivoter sélectionné dans le canevas du flux de données, sous Expressions dans le panneau de propriétés, sélectionnez Ajouter une expression.

  2. Dans le panneau Ajouter une expression, entrez un nom pour l'expression dans le champ Identificateur ou laissez le nom tel quel.

  3. (Facultatif) Pour utiliser un modèle pour appliquer une expression à plusieurs attributs sources, sélectionnez Autoriser la sélection en masse.

    Par exemple, supposons que vous ayez deux attributs DISCOUNT_ dans le jeu de données (DISCOUNT_VALUE et DISCOUNT_RATE), auxquels vous voulez appliquer la fonction MAX.

    1. Sous attributs sources, sélectionnez Modèle et sélectionnez Ajouter un modèle.

    2. Dans le panneau Ajouter un modèle de source, ajoutez un modèle pour sélectionner un groupe d'attributs sources dont le nom commence par DISCOUNT_. Par exemple, entrez DISCOUNT* et sélectionnez Ajouter. Sélectionnez ensuite le type de données.

    3. Sous attributs cibles, utilisez un modèle pour les noms d'attribut de sortie produits.

      Par défaut, le modèle %MACRO_INPUT%_%PIVOT_KEY_VALUE% est déjà inséré. %MACRO_INPUT% correspond aux noms des attributs sources sélectionnés par le modèle que vous avez ajouté. %PIVOT_KEY_VALUE% correspond aux valeurs sélectionnées dans la clé de pivot.

      Par exemple, si %PIVOT_KEY_VALUE% indique TELEVISION et que %MACRO_INPUT% indique DISCOUNT_VALUE et DISCOUNT_RATE, alors dans la sortie, les attributs pivotés sont <pivot_name>.<expression_name>.DISCOUNT_VALUE_TELEVISION et <pivot_name>.<expression_name>.DISCOUNT_RATE_TELEVISION.

    4. Vous pouvez conserver la sélection Utiliser les types de données des attributs sources. Sinon, sous Type de données d'expression, sélectionnez le type de données et remplissez les champs correspondant au type sélectionné.
  4. Si vous n'avez pas sélectionné Autoriser la sélection en masse, sous attributs cibles, utilisez un modèle pour les noms d'attribut de sortie produits.

    Par défaut, le modèle %PIVOT_KEY_VALUE% est déjà inséré. %PIVOT_KEY_VALUE% correspond aux valeurs sélectionnées dans la clé de pivot.

    Par exemple, si %PIVOT_KEY_VALUE% indique Télévision et Téléphone, puis dans la sortie, les attributs pivotés sont <pivot_name>.<expression_name>.TELEVISION et <pivot_name>.<expression_name>.TELEPHONE.

    Sous Type de données d'expression, sélectionnez le type de données et remplissez les champs correspondant au type sélectionné.

  5. Dans la section Générateur d'expression, cliquez deux fois sur des attributs entrants, des paramètres et des fonctions d'agrégation ou faites-les glisser pour les ajouter à l'éditeur afin de créer l'expression. Vous pouvez également écrire manuellement l'expression vous-même et la valider.

    Le tableau suivant présente la liste des fonctions d'agrégation disponibles pour créer des expressions de pivotement.

    FonctionDescriptionExemple
    COUNT(value[, value]*)Retourne le nombre de rangées pour lesquelles une ou plusieurs expressions fournies sont toutes non nulles.COUNT(expr1)
    COUNT(*)Retourne le nombre total de rangées extraites, y compris les rangées contenant une valeur nulle.COUNT(*)
    MAX(value)Retourne la valeur maximale de l'argument.MAX(expr)
    MIN(value)Retourne la valeur minimale de l'argument.MIN(expr)
    SUM(numeric)Retourne la somme calculée à partir des valeurs d'un groupe.SUM(expr1)

    Vous pouvez également utiliser des fonctions ordre supérieur (transformation) dans une expression de tableau croisé dynamique.

  6. Pour créer une expression de pivotement, spécifiez le ou les attributs et la fonction d'agrégation.

    • Si vous avez sélectionné Autoriser la sélection en masse, utilisez %MACRO_INPUT% dans l'expression pour indiquer les attributs sur lesquels la fonction doit être appliquée.

      Par exemple, si vous avez utilisé le modèle DISCOUNT* pour correspondre aux attributs sources DISCOUNT_RATE et DISCOUNT_VALUE, vous pouvez spécifier une fonction d'agrégation telle que SUM(numeric) pour appliquer la fonction à tous les attributs qui correspondent au modèle. %MACRO_INPUT% remplace le paramètre fictif numeric dans la fonction :

      SUM(%MACRO_INPUT%)
    • Si vous n'avez pas sélectionné Autoriser la sélection en masse, spécifiez l'attribut dans la fonction.

      Par exemple, l'entité de données est PRODUCT_SALES et vous voulez utiliser une fonction SUM d'agrégation sur l'attribut SALES. Vous pouvez spécifier la fonction au format SUM(numeric), en remplaçant le paramètre fictif numeric dans la fonction par le nom d'attribut :

      SUM(PIVOT_1_1.PRODUCT_SALES.SALES)
    • Vous pouvez utiliser un paramètre d'expression pour le nom de la fonction d'agrégation dans l'expression de pivotement. Un paramètre d'expression a un nom, un type et une valeur par défaut.

      Par exemple, le paramètre d'expression P_VARCHAR a pour type VARCHAR et sa valeur par défaut est MIN. Vous pouvez spécifier la fonction d'agrégation comme suit :

      $P_VARCHAR(%MACRO_INPUT%)
      $P_VARCHAR(PIVOT_1_1.PRODUCT_SALES.SALES)
  7. Dans le panneau Ajouter une expression, sélectionnez Ajouter.

Opérateur Consultation

L'opérateur Consultation effectue une interrogation et une transformation à l'aide d'une condition de consultation et d'une entrée provenant de deux sources, une source d'entrée principale et une source d'entrée de consultation.

L'opération d'interrogation utilise la condition et une valeur dans l'entrée principale pour rechercher des rangées dans la source de consultation. La transformation ajoute des attributs de la source de consultation à la source principale.

Vous pouvez indiquer l'action à effectuer lorsque plusieurs rangées sont retournées par l'interrogation de consultation, ou qu'aucune rangée n'est retournée. Par exemple, vous pouvez spécifier que l'action consiste à ignorer les rangées non correspondantes et à retourner une rangée correspondante quelconque, s'il y en a plusieurs.

Le résultat est une combinaison des deux sources d'entrée basée sur la condition de consultation, une valeur dans l'entrée principale et les actions privilégiées à effectuer. L'entrée principale détermine l'ordre des attributs et des rangées dans la sortie, les attributs de l'entrée principale étant placés avant les attributs de l'entrée de consultation.

Exemple de consultation

Supposons deux entités de données sources dans un flux de données. L'entité de données 1 (PAYMENTS) est définie comme étant l'entrée principale. L'entité de données 2 (CUSTOMERS) est définie comme entrée de consultation. La condition de consultation est définie de la façon suivante :

LOOKUP_1_1.PAYMENTS.CUSTOMER_ID = LOOKUP_1_2.CUSTOMERS.CUSTOMER_ID

La sortie de consultation qui en résulte montre comment les données des deux entrées sont combinées et transformées. Les attributs de la source de consultation sont ajoutés aux attributs de la source principale, selon les comportements suivants :

  • Si l'opération ne trouve pas d'enregistrement correspondant à une valeur dans la source de consultation, l'enregistrement est retourné avec une valeur nulle insérée pour les attributs de consultation. Par exemple, aucun enregistrement n'a été trouvé pour les valeurs CUSTOMER_ID 103, 104 et 105. Par conséquent, dans la sortie résultante, une valeur nulle est alimentée dans les attributs CUSTOMER_ID et NAME ajoutés.
  • Si l'opération trouve plusieurs enregistrements correspondants pour une valeur dans la source de consultation, un enregistrement correspondant quelconque est retourné.
Entité de données 1, source d'entrée principale
PAYMENT_IDCUSTOMER_IDAMOUNT
11012500
21021110
3103500
4104400
5105150
6102450
Entité de données 2, source d'entrée de consultation
CUSTOMER_IDNAME
101Pierre
102Paul
106Marie
102Pauline
Sortie de consultation
PAYMENT_IDCUSTOMER_IDAMOUNTCUSTOMER_IDNAME
11012500101Pierre
21021110102Paul
3103500nulnul
4104400nulnul
5105150nulnul
6102450102Paul
Ajout et configuration d'un opérateur Consultation

Un opérateur Consultation utilise deux sources d'entrée dans un flux de données.

La procédure suivante suppose que vous avez ajouté et configuré deux opérateurs Source.

  1. À partir du panneau Opérateurs, faites glisser un opérateur Consultation sur le canevas.
  2. Avec l'opérateur Consultation en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Pour Entrée principale, sélectionnez la source qui contient une valeur correspondant à une ou plusieurs rangées de la source de consultation. La correspondance est basée sur une condition de consultation que vous créez à l'étape 5.
    L'entrée principale détermine également l'ordre des attributs et des rangées dans la sortie de consultation résultante.
  4. Pour Entrée de consultation, sélectionnez la source référencée par la source principale pour mettre en correspondance une ou plusieurs rangées.
    Les attributs de l'entrée de consultation sont ajoutés aux attributs de l'entrée principale dans la sortie résultante.
  5. Pour Correspondances multiples, sélectionnez l'action à effectuer lorsque plusieurs rangées correspondantes sont trouvées entre la source principale et la source de consultation. L'action que vous sélectionnez détermine les rangées à utiliser dans la sortie produite.
    • Voir n'importe quelle rangée correspondante : Action par défaut. Sélectionne une rangée correspondante quelconque.
    • Retourner la première rangée correspondante : Sélectionne la première rangée correspondante.
    • Retourner la dernière rangée correspondante : Sélectionne la dernière rangée correspondante.
    • Retourner une erreur : Affiche une erreur. Ne termine pas l'opération.
    • Retourner toutes les rangées correspondantes : Sélectionne toutes les rangées correspondantes.
  6. Pour Aucune correspondance, sélectionnez l'action à effectuer lorsqu'aucune rangée correspondante n'est trouvée entre la source principale et la source de consultation. L'action que vous sélectionnez détermine comment traiter la rangée source principale sans rangée correspondante dans la source de consultation.
    • Omettre les rangées non correspondantes : n'inclut pas les rangées non correspondantes dans la sortie produite.
    • Retourner les rangées sans correspondance : Action par défaut Inclut les rangées sans correspondance dans la sortie produite avec des valeurs nulles.
  7. À côté de Condition de consultation, sélectionnez Créer.
    1. Dans le panneau Créer une condition de consultation, section Générateur de conditions, vous pouvez faire glisser ou cliquer deux fois sur des attributs, des paramètres et des fonctions à ajouter à l'éditeur pour créer une condition. Vous pouvez également entrer manuellement l'expression de condition dans l'éditeur, puis la valider.
      Note

      Dans l'éditeur, un élément ajouté, comme une fonction, peut comporter des paramètres fictifs. Pour remplacer un paramètre fictif par un autre élément, mettez le paramètre fictif en surbrillance, puis cliquez deux fois sur un autre élément de la liste.
    2. Sélectionnez Créer.
  8. (Facultatif) Sélectionnez Affecter un paramètre pour utiliser des paramètres afin que la condition de consultation ne soit pas liée au code compilé lorsque vous publiez le flux de données. Voir Affectation d'un paramètre.
  9. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  10. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  11. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Création d'une condition de consultation

Utilisez le générateur de conditions pour sélectionner visuellement les éléments formant la condition de consultation. Vous pouvez également entrer manuellement une condition dans l'éditeur.

Une condition de consultation permet d'utiliser une valeur dans une source d'entrée principale pour rechercher des enregistrements dans une source d'entrée de consultation, et retourne toutes les rangées qui correspondent. Les rangées sans correspondance sont retournées avec des valeurs nulles.

Les éléments que vous pouvez utiliser dans une condition de consultation comprennent notamment les attributs entrants, les paramètres et les fonctions. Vous pouvez double-cliquer ou faire glisser un élément de la liste à ajouter à l'éditeur pour créer une condition. Vous pouvez valider la condition avant de la créer.

La zone Entrant affiche les attributs des ports d'entrée amont dans deux dossiers LOOKUP distincts. Consultez les attributs de chaque port en développant ou en réduisant le dossier LOOKUP approprié. Par exemple, LOOKUP_1_1 est l'entrée principale, LOOKUP_1_2 est l'entrée de consultation, les conditions de consultation basées sur une valeur dans l'attribut d'entrée principale ADDRESS_ID pourraient être :

LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = '2001'
LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = LOOKUP_1_2.BANK_CUSTOMER.ADDRESS_ID

Les paramètres sont les paramètres d'expression qui ont été ajoutés au flux de données à l'aide du générateur de conditions (opérateurs Filtrer, joindre, consulter et fractionner) ou du générateur d'expressions (opérateurs Expression et agréger). Un paramètre d'expression a un nom, un type et une valeur par défaut. Voir Ajout d'un paramètre d'expression.

Supposons que vous souhaitiez consulter les clients d'une banque particulière. Vous pouvez créer un paramètre VARCHAR portant le nom P_LOOK_UP et définir la valeur par défaut à 2001, qui est la valeur de la banque particulière désirée. Vous pouvez ensuite créer la condition de consultation ainsi :

LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = LOOKUP_1_2.BANK_CUSTOMER.ADDRESS_ID AND LOOKUP_1_1.BANK_ADDRESS.ADDRESS_ID = $P_LOOK_UP

Les fonctions sont les fonctions disponibles dans le service d'intégration de données que vous pouvez utiliser dans une condition. Les fonctions sont des opérations effectuées sur des arguments transmis à la fonction. Les fonctions calculent, manipulent ou extraient des valeurs de données à partir d'arguments.

Voici une liste de fonctions que vous pouvez ajouter lors de la création de conditions :

Fonctions de hachage
FonctionDescriptionExemple
MD5(all data types)Calcule un total de contrôle MD5 pour le type de données et retourne une valeur de chaîne. MD5(column_name)
SHA1(all data types)Calcule une valeur de hachage SHA-1 pour le type de données et retourne une valeur de chaîne. SHA1(column_name)
SHA2(all data types, bitLength)Calcule une valeur de hachage SHA-2 pour le type de données et retourne une valeur de chaîne. bitLength est un nombre entier. SHA2 (column_name, bitLength peut être réglé à 0 (équivaut à 256), 256, 384 ou 512).
ORA_HASH(expr, [max_bucket], [seed_value])

Calcule une valeur de hachage pour expr et retourne une valeur NUMBER.

expr peut être une expression, une colonne, un littéral.

max_bucket est la valeur maximale de seau retournée, entre 0 et 4294967295 (par défaut).

seed_value est une valeur comprise entre 0 (valeur par défaut) et 4294967295.

Oracle applique la fonction de hachage à la combinaison de expr et seed_value pour produire de nombreux résultats différents pour le même jeu de données.

ORA_HASH('1')

ORA_HASH('b', 2)

ORA_HASH(100, 10, 10)

ORA_HASH(EXPRESSION_1.CUSTOMERS.SSN, 2)

Fonctions arithmétiques
FonctionDescriptionExemple
ABS(numeric)Retourne la valeur absolue de la valeur numeric.ABS(-1)
CEIL(numeric)Retourne le plus petit entier ne dépassant pas la valeur numericCEIL(-1,2)
FLOOR(numeric)Retourne le plus grand nombre entier ne dépassant pas la valeur numeric.FLOOR(-1,2)
MOD(numeric1, numeric2)Retourne le reste après la division de numeric1 par numeric2.MOD(8,2)
POWER(numeric1, numeric2)Élève numeric1 à la puissance numeric2.POWER(2,3)
ROUND(numeric1, numeric2)Retourne la valeur numeric1 arrondie à numeric2 décimales.ROUND(2.5,0)
TRUNC(numeric1, numeric2)Retourne la valeur numeric1 tronquée à numeric2 décimales.TRUNC(2.5,0)
TO_NUMBER(expr[, format, locale])Convertit une expression expr en nombre, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format pris en charge :

  • 0 : Un chiffre
  • # : Un chiffre, zéro s'affiche comme absent
  • . : Paramètre fictif pour le séparateur décimal
  • , : Paramètre fictif pour le séparateur de regroupement
  • E : Sépare la mantisse et l'exposant pour les formats exponentiels
  • - : Préfixe négatif par défaut
  • ¤ : Signe de devise; remplacé par le symbole de devise; s'il est doublé, il est remplacé par le symbole monétaire international; s'il est présent dans un modèle, le séparateur décimal monétaire est utilisé au lieu du séparateur décimal

TO_NUMBER('5467.12') retourne 5467.12

TO_NUMBER('-USD45,677.7', '¤¤##,###.#', 'en-US') retourne -45677.7

Fonctions de date/heure
Fonction Description Exemple
CURRENT_DATE Retourne la date courante. CURRENT_DATEretourne la date du jour, par exemple 2023-05-26
CURRENT_TIMESTAMP Retourne la date et l'heure courantes pour le fuseau horaire de la session. CURRENT_TIMESTAMP retourne la date du jour et l'heure courante, par exemple 2023-05-26 12:34:56
DATE_ADD(date, number_of_days) Retourne la date correspondant au number de jours spécifié après la date spécifiée. DATE_ADD('2017-07-30', 1) retourne 2017-07-31
DATE_FORMAT(expr, format[, locale])

Formate une expression expr de date, en fonction du format et des paramètres régionaux (locale) facultatifs fournis. Les paramètres régionaux par défaut sont en-US. Marqueurs de langue pris en charge.

Modèles de format de date pris en charge :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

DATE_FORMAT(Date '2020-10-11', 'yyyy-MM-dd') retourne '2020-10-11'. Le premier argument est un objet Date représentant le 11 octobre 2020.

DATE_FORMAT(Date '2018-junio-17', 'yyyy/MMMM/dd', 'es-ES') retourne '2018/junio/17'

DAYOFMONTH(date) Retourne le jour du mois dans la date indiquée. DAYOFMONTH('2020-12-25') retourne 25
DAYOFWEEK(date) Retourne le jour de la semaine dans la date indiquée. DAYOFWEEK('2020-12-25') retourne 6 pour vendredi. Aux États-Unis, le dimanche est considéré comme 1, le lundi est 2, et ainsi de suite.
DAYOFYEAR(date) Retourne le jour de l'année dans la date indiquée. DAYOFYEAR('2020-12-25') retourne 360
WEEKOFYEAR(date) Retourne la semaine de la date dans l'année.

WEEKOFYEAR('2022-07-28') retourne 30

WEEKOFYEAR('2022-07-28 13:24:30') retourne 30

HOUR(datetime) Retourne la valeur d'heure de date/heure. HOUR('2020-12-25 15:10:30') retourne 15
LAST_DAY(date) Retourne le dernier jour du mois de la date indiquée. LAST_DAY ('2020-12-25') retourne 31
MINUTE(datetime) Retourne la valeur des minutes de date/heure. HOUR('2020-12-25 15:10:30') retourne 10
MONTH(date) Retourne la valeur du mois de la date indiquée. MONTH ('2020-06-25') retourne 6
QUARTER(date) Retourne le trimestre de l'année de la date indiquée. QUARTER('2020-12-25') retourne 4
SECOND(datetime) Retourne la valeur des secondes de date/heure. SECOND('2020-12-25 15:10:30') retourne 30
TO_DATE(string, format_string[, localeStr]) Analyse l'expression de chaîne en considérant l'expression format_string comme une date. Les paramètres régionaux sont facultatifs. La valeur par défaut est en-US. Marqueurs de langue pris en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les chaînes de format sensibles à la casse prises en charge sont les suivantes :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

TO_DATE('31 December 2016', 'dd MMMM yyyy') retourne une valeur de date de 2016-12-31

TO_DATE('2018/junio/17', 'yyyy/MMMM/dd', 'es-ES') retourne une valeur de date de 2018-06-17

TO_TIMESTAMP(expr, format_string[, localeStr]) Convertit une expr de type VARCHAR en une valeur de type TIMESTAMP, en fonction de format_string et de localeStr (facultatif).

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT
TO_TIMESTAMP('2020-10-11 11:10:10', 'yyyy-MM-dd HH:mm:ss') retourne un objet TIMESTAMP représentant 11am 10:10 Oct 11th, 2020
WEEK(date)

Retourne la valeur de semaine de la date indiquée.

WEEK('2020-06-25') retourne 4
YEAR(date) Retourne la valeur d'année de la date indiquée. YEAR('2020-06-25') retourne 2020
ADD_MONTHS(date_expr, number_months) Retourne la date après l'ajout du nombre de mois spécifié à la date, la chaîne ou l'horodatage spécifié dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS.

ADD_MONTHS('2017-07-30', 1) retourne 2017-08-30

ADD_MONTHS('2017-07-30 09:07:21', 1) retourne 2017-08-30

MONTHS_BETWEEN(start_date_expr, end_date_expr)

Retourne le nombre de mois entre start_date_expr et end_date_expr. start_date_expr et end_date_expr peuvent être une date, un horodatage ou une chaîne dans un format de type yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Un nombre entier est retourné si les deux dates correspondent au même jour du mois, ou au dernier jour de leur mois respectif. Sinon, la différence est calculée sur la base de 31 jours par mois.

MONTHS_BETWEEN('2022-01-01', '2022-01-31') retourne 1

MONTHS_BETWEEN('2022-07-28', '2020-07-25') retourne 24

MONTHS_BETWEEN('2022-07-28 13:24:30', '2020-07-25 13:24:30') retourne 24

FROM_UTC_TIMESTAMP(time_stamp, time_zone)

Interprète une date, un horodatage ou une chaîne en tant que temps UTC et le convertit en horodatage dans le fuseau horaire spécifié.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

FROM_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 03:40:00.0
TO_UTC_TIMESTAMP(time_stamp, time_zone)

Convertit une date, un horodatage ou une chaîne dans le fuseau horaire spécifié en horodatage UTC.

Pour une chaîne, utilisez un format tel que : yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Le format de fuseau horaire est soit un ID zone basé sur la région (tel que "zone/ville", par exemple "Asie/Séoul"), soit un décalage de fuseau horaire (par exemple, UTC+02).

TO_UTC_TIMESTAMP('2017-07-14 02:40:00.0', 'GMT+1') retourne 2017-07-14 01:40:00.0
FROM_UNIXTIME(unix_time[, fmt])

Convertit l'heure ou l'heure de référence Unix spécifiée en chaîne qui représente l'horodatage de ce moment dans le fuseau horaire du système courant et dans le format spécifié.

Note : L'heure Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:000000 UTC.

Si fmt est omis, le format par défaut est yyyy-MM-dd HH:mm:ss

FROM_UNIXTIME(1255033470) retourne '2009-10-08 13:24:30'

FROM_UNIXTIME(1637258854) retourne '2021-11-18 10:07:34'

Le fuseau horaire par défaut est PST dans les exemples

UNIX_TIMESTAMP([time_expr[, fmt]])

Convertit l'heure courante ou spécifiée en horodatage Unix en secondes.

time_expr est une date, un horodatage ou une chaîne dans un format tel que yyyy-MM-dd ou yyyy-MM-dd HH:mm:ss.SSS

Si time_expr n'est pas indiqué, l'heure courante est convertie.

Si time_expr est une chaîne et que fmt est omis, la valeur par défaut est yyyy-MM-dd HH:mm:ss

UNIX_TIMESTAMP('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss') retourne 28800

Le fuseau horaire par défaut est PST dans cet exemple

INTERVAL 'year' YEAR[(year_precision)]

Renvoie une période en années.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '1' YEAR retourne un intervalle de 1 an

INTERVAL '200' YEAR(3) retourne un intervalle de 200 ans

INTERVAL 'year month' YEAR[(year_precision)] TO MONTH

Retourne une période en années et en mois. Permet de stocker une période à l'aide des champs year et month.

year_precision est le nombre de chiffres dans le champ année; il est compris entre 0 et 9. Si year_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '100-5' YEAR(3) TO MONTH retourne un intervalle de 100 ans et 5 mois. Vous devez spécifier 3 en tant que valeur de précision de l'année de début.
INTERVAL 'month' MONTH[(month_precision)]

Retourne une période en mois.

month_precision est le nombre de chiffres dans le champ mois; il est compris entre 0 et 9. Si month_precision est omis, la valeur par défaut est 2 (elle doit être inférieure à 100 ans).

INTERVAL '200' MONTH(3) retourne un intervalle de 200 mois. Vous devez spécifier 3 en tant que valeur de précision du mois.
INTERVAL 'day time' DAY[(day_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de jours, heures, minutes et secondes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '11 10:09:08.555' DAY TO SECOND(3) retourne un intervalle de 11 jours, 10 heures, 09 minutes, 08 secondes et 555 millièmes de seconde
INTERVAL 'day time' DAY[(day_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme de jours, heures et minutes.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '11 10:09' DAY TO MINUTE retourne un intervalle de 11 jours, 10 heures et 09 minutes
INTERVAL 'day time' DAY[(day_precision)] TO HOUR[(hour_precision)]

Retourne une période sous forme de jours et d'heures.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '100 10' DAY(3) TO HOUR retourne un intervalle de 100 jours et 10 heures
INTERVAL 'day' DAY[(day_precision)]

Retourne une période sous forme de jours.

day_precision est le nombre de chiffres dans le champ jour; il est compris entre 0 et 9. La valeur par défaut est 2.

INTERVAL '999' DAY(3) retourne un intervalle de 999 jours
INTERVAL 'time' HOUR[(hour_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme d'heures, minutes et secondes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '09:08:07.6666666' HOUR TO SECOND(7) retourne un intervalle de 9 heures, 08 minutes et 7,6666666 secondes
INTERVAL 'time' HOUR[(hour_precision)] TO MINUTE[(minute_precision)]

Retourne une période sous forme d'heures et de minutes.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '09:30' HOUR TO MINUTE retourne un intervalle de 9 heures et 30 minutes
INTERVAL 'hour' HOUR[(hour_precision)]

Retourne une période sous forme d'heures.

hour_precision est le nombre de chiffres dans le champ heure; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '40' HOUR retourne un intervalle de 40 heures
INTERVAL 'minute' MINUTE[(minute_precision)]

Retourne une période sous forme de minutes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

INTERVAL '15' MINUTE retourne un intervalle de 15 minutes
INTERVAL 'time' MINUTE[(minute_precision)] TO SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de minutes et secondes.

minute_precision est le nombre de chiffres dans le champ minute; il est compris entre 0 et 2. La valeur par défaut est 2.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire de la deuxième valeur du champ time; il est compris entre 0 et 9.

INTERVAL '15:30' MINUTE TO SECOND retourne un intervalle de 15 minutes et 30 secondes
INTERVAL 'second' SECOND[(fractional_seconds_precision)]

Retourne une période sous forme de secondes.

fractional_seconds_precision est le nombre de chiffres dans la partie fractionnaire du champ second; il est compris entre 0 et 9. La valeur par défaut est 3.

INTERVAL '15.678' SECOND retourne un intervalle de 15,678 secondes
Fonctions d'analyse
Fonction Description Exemple
FIRST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ] ) Retourne la valeur évaluée à la rangée qui est la première rangée du cadre de la fenêtre. FIRST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la première valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LAG(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné avant la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LAG(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME DESC) retourne la valeur de BANK_ID de la deuxième rangée avant la rangée courante, avec un partitionnement par BANK_ID et en ordre décroissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
LAST_VALUE(value) OVER ([ partition_clause ] order_by_clause [ windowFrame_clause ]) Retourne la valeur évaluée à la rangée qui est la dernière rangée du cadre de la fenêtre. LAST_VALUE(BANK_ID) OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING) retourne la dernière valeur de BANK_ID dans une fenêtre pour laquelle les rangées sont calculées comme étant la rangée courante et 1 rangée après celle-ci, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME.
LEAD(value[, offset[, default]]) OVER ([ partition_clause ] order_by_clause) Retourne la valeur évaluée à la rangée à un décalage donné après la rangée courante dans la partition. S'il n'existe pas de ligne de ce type, la valeur par défaut est renvoyée. Le décalage et la valeur par défaut sont évalués par rapport à la rangée courante. Si elle est omise, la valeur par défaut du décalage est 1 et la valeur par défaut est NULL. LEAD(BANK_ID, 2, 'hello') OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne la valeur de BANK_ID de la deuxième rangée après la rangée courante, avec un partitionnement par BANK_ID et en ordre croissant de BANK_NAME. Si une telle valeur n'existe pas, hello est retourné.
RANK() OVER([ partition_clause ] order_by_clause) Retourne le rang de la rangée courante avec les écarts, en comptant à partir de 1. RANK() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le rang de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
ROW_NUMBER() OVER([ partition_clause ] order_by_clause) Retourne le numéro unique de la rangée courante dans sa partition, en comptant à partir de 1. ROW_NUMBER() OVER (PARTITION BY BANK_ID ORDER BY BANK_NAME) retourne le numéro unique de chaque rangée dans le groupe de partitions de BANK_ID, en ordre croissant de BANK_NAME.
Fonctions de chaîne
FonctionsDescriptionExemple
CAST(value AS type)Retourne la valeur indiquée dans le type indiqué.CAST("10" AS INT) retourne 10
CONCAT(string, string)Retourne les valeurs combinées des chaînes ou des colonnes.CONCAT('Oracle','SQL') retourne OracleSQL
CONCAT_WS(separator, expression1, expression2, expression3,...) Retourne les valeurs combinées des chaînes ou des colonnes à l'aide du séparateur spécifié entre les chaînes ou les colonnes.

Un séparateur est requis et doit être une chaîne.

Au moins une expression doit être fournie après le séparateur. Par exemple : CONCAT_WS(',' col1)

CONCAT_WS('-', 'Hello', 'Oracle') retourne Hello-Oracle

CONCAT_WS(' ', address, city, postal_code) retourne 123 MyCity 987654

Si un enfant de la fonction est un tableau, le tableau est aplati :

CONCAT_WS(',', 1,2,3, to_array(4,5,6), to_array(7,8), 9) retourne 1,2,3,4,5,6,7,8,9

INITCAP(string)Retourne la chaîne avec une majuscule à la première lettre de chaque mot, tandis que toutes les autres lettres sont en minuscules, et chaque mot est délimité par une espace.INITCAP('oRACLE sql') retourne Oracle Sql
INSTR(string, substring[start_position])Retourne l'index (à partir de 1) de la première occurrence de la sous-chaîne (substring) dans la chaîne string.INSTR('OracleSQL', 'SQL') retourne 7
LOWER(string)Retourne la chaîne avec toutes les lettres en minuscules.LOWER('ORACLE') retourne oracle
LENGTH(string)Retourne la longueur de la chaîne en nombre de caractères ou le nombre d'octets dans le cas de données binaires. La longueur de la chaîne comprend les espaces de fin.LENGTH('Oracle') retourne 6
LTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la gauche.LTRIM(' Oracle')
NVL(expr1, epxr2)Retourne l'argument qui n'est pas vide.NVL(EXPRESSION_3.CUSTOMERS_JSON.CONTINENT_ID, ROWID())
REGEXP_SUBSTR(string, regexp[, RegexGroupIdx])Recherche et extrait de la chaîne d'entrée la chaîne qui correspond à un modèle d'expression rationnelle. Si l'index de groupe de saisie facultatif est fourni, la fonction extrait le groupe particulier.

REGEXP_SUBSTR('https://www.oracle.com/products', 'https://([[:alnum:]]+\.?){3,4}/?') retourne https://www.oracle.com

REGEXP_SUBSTR('22;33;44', '([0-9.]*);([0-9.]*);([0-9.]*)', 1) retourne 22
REPLACE(string, search, replacement)Remplace toutes les occurrences de la chaîne recherchée search par la chaîne de remplacement replacement.

Si search est introuvable dans la chaîne, celle-ci est retournée inchangée.

Si la chaîne de remplacement replacement n'est pas indiquée ou est une chaîne vide, rien ne remplace la chaîne recherchée search qui est alors supprimée de la chaîne string.

REPLACE('ABCabc', 'abc', 'DEF') retourne ABCDEF
RTRIM(string)Retourne la chaîne avec les espaces de début supprimés à partir de la droite.RTRIM('Oracle ')
SUBSTRING(string, position[, substring_length])Retourne la sous-chaîne à partir de la position indiquée. SUBSTRING('Oracle SQL' FROM 2 FOR 3) retourne rac
Pour les chiffres, TO_CHAR(expr) et pour les dates TO_CHAR(expr, format[, locale])Convertit les nombres et les dates en chaînes. Pour les nombres, aucun format n'est requis. Pour les dates, utilisez le même format que DATE_FORMAT décrit dans Fonctions de date et d'heure. Les paramètres régionaux par défaut sont en-US. Voir les étiquettes de langue prises en charge.

Dans les expressions de pipeline, format_string doit utiliser les codes de format strftime. Sinon, les modèles de format de date pris en charge sont les suivants :

  • yy : Année à deux chiffres
  • yyyy : Année à quatre chiffres
  • M : Mois numérique, comme 1 pour janvier
  • MM : Mois numérique, comme 01 pour janvier
  • MMM : Mois abrégé, comme Jan
  • MMMM : Mois complet, comme Janvier
  • d : Jour numérique du mois, comme 1 pour le 1er juin
  • dd : Jour numérique du mois, comme 01 pour le 1er juin
  • DDD : Jour numérique de l'année de 001 à 366, par exemple 002 pour le 2 janvier
  • F : Jour numérique de la semaine dans un mois, par exemple 3 pour le 3e lundi de juin.
  • EEE ou E : Nom abrégé du jour de la semaine, comme Dim pour dimanche
  • SEEE : Jour désigné de la semaine, comme Dimanche
  • HH : Format de 24 heures, de 00 à 23
  • H : Format de 0 à 23 pour 24 heures
  • hhh : Format de 12 heures, de 01 à 12
  • h : Format de 12 heures, de 1 à 12
  • mm : Minutes de 00 à 59
  • ss : Secondes de 00 à 59
  • SSS : millisecondes de 000 à 999
  • a : AM ou PM
  • z : fuseau horaire, par exemple PDT

Exemple de nombre : TO_CHAR(123) retourne 123

Exemple de date : TO_CHAR(Date '2020-10-30', 'yyyy.MM.dd', 'en-US') retourne la chaîne 2020.10.30. Le premier argument est un objet Date représentant le 30 octobre 2020.

UPPER(string)Retourne une chaîne avec toutes les lettres en majuscules.UPPER('oracle') retourne ORACLE
LPAD(str, len[, pad])Retourne une chaîne avec remplissage à gauche avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.LPAD('ABC', 5, '*') retourne '**ABC'
RPAD(str, len[, pad])Retourne une chaîne avec remplissage à droite avec les caractères spécifiés jusqu'à une certaine longueur. Si le caractère pad est omis, la valeur par défaut est un espace.RPAD('XYZ', 6, '+' ) returns 'XYZ+++'
Fonctions d'opérateur (comparaison)
FonctionDescriptionExemple
CASE WHEN condition1 THEN result1 ELSE result2 ENDRetourne la valeur pour laquelle une condition est satisfaite.CASE WHEN 1 > 0 THEN 'ABC' ELSE 'XYZ' END retourne ABC si 1> 0, sinon retourne XYZ
ANDOpérateur logique AND. Retourne Vrai si les deux opérandes sont vrais, sinon retourne Faux.(x = 10 AND y = 20) retourne "Vrai" si x est égal à 10 et y égal à 20. Si l'un ou l'autre n'est pas vrai, alors "Faux" est retourné
OROpérateur logique OR. Retourne Vrai si l'un ou l'autre opérande est vrai ou si les deux sont vrais, sinon retourne Faux.(x = 10 OR y = 20) retourne "Faux" si x n'est pas égal à 10 et y n'est pas égal à 20. Si l'un ou l'autre est vrai, alors "Vrai" est retourné
NOTOpérateur logique NOT.
LIKEMet en correspondance des modèles de chaîne, si string1 correspond au modèle dans string2.
=Teste l'égalité. Retourne Vrai si expr1 est égal à expr2, sinon retourne Faux.x = 10 retourne "Vrai" lorsque la valeur de x est 10, sinon "Faux" est retourné
!=Teste l'inégalité. Retourne Vrai si expr1 n'est pas égal à expr2, sinon retourne Faux.x != 10 retourne "Faux" si la valeur de x est 10, sinon "Vrai" est retourné
>Teste si une expression est supérieure. Retourne Vrai si expr1 est supérieur à expr2.x > 10 retourne "Vrai" si la valeur de x est supérieure à 10, sinon "Faux" est retourné
>=Teste si une expression est supérieure ou égale. Retourne Vrai si expr1 est supérieur ou égal à expr2.x > =10 retourne "Vrai" si la valeur de x est supérieure ou égale à 10, sinon "Faux" est retourné
<Teste si une expression est inférieure. Retourne Vrai si expr1 est inférieur à expr2.x < 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
<=Teste si une expression est inférieure ou égale. Retourne Vrai si expr1 est inférieur ou égal à expr2.x <= 10 retourne "Vrai" si la valeur de x est inférieure à 10, sinon "Faux" est retourné
||Concatène deux chaînes.'XYZ' || 'hello' retourne 'XYZhello'
BETWEENÉvalue un intervalle.FILTER_1.BANK.BANK_ID BETWEEN 1003 AND 1007
INVérifie si une expression correspond à une liste de valeurs.FILTER_2.ORDERS.ORDER_ID IN (1003, 1007)
Fonctions de création d'ID unique
FonctionDescriptionExemple
NUMERIC_ID()Génère pour chaque rangée un identificateur universel unique qui est un numéro 64 bits.NUMERIC_ID() retourne, par exemple, 3458761969522180096 et 3458762008176885761
ROWID()Génère des nombres monotones croissants de 64 bits.ROWID() retourne par exemple 0, 1, 2 et ainsi de suite
UUID()Génère pour chaque rangée un identifiant universel unique qui est une chaîne de 128 bits.UUID() retourne par exemple 20d45c2f-0d56-4356-8910-162f4f40fb6d
MONOTONICALLY_INCREASING_ID() Génère des entiers uniques monotones croissants de 64 bits, qui ne sont pas des nombres consécutifs. MONOTONICALLY_INCREASING_ID() retourne, par exemple, 8589934592 et 25769803776
Fonctions conditionnelles
FonctionDescriptionExemple
COALESCE(value, value [, value]*)Retourne le premier argument non nul, s'il existe, sinon retourne une valeur nulle.COALESCE(NULL, 1, NULL) retourne 1
NULLIF(value, value)Retourne une valeur nulle si les deux valeurs sont égales, sinon retourne la première valeur.NULLIF('ABC','XYZ') retourne ABC
Fonctions hiérarchiques
FonctionDescriptionExemple
SCHEMA_OF_JSON(string)Analyse une chaîne JSON et en tire le schéma au format LDD.

SCHEMA_OF_JSON('[{\"Zipcode\":704,\"ZipCodeType\":\"STANDARD\",\"City\":\"ORACLECITY\",\"State\":\"OC\"}]') retourne 'ARRAY<STRUCT<City:string,State:string,ZipCodeType:string,Zipcode:bigint>>'

SCHEMA_OF_JSON('[{\"col\":0}]') retourne 'ARRAY<STRUCT<col: BIGINT>>'

FROM_JSON(column, string)

Analyse une colonne contenant une chaîne JSON dans l'un des types suivants, avec le schéma spécifié.

  • Map, avec String comme type de clé
  • Struct
  • Array

FROM_JSON('{\"Zipcode\":704,\"City\":\"ORACLE CITY\"}', 'STRUCT<Zipcode: BIGINT, City: STRING>') retourne une colonne de type Struct avec le schéma spécifié : {704, ORACLE CITY}

FROM_JSON('{\"a\":1, \"b\":0.8}', 'STRUCT<a: BIGINT, b: DOUBLE>') retourne une colonne de type Struct avec le schéma spécifié : {1, 0.8}

TO_JSON(column)Convertit une colonne contenant le type Struct ou Array of Structs, ou Map ou Array of Maps, en chaîne JSON.TO_JSON(TO_STRUCT('s1', TO_ARRAY(1,2,3), 's2', TO_MAP('key', 'value'))) retourne une chaîne JSON {"s1":[1,2,3],"s2":{"key":"value"}}
TO_MAP(string,column[,string,column]*)Crée une colonne de type Map. Les colonnes d'entrée doivent être regroupées en paires clé-valeur. Les colonnes de clé d'entrée ne peuvent pas être nulles et elles doivent toutes avoir le même type de données. Les colonnes de valeur d'entrée doivent toutes avoir le même type de données.

TO_MAP('Ename',Expression_1.attribute1) retourne une colonne de Map : {"ENAME" -> 100}

TO_MAP('block', EXPRESSION_1.MYSOURCE.address.block, 'unit', EXPRESSION_1.MYSOURCE.address.unit) retourne une colonne de type Map : {"block" -> 1,"unit" -> 1}

TO_STRUCT(string,column[,string,column]*)Crée une colonne de type Struct. Les colonnes d'entrée doivent être regroupées en paires clé-valeur.

TO_STRUCT('Ename',Expression_1.attribute1) retourne {100}

TO_STRUCT('Id',Expression_1.attribute1, 'Name', Expression_1.attribute2) retourne {100, "John"}

TO_ARRAY(column[,column]*)Crée une colonne de type Array. Les colonnes d'entrée doivent toutes avoir le même type de données.

TO_Array(Expression_1.attribute1) retourne [100]

TO_ARRAY(EXPRESSION_1.attribute2,EXPRESSION_1.attribute3) retourne ["John","Friend"]

Fonctions d'ordre supérieur

Les opérateurs de flux de données qui prennent en charge la création d'expressions et de types de données hiérarchiques peuvent utiliser des fonctions d'ordre supérieur.

Les opérateurs pris en charge sont les suivants :

  • Regrouper

  • Expression

  • Filtre

  • Jointure

  • Consulter

  • Split

  • Faire pivoter

FonctionDescriptionExemple
TRANSFORM(column, lambda_function)Prend un tableau et une fonction anonyme, et configure un nouveau tableau en appliquant la fonction à chaque élément, et en affectant le résultat au tableau de sortie.Pour un tableau d'entrée de nombres entiers [1, 2, 3], TRANSFORM(array, x -> x + 1) retourne un nouveau tableau de [2, 3, 4].
TRANSFORM_KEYS(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les clés ont le type du résultat de la fonction lambda, et les valeurs ont le type des valeurs de mappage de colonne.Pour un mappage d'entrée avec des clés entières et des valeurs de chaîne de {1 -> 'value1', 2 -> 'value2', 3 -> 'value3'}, TRANSFORM_KEYS(map, (k, v) -> k * 2 + 1) retourne un nouveau mappage de {3 -> 'value1', 5 -> 'value2', 7 -> 'value3'}.
TRANSFORM_VALUES(column, lambda_function)Prend une carte et une fonction avec 2 arguments (clé et valeur), et retourne une carte dans laquelle les valeurs ont le type du résultat des fonctions lambda, et les clés ont le type des clés de carte de colonne. Pour un mappage d'entrée avec des clés de chaîne et des valeurs de chaîne de {'a' -> 'value1', 'b' -> 'value2', 'c' -> 'value3'}, TRANSFORM_VALUES(map, (k, v) -> k || __ '' || v) retourne un nouveau mappage de {'a' -> 'a_value1', 'b' -> 'b_value2', 'c' -> 'c_value3'}.
ARRAY_SORT(array(...), lambda_function)

Seul l'opérateur Expression prend en charge ARRAY_SORT.

Prend un tableau et trie en fonction de la fonction donnée qui prend 2 arguments.

La fonction doit retourner -1, 0 ou 1 selon que le premier élément est inférieur, égal ou supérieur au deuxième élément.

Si la fonction est omise, le tableau est trié dans l'ordre croissant.

array_sort(to_array(5, 6, 1),
                   (left, right) -> CASE WHEN left < right THEN -1
                                         WHEN left > right THEN 1 ELSE 0 END)

Le tableau retourné est le suivant :

[1,5,6]

Opérateur Fonction

Utilisez l'opérateur Fonction pour appeler Oracle Cloud Infrastructure Functions à partir du service d'intégration de données.

Note

Pour les structures de données complexes telles que Map, Array et Composite (Struct), seul le format de sérialisation JSON est actuellement pris en charge.

Avant d'utiliser le service des fonctions pour OCI à partir d'un flux de données dans le service d'intégration de données, assurez-vous de comprendre les dépendances et d'avoir terminé les tâches préalables.

Avant de commencer

La fonction à appeler doit être déployée dans le service des fonctions pour OCI. La fonction peut être écrite dans n'importe quelle langage.

Utilisez la liste de vérification des tâches suivante pour vous assurer que vous disposez de la configuration et des informations requises pour utiliser l'opérateur Fonction avec le service des fonctions pour OCI.

TâcheExigence
Configurer la configuration pour accéder au service des fonctions pour OCI et l'utiliser

Cette rubrique suppose que la location et l'environnement de développement sont déjà configurés pour le déploiement de fonctions dans le service des fonctions pour OCI.

Voir Préparation pour les fonctions.

Seules les fonctions déployées dans le service des fonctions pour OCI peuvent être utilisées avec l'opérateur Fonction dans le service d'intégration de données.

Créer des politiques pour contrôler l'appel et la gestion des fonctions.

Cette rubrique suppose que vous ou l'administrateur de la location avez déjà créé les politiques Oracle Cloud Infrastructure nécessaires. Voir Création de politiques pour contrôler l'accès aux ressources de réseau et aux ressources liées aux fonctions.

Dans un environnement de production, vous pouvez autoriser les utilisateurs à appeler des fonctions dans une application spécifique ou à appeler une fonction spécifique uniquement.

Par exemple, pour autoriser les utilisateurs à appeler des fonctions dans un espace de travail spécifique, entrez les énoncés de politique suivants :

allow any-user to use fn-invocation in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>'}

allow any-user to read fn-function in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>'}

Pour autoriser les utilisateurs à appeler une fonction spécifique dans un espace de travail :

allow any-user to use fn-invocation in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>', target.function.id='<function-ocid>'}

allow any-user to read fn-function in compartment <compartment-name> where ALL {request.principal.type='disworkspace', request.principal.id='<workspace-ocid>', target.function.id='<function-ocid>'}

Voir Contrôle de l'accès pour appeler et gérer des fonctions.

Créez une application dans OCI Functions.

Une application est un regroupement logique de fonctions.

Dans une application, vous indiquez un, deux ou trois sous-réseaux dans lesquels exécuter des fonctions. Les fonctions exécutées dans une application sont isolées des fonctions exécutées dans une autre application.

Voir Création d'applications (dans Fonctions).

Déployer une fonction dans le service des fonctions pour OCI.

Pour que la fonction du service des fonctions pour OCI fonctionne avec l'opérateur de la fonction d'intégration de données dans un flux de données, la fonction ne doit pas lire ni écrire d'identificateur avec un caractère d'espace.

Lorsque vous déployez une fonction dans le service des fonctions pour OCI à l'aide de l'interface de ligne de commande Fn Project, celle-ci est construite en tant qu'image Docker et placée dans un registre Docker spécifié.

Voir Création et déploiement de fonctions.

Collecter les informations nécessaires pour utiliser la fonction déployée avec l'opérateur Fonction.

Lorsque vous ajoutez et configurez un opérateur Fonction dans un flux de données du service d'intégration de données, vous devez connaître les éléments suivants :

  • Compartiment contenant l'application du service des fonctions pour OCI dans laquelle la fonction à utiliser est déployée
  • Application du service des fonctions pour OCI contenant la fonction déployée
  • Nom de la fonction déployée
  • Champs définis dans la fonction
Ajout et configuration d'un opérateur Fonction

Un opérateur Fonction vous permet d'utiliser une fonction déployée dans le service des fonctions pour OCI pour traiter les données d'une source d'entrée. Les types de données primitifs et complexes sont pris en charge.

Spécifiez la forme d'entrée de la fonction, ainsi que les attributs d'entrée et de sortie lus par l'opérateur Fonction. Mappez ensuite manuellement les attributs sources aux attributs d'entrée.

À l'heure actuelle, seul le format de sérialisation JSON est pris en charge pour les structures de données complexes telles que Map, Array et Composite (Struct).

La procédure suivante suppose que vous ayez ajouté et configuré un opérateur Source avec l'entité de données à utiliser avec la fonction.

  1. À partir du panneau Opérateurs, faites glisser un opérateur Fonction sur le canevas.
  2. Avec l'opérateur Fonction en évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Sélectionnez la fonction OCI à utiliser pour cet opérateur. Voir Sélection d'une fonction.
  4. Sélectionnez le format de sérialisation et définissez les données d'entrée et de sortie de la fonction.
  5. Entrez les attributs d'entrée et les attributs de sortie de l'opérateur, ainsi que les valeurs de configuration de la fonction. Voir Ajout d'une propriété d'opérateur Fonction.

    Les attributs d'entrée définissent la forme d'entrée de l'opérateur Fonction (un ou plusieurs attributs entrants sur lesquels la fonction doit travailler. Les attributs d'entrée sont mappés aux attributs entrants de la source de l'entité de données.

    Les valeurs de configuration de la fonction définissent la forme d'entrée de la fonction (un ou plusieurs champs définis dans la fonction). Définissez un champ de fonction avec un nom et une valeur. La valeur d'un champ correspond à un attribut d'entrée. Vous pouvez paramétrer une valeur de configuration de fonction.

    Les attributs de sortie définissent la forme de sortie de l'opérateur Fonction, qui est un ou plusieurs attributs dans lesquels la fonction doit écrire la sortie. Ajoutez un attribut de sortie pour chaque champ de fonction voulu dans la sortie. Les opérateurs en aval suivants peuvent utiliser les attributs de sortie.

    Note

    N'utilisez pas d'espace dans le nom d'identificateur pour un attribut d'entrée, un attribut de sortie ou un champ de fonction. En outre, les noms tels que "Élément", "Clé" et "Valeur" ne sont pas autorisés.
  6. (Facultatif) Sous Propriétés de la fonction, développez Configuration de la fonction pour vérifier les valeurs de configuration de la fonction. Vous pouvez modifier ou configurer une valeur.

    BATCH_SIZE est une configuration de fonction prédéfinie qui représente le nombre de rangées traitées par une fonction à la fois. La valeur par défaut est de 10 000 rangées.

    Pour une valeur de configuration de fonction, vous pouvez :

  7. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  8. Dans l'onglet Mappage, glissez-déposez un attribut de la source d'entité de données vers l'attribut d'entrée correspondant de la fonction pour créer un mappage manuel.
  9. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Les attributs de sortie de la fonction sont ajoutés au jeu de données.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  10. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Sélection d'une fonction

La fonction à utiliser avec un opérateur Fonction doit être déployée dans une application d'Oracle Cloud Infrastructure Functions.

  1. Dans le canevas, sélectionnez l'opérateur Fonction.
  2. Dans l'onglet Détails du panneau Propriétés, pour Fonction OCI, cliquez sur Sélectionner.
  3. Dans le panneau, sélectionnez le compartiment contenant l'application du service des fonctions pour OCI dans laquelle la fonction à utiliser a été déployée.
  4. Sélectionnez l'application du service des fonctions pour OCI qui contient la fonction déployée.
  5. Dans la section Fonction OCI, sélectionnez la fonction.
  6. Sélectionnez OK.
Ajout d'une propriété d'opérateur Fonction

Après avoir sélectionné une fonction déployée, spécifiez les propriétés qui définissent les données d'entrée de la fonction à traiter, les champs de la configuration de la fonction et les données de sortie retournées par la fonction.

Note

N'utilisez pas d'espace dans le nom d'identificateur pour un attribut d'entrée, un attribut de sortie ou un champ de fonction. En outre, les noms tels que "Élément", "Clé" et "Valeur" ne sont pas autorisés.
  1. Sous Propriétés de fonction, sélectionnez Ajouter une propriété.
  2. Dans le panneau, sélectionnez le type de propriété à spécifier.
    • attributs d'entrée : Forme d'entrée pour l'opérateur. Indiquez un ou plusieurs attributs représentant les attributs entrants que la fonction doit traiter. Les attributs d'entrée sont mappés aux attributs entrants de la source de l'entité de données.
    • Fonction configuration : Spécifiez un ou plusieurs champs de fonction qui définissent la forme d'entrée de la fonction. Un champ a un nom et une valeur. La valeur d'un champ spécifie un attribut d'entrée.
    • attributs de sortie : Forme de sortie de l'opérateur. Indiquez zéro attribut ou plus pour représenter la sortie de la fonction après le traitement des données. Ajoutez un attribut de sortie pour chaque champ de fonction voulu dans la sortie. Les opérateurs en aval suivants peuvent utiliser les attributs de sortie.
  3. Entrez un nom pour la propriété dans le champ Identificateur. N'utilisez pas d'espace dans le nom pour un attribut d'entrée, un attribut de sortie ou un champ de fonction.
  4. Sélectionnez le type de données de la propriété.
  5. Pour un type de données primitif, selon le type et le type de données de la propriété que vous spécifiez, définissez les champs suivants et d'autres champs applicables.

    • Longueur : Pour un attribut d'entrée ou de sortie, entrez une longueur. Par exemple, vous spécifiez une longueur pour un type de données numérique ou varchar.
    • Valeur : Pour un champ de fonction, entrez une valeur correspondant à un attribut d'entrée.
  6. Pour un type de données complexe Map, spécifiez la paire clé-valeur pour un élément de mappage. Sélectionnez Ajouter un type de données pour sélectionner le type de données de la clé et le type de données de la valeur.

    • Clé : Effectuez une sélection parmi les types de données primaires uniquement.
    • Valeur : Effectuez une sélection parmi les types de données primitifs et complexes.
  7. Pour un type de données complexe Array, sélectionnez Ajouter un type de données pour spécifier le type de données Élément. Vous pouvez effectuer une sélection parmi les types de données primitifs et complexes.

  8. Pour un type de données Composite (Structure), indiquez un ou plusieurs schémas enfants. Pour ajouter un schéma enfant, sélectionnez le symbole + à côté du nom du schéma parent.

    Dans le panneau Ajouter un champ pour un schéma enfant, entrez l'identificateur et sélectionnez un type de données. Vous pouvez effectuer une sélection parmi les types de données primitifs et complexes. Sélectionnez Ajouter pour ajouter le schéma enfant.

    Sélectionnez à nouveau le symbole + si vous souhaitez ajouter plus d'un schéma enfant au schéma parent.

    Pour modifier ou supprimer un schéma enfant, utilisez le menu Actions (Menu Actions) à la fin de la rangée.

    Vous ne pouvez pas supprimer l'élément de schéma parent.

  9. Dans le panneau Ajouter une propriété, sélectionnez Ajouter.
  10. Répétez les étapes pour ajouter les propriétés dont vous avez besoin pour définir l'entrée, les et la sortie de fonction.

Aplanir l'opérateur

Utilisez l'opérateur Aplatir pour transformer les données hiérarchiques en un format simplifié à utiliser avec d'autres données relationnelles. Le processus d'aplatissement est également connu sous le nom de dénormalisation ou d'anesthésie.

Les formats de fichier hiérarchiques que vous pouvez dénormaliser sont les suivants :

  • JSON et JSON multiligne
  • Avro
  • Parquet

Actuellement, le type de données hiérarchique pris en charge que vous pouvez désactiver est Array. Vous ne pouvez sélectionner qu'un seul noeud de tableau dans un jeu de données hiérarchique à aplanir. La structure de données est aplanie de la racine au noeud Array sélectionné, et présentée dans un format simplifié. Si le jeu de données comporte d'autres noeuds de tableau, vous avez la possibilité de les convertir en chaînes.

Vous pouvez configurer les attributs ou les champs à inclure dans la sortie aplanie en définissant des préférences de projection.

Présentation des préférences de projection

Les préférences de projection sont des paramètres pour le format, le nombre et le type d'attributs projetés à inclure dans la sortie après l'aplanissement des données entrantes.

Le service d'intégration de données fournit quatre paramètres de préférences de projet sélectionnés par défaut, ce qui produit une sortie projetée avec les éléments suivants :

  • Tableaux d'index
  • Tous les attributs jusqu'à l'attribut sélectionné pour l'aplanissement
  • Valeurs nulles pour les attributs qui manquent dans les tableaux suivants
  • Lignage des noms de parent dans les noms d'attribut

Pour comprendre les préférences de projection que vous pouvez configurer, utilisez les rubriques suivantes avec l'exemple de structure de données JSON.

Exemple de structure de données JSON
id
vehicle[]
    make
    model
    insurance{}
        company
        policy_number
    maintenance[]
        date
        description[]
        dealerdetails[]
            servicestation1[]
                dealeraddress[]
                    city
                    state
                    contact
                dealername
            servicestation2[]
                dealeraddress[]
                    city
                    state
                    contact
                dealername
Créer et projeter des index de tableau

Le paramètre de préférence de projection Créer et projeter des index de tableau vous permet de contrôler s'il faut inclure des attributs d'index pour les tableaux dans la sortie aplanie.

L'attribut index représente l'index d'un tableau. Supposons que le tableau soit ["a","b","c"], alors l'index pour "a" est 0, l'index pour "b" est 1 et l'index pour "c" est 2.

Par défaut, le service d'intégration de données crée un attribut avec le suffixe _INDEX pour le noeud de tableau dans lequel vous sélectionnez d'aplanir les données. Le type de données d'un attribut d'index de tableau est Entier.

Les attributs d'index sont également créés pour les noeuds de tableau parents du noeud de tableau sélectionné. L'opération d'aplanissement a une incidence sur tous les noeuds de tableau parent dans la structure hiérarchique, de la racine au noeud sélectionné. Si un noeud de tableau parent touché comporte des tableaux apparentés, les attributs d'index ne sont pas créés pour ces noeuds de tableau apparentés.

Dans l'exemple de structure de données JSON, si vous sélectionnez le tableau dealeraddress sous servicestation2 pour l'aplanissement, le service d'intégration de données crée cinq attributs d'index de tableau : un pour le noeud de tableau sélectionné et quatre pour les noeuds parents touchés par l'opération d'aplanissement.

Après aplatissement, les attributs de la structure simplifiée sont les suivants :

id
vehicle_INDEX
vehicle_make
vehicle_model
vehicle_insurance
    company
    policy_number
vehicle_maintenance_INDEX
vehicle_maintenance_date
vehicle_maintenance_description
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation1
    dealeraddress
        city
        state
        contact
    dealername
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
vehicle_maintenance_servicestation2_dealeraddress_dealername

Aucun attribut d'index de tableau n'est créé pour servicestation1, car le noeud de tableau est un noeud apparenté du noeud parent touché servicestation2. De même, aucun attribut d'index n'est créé pour description, car le noeud de tableau est un noeud apparenté du noeud parent touché dealerdetails.

Si vous ne sélectionnez pas la préférence de projection Créer et projeter des index de tableau, les attributs de la structure simplifiée sont les suivants :

id
vehicle_make
vehicle_model
vehicle_insurance
    company
    policy_number
vehicle_maintenance_date
vehicle_maintenance_description
vehicle_maintenance_servicestation1
    dealeraddress
        city
        state
        contact
    dealername
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
vehicle_maintenance_servicestation2_dealeraddress_dealername
Conserver tous les attributs jusqu'au tableau aplani

Le paramètre de préférence de projection Conserver tous les attributs jusqu'au tableau aplati vous permet de contrôler s'il faut inclure dans la sortie aplati les attributs qui ne font pas partie des tableaux aplati.

Par défaut, le service d'intégration de données affiche tous les attributs de la racine au tableau sélectionné, y compris les tableaux apparentés qui ne sont pas touchés par l'aplanissement.

Dans l'exemple de structure de données JSON, si vous ne sélectionnez pas la préférence de projection Conserver tous les attributs jusqu'au tableau aplati, les attributs de la structure simplifiée sont les suivants :

id
vehicle_INDEX
vehicle_maintenance_INDEX
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact
Produire une rangée unique avec des valeurs nulles pour le tableau parent manquant

Le paramètre de préférence de projection Produire une rangée unique avec des valeurs nulles pour un tableau parent manquant vous permet de contrôler s'il faut ignorer les rangées dont les attributs ne sont pas touchés par l'aplanissement.

L'effet du paramètre Produire une rangée unique avec des valeurs nulles pour un tableau parent manquant n'est visible que dans l'onglet Données. Par défaut, le service d'intégration de données affiche des valeurs nulles pour les attributs qui manquent dans les tableaux suivants.

Par exemple, voici une sortie projetée avec des valeurs nulles :

|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |0 |Laptop |20 |
|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |1 |Charger |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |0 |Mouse |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |1 |Keyboard |1 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |0 |Laptop |20 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |1 |Charger |3 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |0 |Chair |4 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |1 |Lamp |2 |
|Company3|Bellevue|null |true |[...]|0 |4 |123.34 |null |null |null |
|Company4|Kirkland|null |null |null |null |null |null |null |null |null |

Si vous ne sélectionnez pas cette option, les lignes sont ignorées et la sortie projetée est la suivante :

|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |0 |Laptop |20 |
|Company1|Redmond |[...]|true |[...]|0 |1 |123.34 |1 |Charger |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |0 |Mouse |2 |
|Company1|Redmond |[...]|true |[...]|1 |2 |323.34 |1 |Keyboard |1 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |0 |Laptop |20 |
|Company2|Seattle |[...]|false |[...]|0 |4 |123.34 |1 |Charger |3 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |0 |Chair |4 |
|Company2|Seattle |[...]|false |[...]|1 |5 |343.24 |1 |Lamp |2 |
Conserver le lignage des noms de parent dans les noms d'attribut

Le paramètre de préférence de projection Conserver le lignage des noms parents dans les noms d'attribut vous permet de contrôler si les noms parents doivent être inclus dans les noms d'attribut enfants.

Par défaut, le service d'intégration de données crée des noms de noeud enfant avec leurs noms de noeud parent.

Dans l'exemple de structure de données JSON, les attributs avec des noms parents dans la structure simplifiée sont les suivants (en supposant que les tableaux apparentés non touchés par l'aplanissement soient exclus dans la sortie) :

id
vehicle_INDEX
vehicle_maintenance_INDEX
vehicle_maintenance_dealerdetails_INDEX
vehicle_maintenance_servicestation2_INDEX
vehicle_maintenance_servicestation2_dealeraddress_INDEX
vehicle_maintenance_servicestation2_dealeraddress_city
vehicle_maintenance_servicestation2_dealeraddress_state
vehicle_maintenance_servicestation2_dealeraddress_contact

Si vous ne sélectionnez pas la préférence de projection Conserver le lignage des noms parents dans les noms d'attribut, les attributs sont les suivants :

id
vehicle_INDEX
maintenance_INDEX
dealerdetails_INDEX
servicestation2_INDEX
dealeraddress_INDEX
city
state
contact
Ajout et configuration d'un opérateur Aplati

La procédure suivante suppose que vous avez ajouté un opérateur Source et configuré l'opérateur à une source de stockage d'objets avec des types de données complexes, tels qu'un fichier JSON.

  1. Dans le panneau Opérateurs, faites glisser l'opérateur Aplatir sur le canevas et connectez l'opérateur à l'opérateur source.

    L'onglet Détails de l'opérateur Aplatir s'affiche dans le panneau Propriétés.

    Le tableau des attributs présente la structure arborescente des données entrantes. Par défaut, tous les noeuds sont développés. Chaque noeud a un type de données et un chemin tels que VARCHAR et parent1.parent2.node1. Par exemple : vehicle.insurance.company

    Dans le champ de recherche, vous pouvez uniquement rechercher des noeuds de niveau supérieur.

  2. Avec l'opérateur Aplatir en évidence, utilisez l'onglet Détails pour effectuer les opérations suivantes :
    1. Entrez un nom pour l'opérateur dans le champ Identificateur ou laissez le nom tel quel.
    2. Sous Préférences de projection, vérifiez les paramètres. Par défaut, tous les paramètres sont sélectionnés. Décochez la case des paramètres que vous ne souhaitez pas configurer pour cette opération.
    3. Dans les tables d'attributs, cochez la case à côté du noeud de tableau dans lequel vous souhaitez aplanir la structure de données. Sélectionnez ensuite Ajuster les données à l'attribut sélectionné.

      Vous ne pouvez cocher qu'une seule case.

      Après l'aplanissement, le chemin de l'attribut complexe que vous avez sélectionné et mis à plat est affiché au-dessus de la table, à côté de Aplatir par. Par exemple : FLATTEN_1.MYFILE_JSON.vehicle.maintenance.dealerdetails.servicestation2.dealeraddress

    4. (Facultatif) Si applicable dans la structure aplanie, sélectionnez l'icône d'actions à côté d'un noeud de tableau dans la table, puis sélectionnez Convertir le tableau en chaîne. Voir aussi Conversions de tableau.
    5. (Facultatif) Pour annuler l'aplanissement sélectionné à l'étape c, sélectionnez Effacer à côté du chemin Aplatir par. Voir Suppression d'un chemin d'aplanissement.
  3. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, si vous appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar), les attributs sont filtrés en fonction du modèle de nom *_CODE et du type numeric ou varchar.
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  4. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  5. Dans l'onglet Validation, recherchez des avertissements ou des erreurs qui pourraient causer l'échec du flux de données.
Conversion d'autres tableaux en chaînes

Une fois que vous avez sélectionné un attribut complexe pour l'aplanissement, il peut y avoir d'autres noeuds de tableau dans la structure aplatie.

Avec les autres noeuds Array dans une structure aplatie, vous pouvez convertir un Array de types de données primitifs ou un Array de Structs en chaîne. Actuellement, le format pris en charge d'une chaîne de conversion est JSON.

Selon les données, le type de données d'une chaîne de conversion est VARCHAR ou BLOB. Vous pouvez modifier une chaîne de conversion de VARCHAR en CLOB, et inversement de CLOB en VARCHAR.

La procédure suivante suppose que vous avez ajouté un opérateur Aplatir et sélectionné un attribut complexe pour créer une structure de données Aplatir.

  1. Avec l'opérateur Aplatir en évidence sur le canevas du flux de données, allez à l'onglet Détails dans le panneau Propriétés.
  2. Dans la table des attributs, vérifiez que la structure de données est aplanie.

    À côté de Aplatir par, se trouve le chemin de l'attribut complexe que vous avez sélectionné pour l'aplanissement. Par exemple : FLATTEN_1.MYFILE_JSON.vehicle.maintenance.dealerdetails.servicestation2.dealeraddress

    L'icône Actions (trois points) s'affiche pour les noeuds de tableau disponibles dans la structure aplatie pour la conversion.

  3. S'il y a lieu, sélectionnez l'icône Actions à côté d'un noeud de tableau, puis sélectionnez Convertir le tableau en chaîne.

    Exemples d'attributs convertis :

    Type de tableau Attribut converti

    Tableau de chaînes

    "goods": [
        "laptop",
        "charger",
        "chair"
      ]

    ["laptop","charger","chair"]

    Tableau de nombres

    "numbers": [
        234,
        455,
        98
      ]

    [234,455,98] 
Afficher, modifier et supprimer des conversions de tableau

La procédure suivante suppose que vous avez sélectionné un noeud Array à convertir en chaîne, le cas échéant.

  1. Avec l'opérateur Aplatir en évidence sur le canevas du flux de données, allez à l'onglet Détails dans le panneau Propriétés.
  2. Sélectionnez Voir les conversions de tableau.
  3. Dans le panneau Conversions de tableau qui s'affiche, vérifiez les attributs complexes qui ont été convertis en chaîne.
  4. Pour modifier le type de données d'une chaîne de conversion, sélectionnez une action de mise à jour à partir de l'icône Actions. Selon le type de données, sélectionnez Mettre à jour le type de données à CLOB ou Mettre à jour le type de données à VARCHAR.
  5. Effectuez l'une des actions suivantes pour supprimer les conversions :
    • Pour supprimer une seule conversion, cochez la case à côté d'une conversion, puis sélectionnez Supprimer. Vous pouvez également sélectionner Supprimer dans l'icône d'actions pour une conversion.
    • Pour supprimer toutes les conversions, cochez la case en haut de la liste (à côté de l'en-tête Conversions de tableau), puis sélectionnez Supprimer.

    Une conversion sélectionnée est supprimée et l'attribut précédemment converti est rétabli à sa structure hiérarchique et à son type de données initiaux.

Suppression d'un chemin d'aplanissement

Lors de la configuration d'un opérateur Aplatir sur un flux de données, vous pouvez annuler un aplatissement en effaçant le chemin Aplatir par.

  1. Avec l'opérateur Aplatir en évidence sur le canevas du flux de données, allez à l'onglet Détails dans le panneau Propriétés.
  2. Au-dessus de la table d'attributs, à côté du chemin Aplatir par, sélectionnez Effacer.
  3. Dans la boîte de dialogue Effacer l'aplanissement qui s'affiche, confirmez le nom de l'attribut complexe que vous souhaitez annuler l'aplanissement, puis sélectionnez Effacer pour continuer.

    En supprimant l'aplanissement, la structure de données d'origine avant l'aplanissement est restaurée :

    • S'il est créé, tous les attributs avec le suffixe _INDEX sont supprimés.
    • Si les noms de parent ont été supprimés des noms de noeud enfant, la hiérarchie de lignage des noms parent-enfant est restaurée.
    • Si certains tableaux ont été convertis en chaînes, les conversions de tableau sont supprimées et les attributs précédemment convertis sont rétablis dans leur structure hiérarchique et leur type de données d'origine.

Opérateur de fonction de table

Utilisez l'opérateur de fonction de table pour ajouter des fonctions de table qui renvoient des données sous forme de tables.

Actuellement, seules les fonctions de table intégrées peuvent être sélectionnées dans une liste. Les fonctions de table fournies par l'opérateur de fonction de table comprennent le cube, l'analyse de tabulation croisée, les éléments fréquents, le regroupement et le SQL Spark. Chaque fonction de table intégrée comporte des champs prédéfinis que vous configurez pour renvoyer la collection de données souhaitée. La logique complexe peut être consolidée en une seule fonction qui renvoie des ensembles de données spécifiques. La paramétrisation des champs permet une flexibilité dans l'ajustement de la logique.

Un opérateur de fonction de table peut être connecté à n'importe quel autre opérateur dans un flux de données. Ainsi, un opérateur de fonction de table peut être utilisé en tant que source de données, opérateur de flux intermédiaire et cible.

Ajout d'un opérateur de fonction de table
  1. À partir du panneau Opérateurs, glissez-déposez un opérateur Fonction de table sur le canevas.
  2. Avec l'opérateur En évidence, dans l'onglet Détails du panneau Propriétés, entrez un nom dans le champ Identificateur ou laissez le nom tel quel.
  3. Pour Type de transformation, sélectionnez la fonction de table à utiliser pour cet opérateur.
  4. Sous Configurer les paramètres, procédez comme suit :
    1. Configurez la logique de base de la fonction de table en spécifiant les détails de la fonction. Seules des clés d'entrée de fonction spécifiques et leurs valeurs peuvent être configurées, comme indiqué dans l'onglet Détails de la fonction de table sélectionnée.
    2. (Facultatif) Pour paramétrer une paire clé-valeur d'entrée, sélectionnez Affecter un paramètre pour utiliser des paramètres. Voir Affectation d'un paramètre.
    3. Après avoir rempli les champs d'entrée, sélectionnez Calculer la forme de sortie.

      Le service d'intégration de données génère les champs de sortie à l'aide des détails de la logique de base et matérialise les formes d'entrée/sortie. Utilisez l'onglet Attributs pour voir les formes d'entrée/sortie.

  5. Dans l'onglet Attributs, sélectionnez l'option appropriée pour voir les attributs entrants ou les attributs de sortie. Les attributs entrants sont liés à l'opérateur du côté gauche. Les attributs de sortie sont liés à l'opérateur du côté droit et servent d'entrée pour l'opérateur suivant.

    Vous pouvez sélectionner des attributs individuels ou utiliser les icônes de filtre pour filtrer la liste des attributs. Appliquez ensuite des règles d'exclusion en masse aux attributs sélectionnés ou filtrés.

    • Sélectionnez l'icône de filtre dans la colonne Nom pour filtrer les attributs par modèle de nom. Dans le champ Filtre, entrez une expression rationnelle simple. Vous pouvez utiliser les caractères génériques ? et * du modèle regex.
    • Sélectionnez l'icône de filtre dans la colonne Type pour filtrer les attributs par type de données. Utilisez le menu pour sélectionner le type à utiliser comme filtre.
      Note

      Vous ne pouvez appliquer qu'un seul filtre de modèle de nom, mais plusieurs filtres de type à la fois. Par exemple, pour filtrer sur le modèle de nom *_CODE et sur le type numeric ou varchar, appliquez un filtre de modèle de nom (*_CODE) et deux filtres de type (numeric, varchar).
    • Utilisez le menu Actions pour appliquer des règles d'exclusion en masse aux attributs sélectionnés ou aux attributs filtrés. Sélectionnez Exclure en fonction de la sélection ou Exclure en fonction du filtre appliqué.
    • Sélectionnez Voir les règles pour ouvrir le panneau Règles. Vous pouvez voir et gérer les règles qui ont été appliquées à l'entité de données. Par défaut, la première règle du panneau Règles inclut tout.

    Un type complexe est présenté comme ARRAY (data type), COMPOSITE ou MAP (key type, value type). Voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge pour les types complexes.

  6. Dans l'onglet Données, consultez un échantillonnage des données, basé sur la configuration de l'opérateur et sur toutes les règles que vous avez appliquées dans l'onglet Attributs.

    Le profil de données n'apparaît pas pour les attributs de données complexes. Pour les attributs de données complexes, pour afficher la hiérarchie de la structure de données dans une structure simplifiée, sélectionnez les données complexes affichées. Par exemple, [...] or {…}.

    Vous pouvez appliquer des transformations à des attributs individuels ou effectuer une transformation en masse sur un groupe d'attributs.

    Pour les entités avec des types de données hiérarchiques, voir Types de données hiérarchiques pour plus d'informations sur les éléments pris en charge.

  7. Dans l'onglet Validation, recherchez les avertissements ou les erreurs qui pourraient causer l'échec de votre flux de données.
Présentation des fonctions de table

Voici la liste des fonctions de table intégrées prises en charge par l'opérateur de fonction de table.

Mémoire cache

Conserve et met en cache un jeu de données en fonction du stockage de mémoire indiqué level.

Retourne un nouveau jeu de données dans le jeu de données distribué résilient (RDD) mis en cache.

Paramètre Description
level

Mémoire de stockage à utiliser :

MEMORY_ONLY : Stockage en tant qu'objets Java désérialisés dans la JVM. Si la mémoire est insuffisante, certaines partitions RDD ne sont pas mises en cache, mais sont recalculées au besoin.

MEMORY_AND_DISK : Stockage en tant qu'objets Java désérialisés dans la JVM. Si la mémoire est insuffisante, certaines partitions RDD sont stockées sur le disque et lues à partir du disque au besoin.

MEMORY_ONLY_SER : Stockage en tant qu'objets Java désérialisés.

MEMORY_AND_DISK_SER : Stockage en tant qu'objets Java désérialisés. Les partitions qui ne correspondent pas sont stockées sur le disque.

DISK_ONLY : Stocker les partitions RDD uniquement sur disque.

MEMORY_ONLY_2, MEMORY_AND_DISK_2, etc : Similaire aux autres niveaux, mais chaque partition est répliquée sur deux noeuds de grappe.

Analyse de tabulation croisée

Calcule une table de fréquence par paire ou une table d'éventualité à partir de valeurs distinctes des deux colonnes données.

Le nombre de valeurs distinctes pour chaque colonne doit être inférieur à 1e4.

Renvoie une structure de données qui contient la table d'éventualité. Dans le tableau des contingences :

  • Le nom de la première colonne est col1_col2, où col1 est la première colonne et col2 est la deuxième colonne avant la transformation. La première colonne de chaque rangée est les valeurs distinctes de col1.
  • Les autres noms de colonne sont les valeurs distinctes de col2.
  • Les comptages sont retournés en tant que type long.
  • Le nombre de paires sans occurrences est égal à zéro.
  • Le nombre maximal de paires non nulles est 1e6.
  • Les éléments nuls sont remplacés par null.
Paramètre Description
col1

Nom de la première colonne. Reportez-vous à la note qui suit ce tableau pour connaître les limitations.

Les éléments distincts de col1 font le premier élément de chaque rangée dans la structure de données retournée.

col2

Nom de la deuxième colonne. Reportez-vous à la note qui suit ce tableau pour connaître les limitations.

Les éléments distincts de co2 définissent les noms de colonne dans la structure de données retournée.

Note

Seuls les caractères suivants sont autorisés dans un nom de colonne :

  • lettres minuscules et majuscules a-z A-Z
  • chiffres 0-9
  • trait de soulignement _
Exemple

Supposons que col1 soit age et que col2 soit salary.

Avant la transformation :

+---+------+
|age|salary|
+---+------+
|1  |100   |
|1  |200   |
|2  |100   |
|2  |100   |
|2  |300   |
|3  |200   |
|3  |300   |
+---+------+

Après transformation :

+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2         |2  |0  |1  |
|1         |1  |1  |0  |
|3         |0  |1  |1  |
+----------+---+---+---+
Cube

Génère un cube multidimensionnel de toutes les combinaisons possibles à l'aide de la liste de colonnes donnée et des calculs dans les expressions de fonction d'agrégation données.

Les fonctions d'agrégation suivantes sont prises en charge dans les expressions :

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Retourne une structure de données après la transformation du cube.

Paramètre Description
cubeColumns

Liste des colonnes, séparées par des virgules, permettant de générer le cube multidimensionnel.

aggExpressions

Expressions de fonction d'agrégation à effectuer sur les colonnes.

Par exemple : salary -> avg, age -> max

Exemple

Avant la transformation :

+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng       |A    |local  |1000  |10 |
|Art       |B    |foreign|2000  |11 |
|Sport     |C    |local  |1500  |13 |
|Eng       |A    |foreign|800   |19 |
|Art       |A    |foreign|3000  |30 |
|Eng       |E    |foreign|1000  |21 |
|Art       |D    |local  |1000  |32 |
|Sport     |C    |local  |1000  |28 |
+----------+-----+-------+------+---+

Si cubeColumns a la valeur department, region et que aggExpressions a la valeur salary -> avg, age -> max (calculer le salaire moyen et l'âge maximal), le cube après transformation est :

+----------+-------+-----------------+--------+
|department|region |avg(salary)      |max(age)|
+----------+-------+-----------------+--------+
|Eng       |foreign|900.0            |21      |
|Sport     |null   |1250.0           |28      |
|Art       |null   |2000.0           |32      |
|Eng       |null   |933.3333333333334|21      |
|null      |local  |1125.0           |32      |
|Art       |foreign|2500.0           |30      |
|null      |foreign|1700.0           |30      |
|Eng       |local  |1000.0           |10      |
|null      |null   |1412.5           |32      |
|Sport     |local  |1250.0           |28      |
|Art       |local  |1000.0           |32      |
+----------+-------+-----------------+--------+
Génération de données

Génère des données synthétiques à l'aide du format de fichier et du contenu indiqués. Les formats de fichier pris en charge sont les suivants :

  • CSV
  • JSON

Retourne une entité de données. La source de données synthétique peut être utilisée dans les tests d'unité de pipeline où les données réelles ne sont pas utilisées ou déplacées.

Paramètre Description
format

Type du fichier. Les valeurs prises en charge sont les suivantes :

  • CSV
  • JSON
content

Contenu du fichier pour le format indiqué.

Exemple

Exemple de contenu CSV :

co1,co2,co3
1,B,3
A,2,C

Résultat de la génération des données :

+---+---+---+
|co1|co2|co3|
+---+---+---+
|1  |B  |3  |
+---+---+---+
|A  |2  |C  |
+---+---+---+
Déduplication

Recherche les doubles dans la liste de colonnes indiquée et retourne un nouveau jeu de données avec les rangées en double supprimées.

Paramètre Description
columns

Nom de colonne ou liste de noms de colonne séparés par des virgules.

Exemple

Avant la transformation :

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|1  |3  |
|2  |4  |
+---+---+

Si columns est a, le jeu de données après la transformation est :

+---+---+
|a  |b  |
+---+---+
|1  |2  |
|3  |4  |
|2  |4  |
+---+---+
Articles fréquents

Recherche les éléments fréquents dans la liste de colonnes ou de colonnes donnée à l'aide de la fréquence minimale indiquée.

L'algorithme de comptage d'éléments fréquents proposé par Karl et al. est utilisé pour trouver des éléments fréquents. Les faux positifs sont possibles.

Renvoie une structure de données avec un tableau d'éléments fréquents pour chaque colonne.

Paramètre Description
freqItems

Nom de colonne ou liste de noms de colonne séparés par des virgules pour lesquels vous voulez rechercher des éléments fréquents.

support

Fréquence minimale pour qu'un élément soit considéré comme fréquent.

La valeur doit être supérieure à 1e-4 (valeur décimale de 0.0001).

Par exemple, 0.6 représente 60 %. Autrement dit, un élément qui apparaît dans au moins 60 % des lignes est un élément fréquent.

Exemple

Avant la transformation :

+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
|      1|         apple|
|      2|        banana|
|      3|         apple|
|      4|        orange|
|      5|        banana|
|      6|        banana|
|      7|         apple|
+-------+--------------+

Si freqItems est favorite_fruit et support est 0.6, la structure de données retournée après la transformation est :

+------------------------+
|favorite_fruit_freqItems|
+------------------------+
|                [banana]|
+------------------------+
Na Drop

Supprime les rangées contenant des valeurs nulles ou NaN dans la colonne ou la liste de colonnes indiquée.

Renvoie une structure de données qui exclut les lignes.

Paramètre Description
how

Comment déterminer si une ligne doit être supprimée. Les valeurs prises en charge sont les suivantes :

  • any : Supprimez la rangée qui contient des valeurs nulles ou NaN dans cols spécifié.
  • all : Déposez la rangée uniquement si chaque valeur cols spécifiée est nulle ou NaN pour cette rangée.

Le paramètre how est ignoré si le paramètre minNonNulls est spécifié.

cols

Nom de colonne ou liste de noms de colonne séparés par des virgules.

minNonNulls

Nombre minimal de valeurs non nulles et non NaN qu'une rangée peut contenir.

Supprime les lignes qui contiennent moins que le minimum spécifié.

Le paramètre minNonNulls remplace le paramètre how.

Exemple

Avant la transformation :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si how est any et cols est name, la structure de données retournée après la transformation est :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Lorsque vous utilisez le paramètre how avec la valeur all, une rangée n'est supprimée que si toutes ses valeurs sont nulles. Par exemple, avant la transformation :

+----+--------+----+
|  id|    name| age|
+----+--------+----+
|   1|John Doe|  30|
|   2|    null|null|
|   3|Jane Doe|  25|
|   4|Jake Doe|null|
|null|    null|null|
+----+--------+----+

Après transformation :

+---+--------+----+
| id|    name| age|
+---+--------+----+
|  1|John Doe|  30|
|  2|    null|null|
|  3|Jane Doe|  25|
|  4|Jake Doe|null|
+---+--------+----+
Remplissage Na

Remplace les valeurs nulles et retourne une structure de données à l'aide des valeurs remplacées.

Paramètre Description
replacement

Mappage clé-valeur à utiliser pour remplacer les valeurs nulles. La clé est un nom de colonne. La valeur est une valeur de remplacement.

La clé indique la valeur de remplacement. Par exemple : name -> Tom signifie remplacer les valeurs nulles dans la colonne name par Tom.

Une valeur de remplacement est versée au type de données de la colonne. Une valeur de remplacement doit être du type suivant :

  • Int
  • Long
  • Variable
  • Double
  • Chaîne
  • Boolean
Exemple

Avant la transformation :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si la mappe clé-valeur est la suivante :

id -> 3

name -> unknown

age -> 10

Après transformation :

+---+-------+---+
|id |name   |age|
+---+-------+---+
|1  |Alice  |25 |
|2  |unknown|28 |
|3  |Bob    |10 |
|4  |Charlie|30 |
+---+-------+---+
Na - Remplacer

Remplace une valeur par une autre valeur dans la ou les colonnes indiquées en mettant en correspondance les clés dans le mappage de clé et de valeur de remplacement indiqué.

Retourne une nouvelle structure de données qui contient la transformation remplacée.

Paramètre Description
cols

Nom de colonne ou liste de noms de colonne séparés par des virgules sur laquelle appliquer les valeurs de remplacement.

Si cols est *, le remplacement est appliqué à toutes les colonnes String, Numeric ou Boolean.

replacement

Mappage clé-valeur de remplacement à utiliser. La clé est une valeur à remplacer. La valeur est la valeur de remplacement. La valeur de mappage peut avoir des valeurs nulles.

La clé indique la valeur de remplacement. Par exemple : Alice -> Tom signifie remplacer Alice par Tom.

La paire clé-valeur de remplacement doit avoir le même type. Seuls les types suivants sont pris en charge :

  • Boolean
  • Double
  • Chaîne
Exemple

Avant la transformation :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Alice  |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+

Si cols est name et replacement est Alice -> Tom, la structure de données après la transformation est :

+----+-------+----+
|id  |name   |age |
+----+-------+----+
|1   |Tom    |25  |
|2   |null   |28  |
|null|Bob    |null|
|4   |Charlie|30  |
+----+-------+----+
Répartition

Divise un jeu de données par les colonnes indiquées en un nombre spécifié de partitions.

Retourne un nouveau jeu de données partitionné par hachage. Le nombre exact de partitions spécifié est retourné.

Paramètre Description
partitionColumns

Nom de colonne ou liste de noms de colonne séparés par des virgules par lesquels le jeu de données est partitionné.

numberOfPartitions

Nombre de partitions à créer.

Regroupement

Génère un regroupement multidimensionnel des combinaisons possibles à l'aide de la liste de colonnes donnée et des calculs dans les expressions de fonction d'agrégation données.

Les fonctions d'agrégation suivantes sont prises en charge dans les expressions :

  • AVG
  • COUNT
  • MEAN
  • MAX
  • MIN
  • SUM

Retourne une structure de données après la transformation de regroupement.

Paramètre Description
rollupColumns

Liste des colonnes, séparées par des virgules, permettant de générer le regroupement multidimensionnel.

aggExpressions

Expressions de fonction d'agrégation à effectuer sur les colonnes.

Par exemple : salary -> avg, age -> max

Exemple

Avant la transformation :

+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng       |A    |local  |1000  |10 |
|Art       |B    |foreign|2000  |11 |
|Sport     |C    |local  |1500  |13 |
|Eng       |A    |foreign|800   |19 |
|Art       |A    |foreign|3000  |30 |
|Eng       |E    |foreign|1000  |21 |
|Art       |D    |local  |1000  |32 |
|Sport     |C    |local  |1000  |28 |
+----------+-----+-------+------+---+

Si rollupColumns a la valeur department, region et que aggExpressions a la valeur salary -> avg, age -> max (calculer le salaire moyen et l'âge maximal), le regroupement après transformation est :

+----------+-------+-----------------+--------+
|department|region |avg(salary)      |max(age)|
+----------+-------+-----------------+--------+
|Eng       |foreign|900.0            |21      |
|Sport     |null   |1250.0           |28      |
|Art       |null   |2000.0           |32      |
|Eng       |null   |933.3333333333334|21      |
|Art       |foreign|2500.0           |30      |
|Eng       |local  |1000.0           |10      |
|null      |null   |1412.5           |32      |
|Sport     |local  |1250.0           |28      |
|Art       |local  |1000.0           |32      |
+----------+-------+-----------------+--------+
Spark SQL

Exécute des interrogations SQL Spark sur les données entrantes, en créant d'abord des vues temporaires à l'aide des noms de table indiqués.

Paramètre Description
SQL

Énoncé ou script SQL à exécuter.

Exemple : select * from table1

tableName

Nom de table ou liste de noms de table séparés par des virgules par laquelle Spark crée des tables temporaires.

Exemple : table1, table2

Échantillonnage stratifié

Génère un échantillon stratifié sans remplacement en fonction de la fraction d'échantillonnage donnée pour chaque strate.

Renvoie une nouvelle structure de données qui représente l'échantillon stratifié.

Paramètre Description
strata_col

Colonne qui définit les strates.

fractions

Fraction d'échantillonnage pour chaque strate, de 0.0 à 1.0.

Par exemple, 0.1 retourne 10 % des rangées et 1.0 retourne 100 % des rangées.

Si aucune fraction n'est spécifiée, zéro est supposé.

sample_size

Si fractions n'est pas spécifié, spécifiez une partie du jeu de données à échantillonner, de 0.0 à 1.0.

seed

Utilisez un nombre aléatoire dans seed pour retourner le même échantillon à chaque fois, en gardant le résultat cohérent.

Exemple

Avant la transformation :

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  2|    1|
|  2|    1|
|  2|    3|
|  3|    2|
|  3|    3|
+---+-----+

Si strata_col est key et que fractions est le suivant :

1 -> 1.0, 3 -> 0.5

Après transformation :

+---+-----+
|key|value|
+---+-----+
|  1|    1|
|  1|    2|
|  3|    2|
+---+-----+
Sommaire

Calcule les statistiques fournies pour les colonnes numériques et de chaîne.

Si aucune statistique n'est fournie, toutes les données suivantes sont calculées :

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • quartiles approximatifs (percentiles à 25 %, 50 % et 75 %)
  • MAX
Paramètre Description
statistics

Une liste séparée par des virgules de statistiques.

Les valeurs prises en charge sont les suivantes :

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • un ou plusieurs centiles approximatifs arbitraires spécifiés en tant que pourcentage (par exemple, 75%)
  • MAX

Exemple : count, mean, stddev, min, 27%, 41%, 95%, max

Exemple

Avant la transformation :

+----------+------+-----------------+--------+
|department|gender|avg(salary)      |max(age)|
+----------+------+-----------------+--------+
|Eng       |female|900.0            |21      |
|Sport     |null  |1250.0           |28      |
|Art       |null  |2000.0           |32      |
|Eng       |null  |933.3333333333334|21      |
|Art       |female|2500.0           |30      |
|Eng       |male  |1000.0           |10      |
|null      |null  |1412.5           |32      |
|Sport     |male  |1250.0           |28      |
|Art       |male  |1000.0           |32      |
+----------+------+-----------------+--------+

Supposons que statistics soit count, mean, stddev, min, 27%, 41%, 95%, max.

Après transformation :

+-------+----------+-----+------+----------------+----------------+
|summary|department|group|gender|salary          |age             |
+-------+----------+-----+------+----------------+----------------+
|count  |8         |8    |8     |8               |8               |
|mean   |null      |null |null  |1412.5          |20.5            |
|stddev |null      |null |null  |749.166203188585|8.76682056718072|
|min    |Art       |A    |female|800             |10              |
|27%    |null      |null |null  |1000            |13              |
|41%    |null      |null |null  |1000            |19              |
|95%    |null      |null |null  |3000            |32              |
|max    |Sport     |E    |male  |3000            |32              |
+-------+----------+-----+------+----------------+----------------+