Ensemble DBMS_CLOUD_PIPELINE

L'ensemble DBMS_CLOUD_PIPELINE vous permet de créer des pipelines de données pour le chargement et l'exportation de données dans le nuage. Ce paquetage prend en charge le chargement incrémentiel continu des données des fichiers du magasin d'objets dans la base de données. DBMS_CLOUD_PIPELINE prend également en charge l'exportation incrémentielle continue des données de table ou des résultats d'interrogation de la base de données vers le magasin d'objets en fonction d'une colonne d'horodatage.

Conditions requises

En tant que développeur, vous pouvez utiliser des procédures DBMS_CLOUD avec des bases de données Autonomous Database déployées sur Oracle Public Cloud, Multicloud ou Exadata Cloud@Customer.

Selon le choix de déploiement, les préalables suivants doivent être satisfaits pour utiliser les procédures DBMS_CLOUD avec les fournisseurs de services Amazon S3, Azure Blob Storage et Google Cloud Storage.

Une connectivité sortante doit avoir été configurée à l'aide d'une passerelle NAT par l'administrateur de votre parc, comme décrit ci-dessous :
  • Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources Autonomous Database en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.
  • Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité de trafic sortant à chaque sous-réseau (dans le VCN) où résident des ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique de votre instance Azure AD :
    1. Allez à la page Détails du sous-réseau correspondante.
    2. Dans l'onglet informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage.
    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
      • Destination : 0.0.0.0/0
      • Type de cible : Passerelle NAT
      • Target : Nom de la passerelle NAT que vous venez de créer dans le VCN

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle de routage avec ces caractéristiques.

    4. Retournez à la page Détails du sous-réseau.
    5. Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité.
    6. Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
    7. Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
      • Type de destination : CIDR
      • Destination : 0.0.0.0/0
      • Protocole IP : TCP
      • Intervalle de ports sources : 443
      • Intervalle de ports de destination : Tout

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de trafic sortant et ajoutez une règle de trafic sortant avec ces caractéristiques.

Les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services en nuage.

Ces paramètres sont définis par l'administrateur de votre parc lors de la création de l'infrastructure Exadata Cloud@Customer, comme décrit dans Utilisation de la console pour provisionner le service Exadata Database sur Cloud@Customer.

Note :

La configuration réseau, y compris le mandataire HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata ait l'état Activation requise. Une fois activé, vous ne pouvez pas modifier ces paramètres.

La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.

Sommaire des sous-programmes DBMS_CLOUD_PIPELINE

Ce tableau résume les sous-programmes inclus dans l'ensemble DBMS_CLOUD_PIPELINE.

Sous-programme Description

Procédure CREATE_PIPELINE

Crée un nouveau pipeline de données.

Procédure DROP_PIPELINE

Supprime un pipeline de données existant.

Procédure RESET_PIPELINE

Réinitialise l'état de suivi d'un pipeline de données. Utilisez le pipeline de réinitialisation pour redémarrer le pipeline à partir de l'état initial du chargement ou de l'exportation de données. Facultativement, la réinitialisation du pipeline peut épurer les données dans la base de données ou dans le magasin d'objets, selon le type de pipeline.

Procédure RUN_PIPELINE_ONCE

Exécute une exécution sur demande du pipeline dans la session en avant-plan courante, au lieu d'une tâche programmée.

Procédure SET_ATTRIBUTE

Définit les attributs de pipeline. Il existe deux procédures surchargées, l'une pour définir un seul attribut et l'autre pour définir plusieurs attributs à l'aide d'un document JSON de paires nom/valeur d'attribut

Procédure START_PIPELINE

Démarre le pipeline de données. Lorsqu'un pipeline est démarré, l'opération de pipeline s'exécute en continu dans une tâche programmée en fonction de l'intervalle configuré dans les attributs de pipeline.

Procédure STOP_PIPELINE

Arrête le pipeline de données. Lorsqu'un pipeline est arrêté, aucune tâche future n'est programmée pour le pipeline.

Procédure CREATE_PIPELINE

La procédure crée un nouveau pipeline de données.

Syntaxe

DBMS_CLOUD_PIPELINE.CREATE_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      pipeline_type        IN   VARCHAR2,
      attributes           IN   CLOB        DEFAULT NULL,
      description          IN   VARCHAR2    DEFAULT NULL
);

