À propos des pipelines de données dans le service de base de données autonome

Les pipelines de données Autonomous Database sont des pipelines de chargement ou d'exportation.

Les pipelines de chargement fournissent un chargement de données incrémentiel continu à partir de sources externes (à mesure que les données arrivent dans le magasin d'objets, elles sont chargées dans une table de base de données). Les pipelines d'exportation fournissent une exportation incrémentielle continue des données vers le magasin d'objets (à mesure que de nouvelles données apparaissent dans une table de base de données, elles sont exportées vers le magasin d'objets). Les pipelines utilisent le programmateur de base de données pour charger ou exporter continuellement des données incrémentielles.

Les pipelines de données Autonomous Database fournissent les éléments suivants :

  • Opérations unifiées : Les pipelines vous permettent de charger ou d'exporter des données rapidement et facilement et de répéter ces opérations à intervalles réguliers pour de nouvelles données. L'ensemble DBMS_CLOUD_PIPELINE fournit un jeu unifié de procédures PL/SQL pour la configuration de pipeline et pour la création et le démarrage d'une tâche programmée pour les opérations de chargement ou d'exportation.

  • Traitement des données programmé : Les pipelines surveillent leur source de données et chargent ou exportent périodiquement les données à l'arrivée de nouvelles données.

  • Haute performance : Les pipelines ajustent les opérations de transfert de données avec les ressources disponibles sur Autonomous Database. Par défaut, les pipelines utilisent le parallélisme pour toutes les opérations de chargement ou d'exportation et s'adaptent en fonction des ressources d'UC disponibles dans Autonomous Database ou en fonction d'un attribut de priorité configurable.

  • Atomicité et récupération : Les pipelines garantissent l'atomicité afin que les fichiers du magasin d'objets soient chargés exactement une fois pour un pipeline de chargement.

  • Surveillance et dépannage : Les pipelines fournissent des tables de journaux et de statut détaillées qui vous permettent de surveiller et de déboguer les opérations de pipeline.

  • Compatibilité multinuage : Les pipelines sur Autonomous Database prennent en charge le basculement facile entre les fournisseurs de nuage sans modification d'application. Les pipelines prennent en charge tous les formats d'URI de magasin de données d'identification et d'objets pris en charge par Autonomous Database (Oracle Cloud Infrastructure Object Storage, Amazon S3, Azure Blob Storage, Google Cloud Storage et les magasins d'objets compatibles avec Amazon S3).

Rubriques connexes

Cycle de vie du pipeline de données

L'ensemble DBMS_CLOUD_PIPELINE fournit des procédures pour créer, configurer, tester et démarrer un pipeline. Le cycle de vie et les procédures du pipeline sont les mêmes pour les pipelines de chargement et d'exportation.

Description de pipeline_lifecycle.eps :
Description de l'illustration pipeline_lifecycle.eps

Pour l'un ou l'autre type de pipeline, vous devez effectuer les étapes suivantes pour créer et utiliser un pipeline :

  1. Créez et configurez le pipeline. Pour plus d'informations, voir Créer et configurer des pipelines.

  2. Testez un nouveau pipeline. Pour plus d'informations, voir Tester les pipelines.

  3. Démarrer un pipeline. Pour plus d'informations, voir Démarrer un pipeline.

En outre, vous pouvez surveiller, arrêter ou supprimer des pipelines :

  • Pendant l'exécution d'un pipeline, lors des tests ou lors d'une utilisation régulière après le démarrage du pipeline, vous pouvez le surveiller. Pour plus d'informations, voir Surveiller et dépanner les pipelines.

  • Vous pouvez arrêter un pipeline et le redémarrer ultérieurement, ou supprimer un pipeline lorsque vous avez terminé d'utiliser le pipeline. Pour plus d'informations, voir Arrêter un pipeline et Supprimer un pipeline.

Charger les pipelines

Utilisez un pipeline de chargement pour le chargement incrémentiel continu de données à partir de fichiers externes dans le magasin d'objets dans une table de base de données. Un pipeline de chargement identifie périodiquement de nouveaux fichiers dans le magasin d'objets et charge les nouvelles données dans la table de base de données.

Un pipeline de charge fonctionne comme suit (certaines de ces fonctions peuvent être configurées à l'aide d'attributs de pipeline) :

  • Les fichiers du magasin d'objets sont chargés en parallèle dans une table de base de données.

    • Un pipeline de chargement utilise le nom du fichier du magasin d'objets pour identifier et charger de manière unique des fichiers plus récents.
    • Une fois qu'un fichier dans le magasin d'objets a été chargé dans la table de base de données, si le contenu du fichier change dans le magasin d'objets, il ne sera plus chargé.
    • Si le fichier du magasin d'objets est supprimé, cela n'a aucune incidence sur les données de la table de base de données.
  • En cas d'échec, un pipeline de chargement réessaie automatiquement l'opération. Des tentatives sont tentées à chaque exécution ultérieure de la tâche programmée du pipeline.

  • Dans les cas où les données d'un fichier ne sont pas conformes à la table de base de données, elles sont marquées comme FAILED et peuvent être vérifiées pour déboguer et résoudre le problème.

    • Si le chargement d'un fichier échoue, le pipeline ne s'arrête pas et continue de charger les autres fichiers.
  • Les pipelines de chargement prennent en charge plusieurs formats de fichier d'entrée, notamment : JSON, CSV, XML, Avro, ORC et Parquet.

Description de load-pipeline.eps
Description de l'illustration load-pipeline.eps

La migration à partir de bases de données non Oracle est un cas d'utilisation possible pour un pipeline de charge. Lorsque vous devez migrer vos données d'une base de données non Oracle vers Oracle Autonomous Database on Dedicated Exadata Infrastructure, vous pouvez extraire les données et les charger dans Autonomous Database (le format Oracle Data Pump ne peut pas être utilisé pour les migrations à partir de bases de données non Oracle). En utilisant un format de fichier générique tel que CSV pour exporter des données à partir d'une base de données non Oracle, vous pouvez enregistrer vos données dans des fichiers et charger les fichiers dans le magasin d'objets. Créez ensuite un pipeline pour charger les données dans Autonomous Database. L'utilisation d'un pipeline de chargement pour charger un jeu volumineux de fichiers CSV offre des avantages importants tels que la tolérance aux pannes et les opérations de reprise et de nouvelle tentative. Pour une migration avec un jeu de données volumineux, vous pouvez créer plusieurs pipelines, un par table pour les fichiers de base de données non Oracle, pour charger des données dans Autonomous Database.

Exporter les pipelines

Utilisez un pipeline d'exportation pour l'exportation incrémentielle continue des données de la base de données vers le magasin d'objets. Un pipeline d'exportation identifie périodiquement les données candidates et charge les données dans le magasin d'objets.

Il existe trois options de pipeline d'exportation (les options d'exportation sont configurables à l'aide des attributs de pipeline) :

  • Exportez les résultats incrémentiels d'une interrogation vers le magasin d'objets à l'aide d'une colonne de date ou d'horodatage comme clé pour le suivi des données plus récentes.

  • Exportez les données incrémentielles d'une table vers le magasin d'objets à l'aide d'une colonne de date ou d'horodatage comme clé pour le suivi des données plus récentes.

  • Exportez les données d'une table vers le magasin d'objets à l'aide d'une interrogation permettant de sélectionner des données sans référence à une colonne de date ou d'horodatage (de sorte que le pipeline exporte toutes les données sélectionnées par l'interrogation pour chaque exécution du programmateur).

