Remarques :

Flux de données vers la base de données Oracle Autonomous Transaction Processing à l'aide d'OCI Functions

Introduction

Dans ce tutoriel, nous allons apprendre à créer et à déployer un pipeline de transmission en continu de données en temps réel à l'aide des services Oracle Cloud Infrastructure (OCI). Le pipeline transmet les données d'un flux OCI à Oracle Autonomous Database en exploitant OCI Connector Hub et OCI Functions. La fonction est écrite en Java, en utilisant la méthode d'authentification du principal de ressource pour un accès sécurisé aux services OCI et un portefeuille de base de données pour établir une connexion avec Oracle Autonomous Database.

OCI Streaming : OCI dispose d'un ensemble d'outils pour gérer les données dans le cloud, OCI Streaming étant l'un de ces services conçu pour les flux de données en temps réel à haut débit. En tirant parti d'OCI Streaming, les développeurs peuvent construire des pipelines de données évolutifs et fiables qui assimilent, traitent et distribuent efficacement des flux de données.

OCI Functions : OCI Functions est une plate-forme Functions-as-a-Service entièrement gérée, colocative, hautement évolutive et à la demande. Elle est basée sur OCI de niveau entreprise et sur le moteur open source du projet Fn. Utilisez OCI Functions lorsque vous voulez vous concentrer sur l'écriture de code pour répondre aux besoins de votre entreprise.

Authentification de principal de ressource : vous pouvez utiliser un principal de ressource pour authentifier les ressources OCI et y accéder. Le principal de ressource se compose d'un jeton de session temporaire et d'informations d'identification sécurisées qui permettent aux fonctions OCI de s'authentifier auprès d'autres services OCI, tels qu'OCI Streaming.

OCI Connector Hub : OCI Connector Hub est une plate-forme cloud de bus de messages qui offre une interface unique pour la description, l'exécution et la surveillance des interactions lors du déplacement de données entre des services OCI.

Remarque :

Objectifs

Prérequis

Tâche 1 : configurer des groupes dynamiques

Connectez-vous à la console OCI, accédez au domaine, cliquez sur Groupes dynamiques et créez un groupe avec les informations suivantes.

Tâche 2 : créer des stratégies

Accédez à la console OCI, accédez à Stratégies et créez les stratégies avec les informations suivantes.

Tâche 3 : création d'un registre de conteneurs OCI

  1. Accédez à la console OCI, accédez à Services de développeur, à Conteneurs et artefacts, sélectionnez Registre de conteneurs et cliquez sur Créer un référentiel afin de créer un référentiel privé pour l'image de fonction.

    • Nom du référentiel : entrez lab/fn-java-event-to-atp.

      T3_1

  2. Vérifiez les référentiels et notez l'espace de noms.

    T3_1

  3. Ouvrez OCI Cloud Shell où l'interface de ligne de commande OCI et Docker doivent être installés, puis passez à la connexion dans le registre. Vérifiez l'URL correcte pour votre région. Dans ce tutoriel, nous utilisons Est du Brésil (Sao Paulo), où l'URL du registre est gru.ocir.io.

    Remarque : vous devez créer le jeton d'authentification utilisateur dans la section Prérequis.

    docker login gru.ocir.io
    Username: <your container namespace>/youruser
    Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
    

    T3_3

Tâche 4 : création d'un bucket OCI Object Storage pour stocker le portefeuille de base de données

Accédez à la console OCI, accédez à Stockage, à Object Storage et Archive Storage, à Buckets et cliquez sur Créer un bucket pour créer un bucket nommé Wallet afin de stocker le fichier ZIP de portefeuille de base de données.

T4_1

Tâche 5 : télécharger le portefeuille de base de données et le stocker sur le bucket OCI Object Storage

Remarque : cet exemple de code montre comment se connecter en toute sécurité à Oracle Autonomous Database à l'aide d'un portefeuille. Pour continuer, vous devez configurer les informations d'identification de votre portefeuille et définir un mot de passe à utiliser tout au long de ce tutoriel.

  1. Accédez à la console OCI, accédez à Oracle Database, cliquez sur Autonomous Database et sélectionnez votre ATP.

    T4_1

  2. Cliquez sur Connexion à la base de données.

    T4_1

  3. Entrez votre mot de passe de portefeuille et notez que vous en aurez besoin dans votre application.

    T4_1

  4. Accédez au bucket OCI Object Storage créé dans la tâche 4 et cliquez sur Télécharger vers le serveur pour télécharger le fichier ZIP de portefeuille téléchargé.

    T4_1

