Package DBMS_CLOUD_PIPELINE

Le package DBMS_CLOUD_PIPELINE vous permet de créer des pipelines de données pour le chargement et l'export de données dans le cloud. Ce package prend en charge le chargement incrémentiel continu des données des fichiers de la banque d'objets dans la base de données. DBMS_CLOUD_PIPELINE prend également en charge l'export incrémentiel continu des données de table ou des résultats de requête de la base de données vers la banque d'objets en fonction d'une colonne d'horodatage.

Prérequis

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

Selon le choix de déploiement, les prérequis suivants doivent être respectés 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 parc, comme décrit ci-dessous :
  • Créez une passerelle NAT dans le réseau cloud virtuel (VCN) où résident vos ressources Autonomous Database en suivant les instructions fournies dans Création d'une passerelle NAT dans la documentation Oracle Cloud Infrastructure.
  • Après avoir créé la passerelle NAT, ajoutez une règle de routage et une règle de sécurité sortante à chaque sous-réseau (dans le VCN) dans lesquelles résident les ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique à partir de votre instance Azure AD :
    1. Accédez à la page Détails du sous-réseau.
    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 correspondante.
    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
      • Destination : 0.0.0.0/0
      • Type de cible : passerelle NAT
      • Cible : 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 possédant ces caractéristiques.

    4. Revenez à 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é correspondante.
    6. Dans le menu latéral, sous Resources, cliquez sur Egress Rules.
    7. Dans la table des règles sortantes existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
      • Type de destination : CIDR
      • Destination : 0.0.0.0/0
      • Protocole IP : TCP
      • Plage de ports source: 443
      • Plage de ports de destination : Tout

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle présentant ces caractéristiques.

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

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

Remarques :

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

La configuration d'un proxy HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service (SR) dans My Oracle Support. Pour plus d'informations, reportez-vous à Création d'une demande d'assistance dans My Oracle Support.

Récapitulatif des sous-programmes DBMS_CLOUD_PIPELINE

Ce tableau récapitule les sous-programmes inclus dans le package DBMS_CLOUD_PIPELINE.

Sous-programme Description

CREATE_PIPELINE Procédure

Crée un pipeline de données.

DROP_PIPELINE Procédure

Supprime un pipeline de données existant.

RESET_PIPELINE Procédure

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'export des données. La réinitialisation du pipeline peut éventuellement purger les données de la base de données ou de la banque d'objets, selon le type de pipeline.

RUN_PIPELINE_ONCE Procédure

Effectue une exécution à la demande du pipeline dans la session de premier plan en cours, au lieu d'un travail programmé.

SET_ATTRIBUTE 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

START_PIPELINE Procédure

Démarre le pipeline de données. Lorsqu'un pipeline est démarré, l'opération de pipeline est exécutée en continu dans un travail programmé en fonction de l'intervalle configuré dans les attributs de pipeline.

STOP_PIPELINE Procédure

Arrête le pipeline de données. Lorsqu'un pipeline est arrêté, aucun travail futur n'est programmé pour le pipeline.

CREATE_PIPELINE Procédure

La procédure crée un 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

Spécifie le nom du pipeline. Le nom du pipeline doit respecter les règles de dénomination des identificateurs SQL Oracle. Pour plus d'informations, reportez-vous à Identificateurs dans Référence du langage PL/SQL Oracle Database Database ou Référence du langage PL/SQL Oracle Database 23ai Database.

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

Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_PIPELINE Attributes.

description

Description du pipeline.

Valeur par défaut : NULL

DROP_PIPELINE Procédure

La procédure supprime un pipeline de données existant. Si un pipeline a été démarré, il doit être arrêté pour pouvoir ê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

Supprimez de force un pipeline, même s'il est à l'état démarré.

Valeurs valides : TRUE, FALSE

Valeur par défaut : FALSE

Remarque sur l'utilisation

  • Pour supprimer un pipeline à l'état démarré, définissez le paramètre force sur TRUE.

RESET_PIPELINE Procédure

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'export des données. La réinitialisation du pipeline peut éventuellement purger les données de la base de données ou de la banque d'objets, selon le type de pipeline. Un pipeline de données doit être à l'état Arrêté pour pouvoir être réinitialisé.

Syntaxe

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

Paramètres

Paramètre Description

pipeline_name

Indique le nom du pipeline.

Ce paramètre est obligatoire.

purge_data

Les données de purge s'appliquent à un pipeline de chargement ou à un pipeline d'export :

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

  • Pour un pipeline d'export, lorsque TRUE, supprimez les fichiers à l'emplacement de banque d'objets.

Valeurs valides : TRUE, FALSE

Valeur par défaut : FALSE

Remarques sur l'utilisation

  • Un pipeline de données doit être à l'état Arrêté pour pouvoir être réinitialisé. Pour plus d'informations, reportez-vous à Procédure STOP_PIPELINE.

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

    Lorsque purge_data est défini sur 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 indiquez avec l'attribut table_name.

    • Supprime la table de statut du pipeline, ainsi que la table de fichiers incorrects et la table d'erreurs du pipeline (si elles existent).

  • Pour un pipeline d'export, 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'export, le pipeline répète l'export des données de la table ou de la requête.

    Lorsque purge_data est défini sur TRUE, DBMS_CLOUD_PIPELINE.RESET_PIPELINE supprime les fichiers existants dans l'emplacement de banque d'objets indiqué avec l'attribut location.