Les pipelines d'exportation présentent les fonctions suivantes (certaines sont configurables à l'aide d'attributs de pipeline) :

  • Les résultats sont exportés en parallèle vers le magasin d'objets.

  • En cas d'échec, une tâche de pipeline suivante répète l'opération d'exportation.

  • Les pipelines d'exportation prennent en charge plusieurs formats de fichier d'exportation, notamment : CSV, JSON, Parquet ou XML.

Pipelines gérés par Oracle

Autonomous Database sur une infrastructure Exadata dédiée fournit des pipelines intégrés pour exporter des journaux spécifiques vers un magasin d'objets au format JSON. Ces pipelines sont préconfigurés et démarrés et détenus par l'utilisateur ADMIN.

Les pipelines gérés par Oracle sont les suivants :

  • ORA$AUDIT_EXPORT : Ce pipeline exporte les journaux de vérification de base de données vers le magasin d'objets au format JSON et s'exécute toutes les 15 minutes après le démarrage du pipeline (en fonction de la valeur de l'attribut interval).

  • ORA$APEX_ACTIVITY_EXPORT : Ce pipeline exporte le journal d'activité de l'espace de travail Oracle APEX vers le magasin d'objets au format JSON. Ce pipeline est préconfiguré avec l'interrogation SQL pour extraire les enregistrements d'activité APEX et s'exécute toutes les 15 minutes après le démarrage du pipeline (en fonction de la valeur de l'attribut interval).

Pour configurer et démarrer un pipeline géré par Oracle :

  1. Déterminez le pipeline géré par Oracle à utiliser : ORA$AUDIT_EXPORT ou ORA$APEX_ACTIVITY_EXPORT.
  2. Définissez les attributs credential_name et location.

    Note :

    credential_name est une valeur obligatoire sur Autonomous Database sur une infrastructure Exadata dédiée.

    Par exemple :

    BEGIN
      DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
        pipeline_name => 'ORA$AUDIT_EXPORT',
        attribute_name => 'credential_name',
        attribute_value => 'DEF_CRED_OBJ_STORE'
      );
      DBMS_CLOUD_PIPELINE.SET_ATTRIBUTE(
        pipeline_name => 'ORA$AUDIT_EXPORT',
        attribute_name => 'location',
        attribute_value => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/'
      );
    END;
    /

    Les données de journal de la base de données sont exportées vers l'emplacement du magasin d'objets que vous spécifiez.

    Pour plus d'informations, consultez SET_ATTRIBUTE.

  3. Facultativement, définissez les attributs interval, format ou priority.

    Pour plus d'informations, consultez SET_ATTRIBUTE.

  4. Démarrez le pipeline.

    Pour plus d'informations, consultez START_PIPELINE.