Tâche 6 : stocker en toute sécurité les informations d'identification de base de données et le mot de passe de portefeuille dans le coffre

Remarque : vous devez au préalable vous assurer que vous avez déjà créé un coffre.

  1. Accédez à la console OCI, accédez à Identité et sécurité, à Coffre et sélectionnez votre coffre.

  2. Cliquez sur Clés secrètes, sur Créer une clé secrète et créez des clés secrètes avec les informations suivantes.

    Nom de clé secrète Value
    MYRDBMS_WALLET_PASSWORD Mot de passe de votre portefeuille en texte brut
    MYRDBMS_DB_PASSWORD Votre mot de passe de base de données en texte brut

    T5_1

    Remarque : veillez à sélectionner Texte brut pour Modèle de type de clé secrète.

Répétez également ce processus pour MYRDBMS_DB_PASSWORD et notez les deux OCID qui seront utilisés pour la configuration de fonction.

T5_1

Tâche 7 : création des fonctions OCI Java pour recevoir le message d'événement et insertion dans la base de données ATP

Remarque : veillez à sélectionner votre sous-réseau privé, le même que celui du pool de flux de données.

  1. Accédez à la console OCI, accédez à Services de développeur, à Fonctions, à Applications et cliquez sur Créer une application.

    T6_1

  2. Accédez à OCI Cloud Shell dans lequel Docker, l'interface de ligne de commande OCI et l'interface de ligne de commande du projet Fn sont installés, puis exécutez la commande suivante pour initialiser la fonction.

    Remarque : si vous avez suivi les tâches, la commande de connexion Docker a déjà été exécutée. Sinon, passez aux étapes de journal Docker de la tâche 3.

  3. Vérifiez le contexte en cours, car vous utilisez OCI Cloud Shell, il doit déjà être configuré dans le contexte en cours.

    fn list context 
    

    T6_2

  4. Exécutez la commande suivante pour mettre à jour les paramètres de votre fonction afin de pouvoir extraire des images de votre registre de conteneurs créé dans la tâche 3.

    fn update context oracle.compartment-id PASTE_YOUR_COMPARTMENT_OCID
    fn update context registry gru.ocir.io/PASTE_YOUR_REGISTRY_NAMESPACE/lab
    fn list context
    

    T6_2

    Remarque : dans ce tutoriel, nous utilisons la région Est du Brésil (Sao Paulo). Si vous utilisez une autre région, vous devez modifier les emplacements URL d'API et REGISTRY.

  5. Exécutez la commande suivante pour vérifier si l'application que vous avez créée est répertoriée dans OCI Cloud Shell.

    Remarque : assurez-vous qu'OCI Cloud Shell utilise Réseau : public

    fn list apps
    

    T6_2

  6. Obtenez l'exemple de code de la fonction Java ici : fn-java-event-to-atp.zip, téléchargez-le vers OCI Cloud Shell, puis décompressez le fichier.

  7. Cliquez sur le menu déroulant en haut à droite et sélectionnez Télécharger pour télécharger le fichier.

    T6_2

    T6_2

  8. Exécutez la commande suivante pour décompresser le fichier.

    # check your file is there
    ls -lrt
    # unzip the file
    unzip fn-java-event-to-atp.zip
    # check again
    ls -lrt
    

    T9_1

    Remarque : ce projet Java concis extrait l'entrée de données JSON à partir d'OCI Connector Hub, l'analyse selon un format prédéfini et insère de manière transparente les informations extraites dans votre base de données ATP. Pour garantir une insertion correcte des données, reportez-vous aux étapes suivantes pour obtenir des instructions sur le format de message requis et le tableau correspondant dans votre base de données ATP.

  9. Dans OCI Cloud Shell, exécutez la commande suivante pour créer le code et déployer la fonction.

    fn deploy --app MyApp
    # After deploy complete, check the function is there:
    fn list functions MyApp |grep fn-java-event-to-atp
    

    T9_1

    T9_1

  10. Accédez à la console OCI, sélectionnez Services de développeur, Fonctions, Applications, sélectionnez l'application (Myapp) et cliquez sur la fonction.

    T9_1

    T9_1

    Remarque L'exemple de code Java de ce tutoriel utilise des variables de configuration pour établir une connexion de base de données. Veillez à fournir les valeurs appropriées à partir de votre environnement pour garantir une exécution réussie.

  11. Créez toutes les configurations suivantes.