Paramètres

Paramètre Description

pipeline_name

Indique le nom du pipeline. Le nom du pipeline doit respecter les règles d'attribution de nom des identificateurs SQL Oracle. Pour plus d'informations, voir Identificateurs dans Informations de référence sur le langage PL/SQL pour Oracle Database Database ou Informations de référence sur le langage PL/SQL pour Oracle Database 23ai.

Ce paramètre est obligatoire.

pipeline_type

Indique le type de pipeline.

Valeurs valides : LOAD, EXPORT

Ce paramètre est obligatoire.

attributes

Attributs de pipeline au format JSON.

Valeur par défaut : NULL

Voir DBMS_CLOUD_PIPELINE Attributs pour plus d'informations.

description

Description du pipeline.

Valeur par défaut : NULL

Procédure DROP_PIPELINE

La procédure supprime un pipeline de données existant. Si un pipeline a été démarré, il doit être arrêté avant d'être supprimé.

Syntaxe

DBMS_CLOUD_PIPELINE.DROP_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       force                IN   BOOLEAN DEFAULT FALSE
 );

Paramètres

Paramètre Description

pipeline_name

Spécifie un nom de pipeline.

Ce paramètre est obligatoire.

force

Déposez de force un pipeline, même s'il est en état de démarrage.

Valeurs valides : TRUE, FALSE

Valeur par défaut : FALSE

Note d'utilisation

  • Pour supprimer un pipeline ayant l'état Démarré, réglez le paramètre force à TRUE.

Procédure RESET_PIPELINE

Réinitialise l'état de suivi d'un pipeline de données. Utilisez le pipeline de réinitialisation pour redémarrer le pipeline à partir de l'état initial du chargement ou de l'exportation de données. Facultativement, la réinitialisation du pipeline peut épurer les données dans la base de données ou dans le magasin d'objets, selon le type de pipeline. Un pipeline de données doit être à l'état arrêté pour pouvoir le réinitialiser.

Syntaxe

DBMS_CLOUD_PIPELINE.RESET_PIPELINE(
       pipeline_name        IN   VARCHAR2,
       purge_data           IN   BOOLEAN DEFAULT FALSE
 );

Paramètres

Paramètre Description

pipeline_name

Spécifie un nom pour le pipeline.

Ce paramètre est obligatoire.

purge_data

L'épuration des données s'applique à un pipeline de chargement ou à un pipeline d'exportation :

  • Pour un pipeline de chargement, lorsque TRUE, tronquez les données dans la table de base de données.

  • Pour un pipeline d'exportation, lorsque TRUE, supprimez les fichiers dans l'emplacement du magasin d'objets.

Valeurs valides : TRUE, FALSE

Valeur par défaut : FALSE

Notes d'utilisation

  • Un pipeline de données doit être à l'état arrêté pour pouvoir le réinitialiser. Voir Procédure STOP_PIPELINE pour plus d'informations.

  • Pour un pipeline de chargement, la réinitialisation du pipeline efface l'enregistrement des fichiers chargés par le pipeline. Lorsque vous appelez START_PIPELINE ou RUN_PIPELINE_ONCE après avoir réinitialisé un pipeline de chargement, celui-ci répète le chargement de données et inclut tous les fichiers présents dans l'emplacement du magasin d'objets.

    Lorsque purge_data est réglé à TRUE, DBMS_CLOUD_PIPELINE.RESET_PIPELINE effectue les opérations suivantes :

    • Tronque les données de la table de base de données du pipeline que vous spécifiez avec l'attribut table_name.

    • Supprime la table de statut du pipeline, ainsi que la table de fichiers défectueux et la table d'erreurs du pipeline (s'ils existent).

  • Pour un pipeline d'exportation, la réinitialisation du pipeline efface les dernières données suivies dans la table de base de données. Lorsque vous appelez START_PIPELINE ou RUN_PIPELINE_ONCE après la réinitialisation d'un pipeline d'exportation, le pipeline répète l'exportation des données de la table ou de l'interrogation.

    Lorsque purge_data est réglé à TRUE, DBMS_CLOUD_PIPELINE.RESET_PIPELINE supprime les fichiers existants dans l'emplacement du magasin d'objets spécifié avec l'attribut location.