RUN_PIPELINE_ONCE Procédure

Cette procédure effectue une exécution à la demande du pipeline dans la session de premier plan en cours, au lieu d'une exécution dans un travail programmé. Utilisez DBMS_CLOUD_PIPELINE.RUN_PIPELINE_ONCE pour tester un pipeline avant de le démarrer en tant que travail continu.

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.

Remarques sur l'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. Vous pouvez ainsi réinitialiser l'état du pipeline avant de le démarrer dans un travail programmé.

  • Si un pipeline a l'état Démarré, il ne peut pas être exécuté dans la session de premier plan.

SET_ATTRIBUTE Procédure

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

Spécifie le nom du pipeline qui définit les attributs.

Ce paramètre est obligatoire.

attribute_name

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

Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_PIPELINE Attributes.

attribute_value

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

Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_PIPELINE Attributes.

attributes

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

Pour plus d'informations, reportez-vous à la section DBMS_CLOUD_PIPELINE Attributes.

Remarque sur l'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 indiqués dans le document JSON.

START_PIPELINE Procédure

La procédure démarre le pipeline de données. Lorsqu'un pipeline est démarré, l'opération de pipeline est exécutée en continu dans un travail programmé en fonction de la valeur interval configurée 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

Indique le nom du pipeline.

Ce paramètre est obligatoire.

start_date

Indique la date de début du travail de pipeline.

Valeur par défaut : NULL

Remarques sur l'utilisation

  • Par défaut, un travail de pipeline commence immédiatement, dès que le pipeline est démarré. Pour démarrer un travail de pipeline ultérieurement, indiquez une date ou un horodatage valide à l'aide du paramètre start_date.

  • Pour plus d'informations sur le pipeline interval et d'autres attributs de pipeline, reportez-vous à DBMS_CLOUD_PIPELINE Attributes.

STOP_PIPELINE Procédure

La procédure arrête le pipeline de données. Lorsqu'un pipeline est arrêté, aucun travail futur n'est programmé pour le pipeline.

Syntaxe

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

Paramètres

Paramètre Description

pipeline_name

Indique le nom du pipeline.

Ce paramètre est obligatoire.

force

Si le paramètre force est transmis en tant que TRUE, il met fin aux travaux 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

Remarques :

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

Nom des informations d'identification permettant d'accéder au stockage d'objet cloud source.

Valeur par défaut : NULL.

Si vous n'indiquez pas de credential_name, credential_name est défini sur NULL.

LOAD, EXPORT Oui
field_list

Identifie les champs dans les fichiers source et leurs types de données. La syntaxe de cet argument est identique à la clause field_list dans les tables externes Oracle standard. Pour plus d'informations, reportez-vous à field_list dans Utilitaires Oracle Database 19c ou Utilitaires Oracle Database 23ai.

Valeur par défaut : NULL

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

LOAD Oui
format

Options décrivant le format du type de pipeline.

Datapump format n'est pas pris en charge pour un pipeline d'export.

Cet attribut est obligatoire pour les pipelines LOAD et EXPORT.

LOAD, EXPORT Oui
interval

Intervalle en minutes entre les exécutions consécutives du travail de pipeline programmé.

Valeur par défaut : 15 minutes

LOAD, EXPORT Oui
key_column

Colonne d'horodatage ou de date dans le fichier table ou query indiqué pour l'export continu de données plus récentes vers la banque d'objets. La date ou l'horodatage de la dernière exécution est suivi par le pipeline d'export et comparé à la valeur dans key_column afin d'identifier les nouvelles données à exporter vers la banque d'objets.

Valeur par défaut : NULL

Si key_column n'est pas indiqué pour un pipeline d'export, l'intégralité du contenu de table ou query est téléchargée vers la banque d'objets dans chaque exécution de travail de pipeline.

EXPORT No
location

Indique un URI qui pointe vers un emplacement Object Storage.

Le format de l'URI dépend du service Cloud Object Storage. Pour plus d'informations, reportez-vous à Formats d'URI de stockage d'objet cloud.

Cet attribut est obligatoire pour les pipelines LOAD et EXPORT.

LOAD, EXPORT No
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'export, il détermine le degré de parallélisme pour l'extraction des données de la base de données.

Une opération avec une priorité plus élevée consomme plus de ressources de base de données et est terminée plus tôt.

Valeurs valides :

  • HIGH : détermine le nombre de fichiers parallèles gérés à l'aide du nombre d'ECPU de la base de données (nombre d'OCPU si la 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 Medium. La valeur par défaut est 4.
  • LOW : exécutez le travail de pipeline dans l'ordre des numéros de série.

Valeur par défaut : MEDIUM

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

LOAD, EXPORT Oui
query

Spécifie une instruction SELECT afin que seules les données requises soient exportées. La requête détermine le contenu des fichiers exportés en tant que fichiers texte (CSV, JSON, Parquet ou XML) ou fichiers dump.

Exemple :

SELECT warehouse_id, quantity FROM inventories

Valeur par défaut : NULL

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

EXPORT No
table_name

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

Pour un pipeline de chargement, table_name est obligatoire.

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

LOAD, EXPORT No
table_owner

Nom du schéma dans lequel réside la table cible pour le chargement ou l'export 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 No