Nom/clé de clé secrète Value
WALLET_BUCKET Portefeuille
WALLET_OBJECT nom de votre fichier ZIP
BUCKET_NAMESPACE Espace de noms de bucket
DB_USER Votre nom utilisateur de base de données
DB_SERVICE_NAME nom de service de base de données trouvé dans les détails de connexion à la base de données
DB_PASSWORD_OCID_VAULT coller l'OCID de clé secrète
DB_WALLET_PASSWORD_OCID_VAULT coller l'OCID de clé secrète

Tâche 8 : Créer une table dans la base de données ATP

Créez une table nommée MY_TABLE sur la base de données ATP afin de recevoir des données de la transmission en continu.

  1. Sélectionnez l'instance Oracle Autonomous Database sur laquelle vous avez téléchargé le portefeuille, cliquez sur le menu déroulant Actions de base de données, puis sur SQL.

    T9_1

  2. Exécutez la commande DDL de création de table suivante.

    Remarque : cet exercice utilise l'utilisateur ADMIN pour les connexions à la base de données. Remplacez votre propre nom d'utilisateur s'il diffère.

    CREATE TABLE "ADMIN"."MY_TABLE" 
    ( "CODE" VARCHAR2(50 BYTE), 
    	"NAME" VARCHAR2(500 BYTE)
    ) ;
    

    T9_1

Tâche 9 : configurer OCI Connector Hub pour appeler la fonction lorsque le nouveau message arrive dans le flux de données

Maintenant que vous avez créé la fonction et la nouvelle table pour stocker les données, il est temps de tout connecter ensemble ! Pour ce faire, nous allons configurer un pipeline qui circule à partir d'OCI Streaming, via OCI Connector Hub, et enfin vers vos fonctions OCI.

  1. Accédez à la console OCI, accédez à Analytics et IA, à Messagerie et cliquez sur Hub de connecteurs.

  2. Cliquez sur Créer un connecteur et entrez les informations suivantes.

    • Nom du connecteur : entrez StreamingToFN.
    • Source : sélectionnez Transmission en continu.
    • Cible : sélectionnez Fonctions.

    Remarque : vous devez au préalable vous assurer que vous avez déjà créé le pool de flux de données et le flux nommé myfirststream.

    T9_1

  3. Dans Configurer la source, sélectionnez le pool de flux de données et le flux de données.

    T9_1

  4. Dans Configurer la cible, sélectionnez MyApp en tant qu'application de fonction et fn-java-event-to-atp en tant que fonction.

    T9_1

Remarque : vous devrez peut-être créer des stratégies supplémentaires comme suggéré sur la page Créer un connecteur.

Tâche 10 : création d'un message sur OCI Streaming et vérification du fonctionnement du pipeline

Remarque : l'exemple de code Java fourni est conçu pour traiter les messages dans une structure JSON particulière. Le code analyse ce JSON pour extraire les données nécessaires, puis l'insère dans la table MY_TABLE. Tout écart par rapport au format JSON attendu entraînera des erreurs d'analyse et empêchera l'insertion réussie de la base de données.

Exemple de message JSON :

{"code": "001", "name":"Larry"}

Suivez les étapes décrites:

  1. Accédez à la console OCI, accédez à Analytics et IA, à Messagerie, à Streaming, sélectionnez votre flux de données (myfirststream) et cliquez sur Produire un message de test.

  2. Dans Données, entrez l'exemple de message JSON et cliquez sur Produire.

    T9_1

    Remarque : le pipeline de flux peut subir un démarrage à froid lors de sa première exécution, ce qui entraîne un retard notable. Ceci est une conséquence de l'initialisation de la fonction qui se produit lors de la première tentative d'envoi d'un message par le hub de connecteur.

Tâche 11 : valider les données arrivées dans la base de données

  1. Sélectionnez l'instance Oracle Autonomous Database sur laquelle vous avez téléchargé le portefeuille, cliquez sur le menu déroulant Actions de base de données, puis sur SQL.

    T9_1

  2. Exécutez la requête suivante .

    select * from admin.my_table;
    

    T9_1

Dépannage et conseils

Remerciements

Ressources de formation supplémentaires

Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir la documentation produit, consultez le site Oracle Help Center.