Procédure RUN_PIPELINE_ONCE

Cette procédure exécute une exécution à la demande du pipeline dans la session en avant-plan courante, au lieu d'une exécution dans une tâche programmée. Utilisez DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE pour tester un pipeline avant de le démarrer en tant que tâche continue.

Syntaxe

DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE(
       pipeline_name  IN  VARCHAR2
);

Paramètres

Paramètre Description

pipeline_name

Indique le nom du pipeline à exécuter.

Ce paramètre est obligatoire.

Notes d'utilisation

  • Après avoir exécuté un test d'un pipeline, vous pouvez réinitialiser l'état du pipeline à l'aide de DBMS_CLOUD_PIPELINE.RESET_PIPELINE. Cela vous permet de réinitialiser l'état du pipeline avant de démarrer le pipeline dans une tâche programmée.

  • Si un pipeline est à l'état Démarré, il ne peut pas être exécuté dans la session en avant-plan.

Procédure SET_ATTRIBUTE

Cette procédure définit les attributs de pipeline. Il existe deux procédures surchargées, l'une pour définir un seul attribut et l'autre pour définir plusieurs attributs à l'aide d'un document JSON de paires nom/valeur d'attribut.

Syntaxe

PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
      pipeline_name        IN   VARCHAR2,
      attribute_name       IN   VARCHAR2,
      attribute_value      IN   CLOB
);
 
PROCEDURE DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
      pipeline_name        IN   VARCHAR2,
      attributes           IN   CLOB
);

Paramètres

Paramètre Description

pipeline_name

Indique le nom du pipeline pour définir les attributs.

Ce paramètre est obligatoire.

attribute_name

Indique le nom de l'attribut à définir.

Voir Attributs DBMS_CLOUD_PIPELINE pour plus d'informations.

attribute_value

Spécifie la valeur de l'attribut de pipeline à définir.

Voir Attributs DBMS_CLOUD_PIPELINE pour plus d'informations.

attributes

Spécifie un document JSON contenant les noms et les valeurs d'attribut.

Voir Attributs DBMS_CLOUD_PIPELINE pour plus d'informations.

Note d'utilisation

  • Lorsque vous utilisez DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE pour définir plusieurs attributs avec le paramètre attributes, tous les attributs existants sont supprimés et remplacés par les attributs spécifiés du document JSON.

Procédure START_PIPELINE

La procédure démarre le pipeline de données. Lorsqu'un pipeline est démarré, l'opération de pipeline s'exécute en continu dans une tâche programmée en fonction de interval configuré avec les attributs de pipeline.

Syntaxe

DBMS_CLOUD_PIPELINE.START_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      start_date           IN   TIMESTAMP WITH TIME ZONE DEFAULT NULL
);

Paramètres

Paramètre Description

pipeline_name

Spécifie un nom pour le pipeline.

Ce paramètre est obligatoire.

start_date

Indique la date de début de la tâche de pipeline.

Valeur par défaut : NULL

Notes d'utilisation

  • Par défaut, une tâche de pipeline commence immédiatement, dès le démarrage du pipeline. Pour démarrer une tâche de pipeline plus tard, spécifiez une date ou un horodatage valide à l'aide du paramètre start_date.

  • Voir DBMS_CLOUD_PIPELINE Attributs pour plus d'informations sur le pipeline interval et d'autres attributs de pipeline.

Procédure STOP_PIPELINE

La procédure arrête le pipeline de données. Lorsqu'un pipeline est arrêté, aucune tâche future n'est programmée pour le pipeline.

Syntaxe

DBMS_CLOUD_PIPELINE.STOP_PIPELINE(
      pipeline_name        IN   VARCHAR2,
      force                IN   BOOLEAN  DEFAULTFALSE
);

Paramètres

Paramètre Description

pipeline_name

Spécifie un nom pour le pipeline.

Ce paramètre est obligatoire.

force

Si le paramètre Forcer est transmis en tant que TRUE, il mettra fin à toutes les tâches en cours d'exécution pour le pipeline.

Valeurs valides : TRUE, FALSE

Valeur par défaut : FALSE

DBMS_CLOUD_PIPELINE Attributs

