Utilisation de l'API MongoDB avec Oracle Autonomous AI Database sur une infrastructure Exadata dédiée
Oracle Database API for MongoDB convertit le protocole de connexion MongoDB en instructions SQL exécutées par Oracle Database. Il permet aux développeurs disposant d'ensembles de compétences MongoDB d'écrire des applications de banque de documents JSON pour Oracle Database qui utilisent des pilotes et des outils qui comprennent le protocole MongoDB. See Overview of Oracle Database API for MongoDB in Oracle Database API for MongoDB for a detailed overview of this API.
Activer l'API MongoDB
Vous pouvez activer l'API MongoDB pour une base de données d'IA autonome à partir de la console OCI ou manuellement à l'aide d'Oracle REST Data Services (ORDS).
Pour utiliser l'API MongoDB avec une base de données Autonomous AI, vous devez installer et configurer Oracle REST Data Services (ORDS) géré par le client séparément, et la version d'ORDS doit être 22.3 ou ultérieure. Pour connaître les concepts architecturaux de cette API, reportez-vous à Oracle API for MongoDB Support dans le Guide d'installation et de configuration d'Oracle REST Data Services.
Pour activer l'API MongoDB à partir de la console OCI, procédez comme suit :
-
Sur la page Détails de la base de données Autonomous AI, sélectionnez l'onglet Configuration de l'outil.
-
Cliquez sur Modifier la configuration d'outil.
-
Dans la ligne API MongoDB, sélectionnez l'option Activer l'outil pour afficher Activé.
-
Cliquez sur Appliquer. L'état du cycle de vie passe à mise à jour jusqu'à ce que MongoDB soit activé.
Vous pouvez également activer l'API MongoDB lorsque vous provisionnez ou clonez une instance en sélectionnant Afficher les options avancées et en sélectionnant l'onglet Outils.
Pour activer MongoDB manuellement :
-
Installez et configurez ORDS en utilisant la commande
ords install adb.Pour plus d'informations, reportez-vous à la section Installing and Configuring Customer Managed ORDS on Autonomous AI Database du Guide d'installation et de configuration d'Oracle REST Data Services.
-
Créez un utilisateur compatible ORDS.
-
Connectez-vous à ORDS à l'aide du shell MongoDB.
Pour une démonstration des étapes ci-dessus, reportez-vous à la section Getting Started in Oracle REST Data Services Installation and Configuration Guide.
Connecter les applications MongoDB
Une fois l'API MongoDB activée, vous pouvez créer un utilisateur MongoDB et vous connecter à la base de données Autonomous AI avec sa chaîne de connexion.
Avec la chaîne de connexion de l'API MongoDB, vous pouvez utiliser le shell MongoDB, qui est un utilitaire de ligne de commande, pour connecter et interroger vos données.
Vous pouvez extraire sa chaîne de connexion à partir de la console Oracle Cloud Infrastructure. Pour extraire la chaîne de connexion de l'API MongoDB, procédez comme suit :
-
Sur la page Détails de la base de données Autonomous AI, sélectionnez l'onglet Configuration de l'outil.
-
Sur la ligne API MongoDB, sous URL d'accès, cliquez sur Copier.
Si vous utilisez l'API MongoDB sur la base de données Autonomous AI sur Exadata Cloud@Customer, votre équipe réseau/DNS doit s'assurer que tout nom d'hôte de chaîne de connexion MongoDB est résolu sur le SCAN du cluster. Sans cela, les clients MongoDB ne pourront pas se connecter à la base de données. Vous pouvez autoriser les connexions à toutes les bases de données Autonomous AI du cluster à l'aide d'un enregistrement DNS générique ou autoriser une base de données Autonomous AI spécifique :
Tester les connexions MongoDB
Création d'un utilisateur de base de données d'IA autonome de test pour MongoDB
Vous pouvez créer un utilisateur de test, ou un utilisateur authentifié de la même manière, à des fins de test.
-
Ouvrez la console OCI pour votre base de données Autonomous AI.
-
Cliquez sur Database Actions.
-
Dans la fenêtre de lancement Database Actions, cliquez sur Administration > Utilisateurs de base de données.
-
Cliquez sur + Créer un utilisateur sur la page Utilisateurs de base de données.
-
Entrez un nom utilisateur et un mot de passe pour l'utilisateur de test. Cliquez sur Accès Web, puis définissez le quota sur le tablespace DATA.
-
Cliquez sur l'onglet Rôles accordés.
-
Outre les rôles par défaut, sélectionnez et ajoutez le rôle
SODA_APPpour l'utilisateur. -
Cliquez sur Créer un utilisateur,
Tester la connexion à l'aide de la ligne de commande
-
Connectez-vous en tant qu'utilisateur de test. Suivez les étapes de l'exemple précédent pour obtenir des instructions.
$ mongosh --tls --tlsAllowInvalidCertificates 'mongodb://TESTUSER:<PASSWORD>@<database URL>. <OCI region>.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&loadBalanced=false' Current Mongosh Log ID: 614c9e2a01e3575c8c0b2ec7 Connecting to: mongodb://TESTUSER:<PASSWORD>@<database URL>.<OCIregion>.oraclecloudapps.com:27017/admin? authMechanism=PLAIN&authSource=$external&tls=true&loadBalanced=false Using MongoDB: 3.6.2 Using Mongosh: 1.0.7 For mongosh info see: https://docs.mongodb.com/mongodb-shell/admin > show dbs **testuser 0 B** > -
Créez une collection et insérez des documents dans votre collection.
testuser> show collections testuser> db.createCollection( 'fruit' ) { ok: 1 } testuser> show collections fruit testuser> db.fruit.insertOne( {name:"orange", count:42} ) { acknowledged: true, insertedId: ObjectId("614ca31fdab254f63e4c6b47") } testuser> db.fruit.insertOne( {name:"apple", count:12, color: "red"} ) { acknowledged: true, insertedId: ObjectId("614ca340dab254f63e4c6b48") } testuser> db.fruit.insertOne( {name:"pear", count:5} ) { acknowledged: true, insertedId: ObjectId("614ca351dab254f63e4c6b49") } testuser> -
Interrogez la collection à l'aide d'un client SQL tel que Database Actions.
SELECT f.json_document.name, f.json_document.count, f.json_document.color FROM fruit f;
Test de la connexion à l'aide d'une application Node.js
-
Téléchargez Node.js. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.
$ wget https://nodejs.org/dist/latest-v14.x/node-v14.17.5-linux-x64.tar.xz -
Extrayez le contenu de l'archive Node,js. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.
$ tar -xf node-v14.17.5-linux-x64.tar.xz -
Configuration de la variable d'environnement
PATH. Si vous avez déjà téléchargé ou installé Node.js pour votre environnement, vous pouvez ignorer cette étape.$ export PATH="`pwd`"/node-v14.17.5-linux-x64/bin:$PATH -
Testez votre connexion avec un exemple de Javascript.
a. Créer un répertoire.
$ mkdir autonomous_mongodb $ cd autonomous_mongodb $ npm init -yb. Installez la dépendance mongodb.
$ npm install mongodbc. Créez une application JavaScript nommée
connect.js.const { MongoClient } = require("mongodb"); const uri = "mongodb://TESTUSER:<PASSWORD>@<Database URI>.<OCI region>.oraclecloudapps.com:27017/admin?authMechanism=PLAIN&authSource=$external&ssl=true&loadBalanced=false"; const client = new MongoClient(uri); async function run() { try { await client.connect(); const database = client.db('admin'); const movies = database.collection('movies'); // Insert a movie const doc = { title: 'Back to the Future', year: 1985, genres: ['Adventure', 'Comedy', 'Sci-Fi'] } const result = await movies.insertOne(doc); // Query for a movie that has the title 'Back to the Future' :) const query = { title: 'Back to the Future' }; const movie = await movies.findOne(query); console.log(movie); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
d. Exécutez l'exemple. La sortie doit ressembler à ce qui suit.
$ node connect
{
_id: new ObjectId("611e3266005202371acf27c1"),
title: 'Back to the Future',
year: 1985,
genres: [ 'Adventure', 'Comedy', 'Sci-Fi' ]
}
Pourcentage d'encodage URI pour les caractères réservés
Utilisez l'encodage en pourcentage URI pour remplacer les caractères réservés dans votre URI de chaîne de connexion - en particulier les caractères de votre nom d'utilisateur et de votre mot de passe. Voici les caractères réservés et leur codage en pourcentage :
| Caractère réservé | Encodage du pourcentage |
|---|---|
| ! | %21 |
| # | %23 |
| $ | %24 |
| % | %25 |
| & | %26 |
| ’ | %27 |
| ( | %28 |
| ) | %29 |
| * | %2A |
| + | %2B |
| , | %2C |
| / | %2F |
| : | %3A |
| ; | %3B |
| = | %3D |
| ? | %3F |
| @ | %40 |
| [ | %5B |
| ] | %5D |
Par exemple, si votre nom utilisateur est RUTH et que votre mot de passe est @least1/2#?, la chaîne de connexion MongoDB au serveur <server> peut se présenter comme suit :
'mongodb://RUTH:%40least1%2F2%23%3F@<server>:27017/ruth/ ...'
Selon les outils ou pilotes que vous utilisez, vous pouvez fournir un nom d'utilisateur et un mot de passe en tant que paramètres distincts, au lieu de faire partie d'une chaîne de connexion URI. Dans ce cas, vous n'aurez probablement pas besoin de coder les caractères réservés qu'ils contiennent.