Note :

Diffuser des données dans une base de données Oracle Autonomous Transaction Processing à l'aide du service des fonctions pour OCI

Présentation

Dans ce tutoriel, nous verrons comment créer et déployer un pipeline de données en continu en temps réel à l'aide des services Oracle Cloud Infrastructure (OCI). Le pipeline transmet les données d'un flux OCI à une base de données Oracle Autonomous Database en tirant parti du centre de connecteurs OCI et du service des fonctions pour OCI. La fonction est écrite en Java, employant 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.

Service de diffusion en continu pour OCI : OCI offre un éventail d'outils pour le traitement des données dans le nuage, le service de diffusion en continu pour OCI étant l'un de ces services personnalisés pour les flux de données à haut débit en temps réel. En tirant parti du service de diffusion en continu pour OCI, les développeurs peuvent créer des pipelines de données évolutifs et fiables qui ingèrent, traitent et distribuent efficacement les flux de données.

Service des fonctions pour OCI : Le service des fonctions pour OCI est une plate-forme de fonctions-service sur demande, entièrement gérée, multilocataire, très évolutive. Elle repose sur OCI de niveau entreprise et utilise le moteur à source ouverte Fn Project. Utilisez le service des fonctions pour OCI lorsque vous voulez vous concentrer sur l'écriture de code pour répondre à des besoins d'affaires.

Authentification du principal de ressource : Vous pouvez utiliser un principal de ressource pour authentifier les ressources OCI et y accéder. Le principal de ressource est constitué d'un jeton de session temporaire et de données d'identification sécurisées qui permettent au service des fonctions pour OCI de s'authentifier auprès d'autres services OCI, tels que le service de diffusion en continu pour OCI.

Centre de connecteurs OCI : Le centre de connecteurs OCI est une plate-forme de bus de messages en nuage qui offre un point unique pour la description, l'exécution et la surveillance des interactions lors du déplacement des données entre les services OCI.

Note :

Objectifs

Préalables

Tâche 1 : Configurer des groupes dynamiques

Connectez-vous à la console OCI, naviguez jusqu'à votre domaine, cliquez sur Groupes dynamiques et créez un groupe avec les informations suivantes.

Tâche 2 : Créer des politiques

Allez à la console OCI, naviguez jusqu'à Politiques et créez les politiques avec les informations suivantes.

Tâche 3 : Créer un registre de conteneurs OCI

  1. Allez à la console OCI, naviguez jusqu'à Services de développement, Conteneurs et artefacts, sélectionnez Registre de conteneurs et cliquez sur Créer un référentiel pour créer un référentiel privé pour l'image de la 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 l'OCI Cloud Shell où l'interface de ligne de commande OCI et Docker doivent être installés, puis connectez-vous au registre. Vérifiez quelle est l'URL correcte pour votre région. Dans ce tutoriel, nous utiliserons Brésil - Est (Sao Paulo), où l'URL du registre est gru.ocir.io.

    Note : Vous aurez besoin du jeton d'authentification d'utilisateur créé dans la section Préalables.

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

    T3_3

Tâche 4 : Créer un seau de stockage d'objets OCI pour stocker votre portefeuille de base de données

Allez à la console OCI, naviguez jusqu'à Stockage, Stockage d'objets et stockage d'archives, Seaux et cliquez sur Créer un seau pour créer un seau nommé Wallet pour 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 dans le seau de stockage d'objets OCI

Note : Cet exemple de code montre comment se connecter à une base de données Oracle Autonomous Database en toute sécurité à l'aide d'un portefeuille. Pour continuer, vous devrez configurer vos données d'identification de portefeuille et établir un mot de passe à utiliser tout au long de ce tutoriel.

  1. Allez à la console OCI, naviguez jusqu'à Oracle Database, cliquez sur Autonomous Database et sélectionnez votre DAV.

    T4_1

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

    T4_1

  3. Entrez votre mot de passe de portefeuille et notez-le, vous aurez besoin de ce mot de passe dans votre application.

    T4_1

  4. Allez au seau de stockage d'objets OCI créé à la tâche 4 et cliquez sur Charger pour charger le fichier zip de portefeuille téléchargé.

    T4_1

Tâche 6 : Stocker en toute sécurité les données d'identification de la base de données et le mot de passe du portefeuille dans votre chambre forte

Note : Comme préalable, assurez-vous d'avoir déjà créé une chambre forte.

  1. Allez à la console OCI, naviguez jusqu'à Identité et sécurité, Chambre forte et sélectionnez votre chambre forte.

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

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

    T5_1

    Note Assurez-vous de sélectionner Texte brut pour Modèle de type de clé secrète.

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

T5_1

Tâche 7 : Créer le service des fonctions pour OCI Java pour recevoir le message d'événement et l'insérer dans la base de données ATP