Les attributs permettent de contrôler et de configurer le comportement d'un pipeline de données.

Attributs

Note :

Comme indiqué dans la colonne Type de pipeline, selon le type de pipeline LOAD ou EXPORT, un pipeline prend en charge un jeu d'attributs différent.
Nom d'attribut Description Type de pipeline Modifiable après le début du pipeline
credential_name

Nom des données d'identification permettant d'accéder au service de stockage d'objets en nuage source.

Valeur par défaut : NULL.

Si vous ne spécifiez pas credential_name, credential_name est réglé à NULL.

LOAD, EXPORT Oui
field_list

Identifie les champs des fichiers sources et leur type de données. La syntaxe de cet argument est identique à celle de la clause field_list dans les tables externes Oracle standard. Pour plus de renseignements, consultez la page field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

Valeur par défaut : NULL

La valeur par défaut spécifie les champs et leurs types de données sont déterminés par les colonnes de la table spécifiée dans l'attribut table_name.

LOAD Oui
format

Options décrivant le format du type de pipeline.

L'extraction de données format n'est pas prise en charge pour un pipeline d'exportation.

Cet attribut est obligatoire pour les pipelines LOAD et EXPORT.

LOAD, EXPORT Oui
interval

Intervalle en minutes entre les exécutions consécutives de la tâche de pipeline programmée.

Valeur par défaut : 15 minutes

LOAD, EXPORT Oui
key_column

Colonne d'horodatage ou de date dans la valeur table ou query spécifiée pour l'exportation continue des données plus récentes vers le magasin d'objets. L'horodatage ou la date de la dernière exécution est suivi par le pipeline d'exportation et comparé à la valeur dans key_column pour identifier les nouvelles données à exporter vers le magasin d'objets.

Valeur par défaut : NULL

Si key_column n'est pas spécifié pour un pipeline d'exportation, tout le contenu de table ou query est chargé dans le magasin d'objets dans chaque exécution de tâche de pipeline.

EXPORT Non
location

Indique un URI qui pointe vers un emplacement de stockage d'objets.

Le format de l'URI dépend du service de stockage d'objets en nuage. Pour plus d'informations, voir Formats d'URI du service de stockage d'objets en nuage.

Cet attribut est obligatoire pour les pipelines LOAD et EXPORT.

LOAD, EXPORT Non
priority

Spécifie une valeur de chaîne qui détermine le nombre d'opérations parallèles effectuées pour le pipeline.

  • Dans un pipeline de chargement, il détermine le nombre de fichiers chargés en parallèle.

  • Dans un pipeline d'exportation, il détermine le degré de parallélisme pour extraire des données de la base.

Une opération ayant une priorité supérieure consomme plus de ressources de base de données et se termine plus tôt.

Valeurs valides :

  • HIGH : Détermine le nombre de fichiers parallèles traités à l'aide du nombre d'ECPU de la base de données (nombre d'OCPU si votre base de données utilise des OCPU).
  • MEDIUM : Détermine le nombre de processus simultanés utilisant la limite d'accès simultané pour le service moyen. La valeur par défaut est 4.
  • LOW : Exécuter la tâche de pipeline dans l'ordre séquentiel.

Valeur par défaut : MEDIUM

Le nombre maximal d'opérations de fichier simultanées est limité à 64.

LOAD, EXPORT Oui
query

Spécifie un énoncé SELECT afin que seules les données requises soient exportées. L'interrogation détermine le contenu des fichiers que vous exportez en tant que fichiers texte (CSV, JSON, Parquet ou XML) ou fichiers de vidage.

Par exemple :

SELECT warehouse_id, quantity FROM inventories

Valeur par défaut : NULL

Pour un pipeline d'exportation, table_name ou query est obligatoire.

EXPORT Non
table_name

Indique le nom de la table cible pour le chargement ou l'exportation de données.

Pour un pipeline de chargement table_name est obligatoire.

Pour un pipeline d'exportation, table_name ou query est obligatoire.

LOAD, EXPORT Non
table_owner

Nom du schéma dans lequel réside la table cible pour le chargement ou l'exportation de données.

Valeur par défaut : NULL

Avec une valeur NULL, la table cible se trouve dans le même schéma que l'utilisateur qui exécute la procédure.

LOAD, EXPORT Non