Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
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 :
- Ce tutoriel est conçu uniquement à des fins éducatives et d'étude. Il fournit un environnement permettant aux apprenants d'expérimenter et d'acquérir une expérience pratique dans un environnement contrôlé. Il est essentiel de noter que les configurations et pratiques de sécurité utilisées dans ce tutoriel peuvent ne pas convenir à des scénarios réels.
- Les considérations de sécurité pour les applications réelles sont souvent beaucoup plus complexes et dynamiques. Par conséquent, avant de mettre en œuvre l'une des techniques ou configurations démontrées ici dans un environnement de production, il est essentiel d'effectuer une évaluation et un examen complets de la sécurité. Cet examen devrait englober tous les aspects de la sécurité, y compris le contrôle d'accès, le cryptage, la surveillance et la conformité, afin de s'assurer que le système s'aligne sur les politiques et les normes de sécurité de l'organisation.
- La sécurité doit toujours être une priorité absolue lors de la transition d'un environnement de laboratoire à un déploiement réel.
Objectifs
- Créez un pipeline de transmission en continu de données transparent qui traite les messages en temps réel. Lorsqu'un nouveau message est publié dans un flux OCI, il est automatiquement transmis et traité par OCI Functions, qui charge ensuite les données dans la base de données Oracle Autonomous Transaction Processing (ATP). Cette solution de bout en bout présente une assimilation et une transformation efficaces des données à l'aide des services OCI, garantissant ainsi une intégration sécurisée et évolutive entre les systèmes de diffusion en continu et de base de données.
Prérequis
-
Oracle Cloud Infrastructure:
-
Compte Oracle avec des autorisations d'accès de niveau administrateur.
-
Compartiment permettant de créer les ressources.
Remarque : notez le nom et l'ID du compartiment.
-
VCN avec un sous-réseau privé. Pour plus d'informations, reportez-vous à Création d'un réseau cloud virtuel.
Remarque : notez l'OCID et le nom de sous-réseau du VCN, vous en aurez besoin pour le pool de flux de données et les fonctions.
-
Créez un pool de flux de données sur le sous-réseau privé à partir de votre VCN. Pour plus d'informations, reportez-vous à Création d'un pool de flux de données.
-
Créez le flux de données nommé
myfirststream
sur le pool de flux de données créé précédemment. Pour plus d'informations, reportez-vous à Création d'un flux de données. -
Oracle Autonomous Database. Pour plus d'informations, reportez-vous à Oracle Autonomous Database.
-
Un coffre OCI pour stocker les clés secrètes. Pour plus d'informations, reportez-vous à Création d'un coffre.
-
Jeton d'authentification OCI permettant d'activer la connexion à OCI Container Registry. Pour plus d'informations, reportez-vous à Génération d'un jeton d'authentification pour permettre la connexion à Oracle Cloud Infrastructure Registry.
-
-
Environnement OCI Cloud Shell :
- OCI Cloud Shell est nécessaire pour déployer la fonction vers OCI. Si vous ne disposez pas d'OCI Cloud Shell, vous pouvez utiliser un hôte Bastion à la place. Pour plus d'informations, reportez-vous à Présentation de Bastion.
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.
-
Nom de groupe : entrez
MyFunctions
.ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
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.
-
Nom de stratégie : entrez
FunctionsPolicies
.Allow dynamic-group MyFunctions to {STREAM_INSPECT, STREAM_READ, STREAM_CONSUME, STREAM_PRODUCE} in compartment YOUR-COMPARTMENT-NAME Allow dynamic-group MyFunctions to read repos in compartment YOUR-COMPARTMENT-NAME Allow dynamic-group MyFunctions to read objects in compartment YOUR-COMPARTMENT-NAME Allow dynamic-group MyFunctions to read secret-bundles in compartment YOUR-COMPARTMENT-NAME
Tâche 3 : création d'un registre de conteneurs OCI
-
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
.
-
-
Vérifiez les référentiels et notez l'espace de noms.
-
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
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.
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.
-
Accédez à la console OCI, accédez à Oracle Database, cliquez sur Autonomous Database et sélectionnez votre ATP.
-
Cliquez sur Connexion à la base de données.
-
Entrez votre mot de passe de portefeuille et notez que vous en aurez besoin dans votre application.
-
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é.
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.
-
Accédez à la console OCI, accédez à Identité et sécurité, à Coffre et sélectionnez votre coffre.
-
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 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.
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.
-
Accédez à la console OCI, accédez à Services de développeur, à Fonctions, à Applications et cliquez sur Créer une application.
-
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.
-
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
-
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
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.
-
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
-
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.
-
Cliquez sur le menu déroulant en haut à droite et sélectionnez Télécharger pour télécharger le fichier.
-
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
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.
-
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
-
Accédez à la console OCI, sélectionnez Services de développeur, Fonctions, Applications, sélectionnez l'application (
Myapp
) et cliquez sur la fonction.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.
-
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.
-
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.
-
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) ) ;
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.
-
Accédez à la console OCI, accédez à Analytics et IA, à Messagerie et cliquez sur Hub de connecteurs.
-
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
. - Nom du connecteur : entrez
-
Dans Configurer la source, sélectionnez le pool de flux de données et le flux de données.
-
Dans Configurer la cible, sélectionnez MyApp en tant qu'application de fonction et fn-java-event-to-atp en tant que fonction.
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:
-
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. -
Dans Données, entrez l'exemple de message JSON et cliquez sur Produire.
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
-
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.
-
Exécutez la requête suivante .
select * from admin.my_table;
Dépannage et conseils
-
Activez les journaux pour votre fonction et recherchez les erreurs éventuelles. Pour plus d'informations sur la journalisation, reportez-vous à Stockage et affichage des journaux de fonction.
-
Vérifiez que toutes les stratégies sont en place, comme indiqué dans la section Prérequis.
-
Activez les journaux pour le hub de connecteur OCI. Pour plus d'informations, reportez-vous à Journaux pour Connector Hub.
Liens connexes
Remerciements
- Auteur - Joao Tarla (Ingénieur solutions Oracle LAD A-Team)
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.
Stream Data to Oracle Autonomous Transaction Processing Database using OCI Functions
G25947-01
February 2025
Copyright ©2025, Oracle and/or its affiliates.