Note Assurez-vous de sélectionner votre sous-réseau privé, le même sous-réseau que celui du groupe de flux.

  1. Allez à la console OCI, naviguez jusqu'à Services de développement, Fonctions, Applications et cliquez sur Créer une application.

    T6_1

  2. Allez à Cloud Shell pour OCI où Docker, l'interface de ligne de commande OCI et l'interface de ligne de commande Fn Project sont installés et exécutez la commande suivante pour initialiser la fonction.

    Note : Si vous avez suivi les tâches, votre commande de connexion Docker a déjà été exécutée maintenant, sinon, passez aux étapes de journal Docker de la tâche 3.

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

    fn list context 
    

    T6_2

  4. Exécutez la commande suivante pour mettre à jour vos paramètres de fonction afin de pouvoir extraire des images du registre de conteneurs créé au cours de 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

    Note : Dans ce tutoriel, nous utilisons la région Brésil - Est (Sao Paulo). Si vous utilisez une autre région, vous devez modifier l'URL d'API et l'emplacement REGISTRY.

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

    Note : Assurez-vous que Cloud Shell pour OCI utilise Réseau : Public

    fn list apps
    

    T6_2

  6. Obtenez l'exemple de code de fonction Java à partir d'ici : fn-java-event-to-atp.zip et chargez-le dans votre Cloud Shell pour OCI, puis décompressez le fichier.

  7. Cliquez sur le menu au coin supérieur droit et sélectionnez Charger pour 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

    Note : Ce projet Java concis extrait l'entrée de données JSON du centre de connecteurs OCI, l'analyse selon un format prédéfini et insère de façon transparente les informations extraites dans votre base de données ATP. Pour assurer l'insertion appropriée des données, consultez les étapes suivantes pour obtenir des conseils sur le format de message requis et la table correspondante dans votre base de données ATP.

  9. Dans Cloud Shell pour OCI, 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. Allez à la console OCI, naviguez jusqu'à Services de développement, Fonctions, Applications, sélectionnez votre application (Myapp) et cliquez sur votre fonction.

    T9_1

    T9_1

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

  11. Créez toutes les configurations suivantes.

Nom/clé secrète Valeur
WALLET_BUCKET Wallet
WALLET_OBJECT nom de votre fichier zip
BUCKET_NAMESPACE Votre espace de noms de seau
DB_USER Votre nom d'utilisateur de base de données
DB_SERVICE_NAME le nom du service de base de données que vous trouvez dans les détails de connexion à votre base de données
DB_PASSWORD_OCID_VAULT coller votre OCID de clé secrète
DB_WALLET_PASSWORD_OCID_VAULT coller votre OCID de clé secrète

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

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

  1. Sélectionnez Oracle Autonomous Database sur lequel 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 LDD de création de table suivante.

    Note 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 le centre de connecteurs OCI pour appeler la fonction lorsque le nouveau message arrive dans le flux

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 configurerons un pipeline qui circule du service de diffusion en continu pour OCI, au moyen du centre de connecteurs OCI, et enfin vers le service des fonctions pour OCI.

  1. Allez à la console OCI, naviguez jusqu'à Analyse et intelligence artificielle, Messagerie et cliquez sur Centre de connecteurs.

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

    • Nom du connecteur : Entrez StreamingToFN.
    • Source : Sélectionnez Diffusion en continu.
    • Cible : Sélectionnez Fonctions.

    Note Comme préalable, assurez-vous d'avoir déjà créé votre groupe de flux et votre flux nommé myfirststream.

    T9_1

  3. Dans Configurer la source, sélectionnez votre groupe de flux et votre flux.

    T9_1

  4. Dans Configurer la cible, sélectionnez MyApp comme application de fonction et fn-java-event-to-atp comme fonction.

    T9_1

Note Vous devrez peut-être créer des politiques supplémentaires, comme suggéré dans la page Créer un connecteur.

Tâche 10 : Créer un message sur le service de diffusion en continu pour OCI et vérifier le fonctionnement du pipeline

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

Exemple de message JSON :

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

Procédez de la façon suivante :

  1. Allez à la console OCI, naviguez jusqu'à Analyse et intelligence artificielle, Messagerie, Diffusion en continu, sélectionnez votre flux (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

    Note Le pipeline de flux peut connaître un démarrage à froid lors de sa première exécution, ce qui peut entraîner un délai notable. Ceci est une conséquence de l'initialisation de la fonction qui se produit lors de la première tentative du concentrateur de connecteur d'envoyer un message.

Tâche 11 : Valider les données arrivées sur la base de données

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

    T9_1

  2. Exécutez l'interrogation suivante.

    select * from admin.my_table;
    

    T9_1

Dépannage et conseils

Confirmation

Autres ressources d'apprentissage

Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.

Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.