Utiliser des modèles d'IA dans OCI GoldenGate pour créer des incorporations de vecteurs
Découvrez comment générer des intégrations vectorielles à l'aide du service AI dans les déploiements de réplication de données à l'aide de GoldenGate 26ai et versions supérieures.
Présentation
OCI GoldenGate inclut un service d'IA qui permet aux processus GoldenGate d'interagir avec les modèles d'IA de différents fournisseurs (OCI Generative AI, OpenAI, Google Gemini et Voyage AI) pour générer des incorporations vectorielles directement dans les pipelines de réplication de données.
Les étapes suivantes vous guident tout au long de la configuration de la connectivité aux modèles AI et de leur utilisation pour générer des incorporations vectorielles dans une réplication.
Avant de commencer
Pour continuer, vous devez disposer des éléments suivants :
-
Une base de données source. existante
-
Une cible existante Oracle AI Database prenant en charge des vecteurs, tels qu'Oracle Autonomous AI Lakehouse.
-
Si vous utilisez Oracle Autonomous AI Database, déverrouillez l'utilisateur GGADMIN.
-
Les bases de donnée source et cible doivent se trouver dans la même location et la même région.
-
Si vous avez besoin de données échantillon, téléchargez Archive.zip, puis suivez les instructions fournies dans l'atelier pratique 11, Tâche 3 : charger le schéma ATP.
-
Clé d'API OCI existante.
-
OCI Vault existant contenant le contenu de la clé d'API privée.
-
Stratégies minimales recommandées pour utiliser OCI GoldenGate.
-
Stratégies minimales recommandées pour utiliser OCI Generative AI.
Tâche 1 : configurer l'environnement
-
Créez une connexion Oracle Autonomous AI Transaction Processing (ATP) source.
-
Créez une connexion Oracle Autonomous AI Lakehouse (ALK) cible.
-
Utilisez un outil SQL pour activer la journalisation supplémentaire sur la base de données source :
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -
Exécutez la requête suivante dans l'outil SQL afin de vous assurer que support_mode=FULL pour toutes les tables du fichier source :
select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL'; -
Créez le tableau suivant sur la base de données ALK cible pour stocker l'intégration vectorielle qui sera créée à l'aide du modèle OpenAI text-embedding-3-small :
CREATE TABLE "SRCMIRROR_OCIGGLL"."SRC_CITY_VECTOR" ( "CITY_ID" NUMBER(10,0), "CITY" VARCHAR2(50 BYTE), "REGION_ID" NUMBER(10,0), "POPULATION" NUMBER(10,0), "CITY_EMBED" VECTOR(1536,FLOAT32) );
Tâche 2 : configurer le modèle AI
-
Création d'une connexion de modèle AI
-
Nom : OCI_GenAI_TextEmbeddingSmall
-
Type : Modèle d'IA
-
Type de fournisseur : OCI Generative AI
-
Type d'authentification : OCI Generative AI
-
Utilisateur : utiliser la location et l'utilisateur en cours
-
Indiquer la région
-
Fournir ou créer une clé secrète contenant la clé d'API OCI
-
Entrer l'empreinte de clé d'API
-
Sélectionnez un modèle d'intégration dans la liste, tel que openai.text-embedding-3-small
-
Choisissez Créer
-
-
Vérifier les détails de la connexion
-
Affectez la connexion AI Model à votre déploiement :
-
Accédez à la page de détails du déploiement, puis sélectionnez Connexions affectées.
-
Sélectionnez Affecter une connexion dans la section Connexions au modèle AI affectées, puis sélectionnez la connexion au modèle AI.
-
Sélectionnez Affecter une connexion pour confirmer l'affectation
-
-
Assurez-vous que la nouvelle connexion au modèle AI est répertoriée dans la section Connexions au modèle AI affectées.
-
L'affectation de la connexion au modèle AI au déploiement configure automatiquement le service AI dans GoldenGate
-
Connectez-vous à la console OCI GoldenGate, accédez à Modèles d'IA et consultez la liste des modèles d'IA.
-
Notez le nom du modèle car vous en aurez besoin pour utiliser la fonction @AISERVICE dans une réplication afin de créer l'intégration de vecteurs
-
Le nom de modèle dans la fonction
@AISERVICEdoit correspondre au nom de modèle indiqué dans les modèles AI OCI GoldenGate. Il peut être différent du nom de connexion.
-
Tâche 3 : créer l'extraction intégrée
L'extraction intégrée capture les modifications continues apportées à la base de données source.
-
Sur la page Détails du déploiement, sélectionnez Lancer la console.
-
Si nécessaire, entrez oggadmin pour le nom utilisateur et le mot de passe que vous avez utilisés lors de la création du déploiement, puis sélectionnez Connexion.
-
Ajouter des données de transaction et une table de points de reprise :
-
Ouvrez le menu de navigation, puis sélectionnez Connexions de base de données.
-
Sélectionnez Connexion à la base de données SourceDB.
-
Dans le menu de navigation, sélectionnez Trandata, puis Ajouter Trandata (icône Plus).
-
Dans Nom du schéma, entrez
SRC_OCIGGLL, puis sélectionnez Soumettre. -
Pour vérifier, entrez
SRC_OCIGGLLdans le champ Rechercher et sélectionnez Rechercher. -
Ouvrez le menu de navigation, puis sélectionnez Connexions de base de données.
-
Sélectionnez Connexion à la base de données TargetDB.
-
Dans le menu de navigation, sélectionnez Point de reprise, puis Ajouter un point de reprise (icône Plus).
-
Dans Table de point de reprise, entrez
"SRCMIRROR_OCIGGLL"."CHECKTABLE", puis sélectionnez Soumettre.
-
-
Remarque : Pour plus d'informations sur les paramètres que vous pouvez utiliser pour spécifier des tables source, voir Options de paramètre d'extraction supplémentaires.
Sur la page Paramètres d'extraction, ajoutez les lignes suivantes sous
EXTTRAIL <trail-name>:-- Capture DDL operations for listed schema tables ddl include mapped -- Add step-by-step history of to the report file. Useful when troubleshooting. ddloptions report -- Write capture stats per table to the report file daily. report at 00:01 -- Rollover the report file weekly. Useful when IE runs -- without being stopped/started for long periods of time to -- keep the report files from becoming too large. reportrollover at 00:01 on Sunday -- Report total operations captured, and operations per second -- every 10 minutes. reportcount every 10 minutes, rate -- Table list for capture table SRC_OCIGGLL.*; -
Recherchez les éventuelles transactions à longue durée d'exécution. Exécutez le script suivant sur la base de données source :
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);Si la requête renvoie des lignes, vous devez localiser le numéro SCN de la transaction, puis valider ou annuler la transaction.
Tâche 4 : ajouter et exécuter une réplication non intégrée
-
Ajoutez et exécutez une réplication.
Sur l'écran Fichier de paramètre, remplacez
MAP *.*, TARGET *.*;par le script suivant :-- Capture DDL operations for listed schema tables ddl include mapped -- -- Add step-by-step history of ddl operations captured -- to the report file. Very useful when troubleshooting. ddloptions report -- -- Write capture stats per table to the report file daily. report at 00:01 -- -- Rollover the report file weekly. Useful when PR runs -- without being stopped/started for long periods of time to -- keep the report files from becoming too large. reportrollover at 00:01 on Sunday -- -- Report total operations captured, and operations per second -- every 10 minutes. reportcount every 10 minutes, rate -- -- Table map list for apply MAP SRC_OCIGGLL.SRC_CITY, TARGET SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR, COLMAP ( USEDEFAULTS, CITY_EMBED = @AISERVICE(embed,'OCI_GenAI_TextEmbeddingSmall',CITY) );Remarque
La fonction @AISERVICE crée une intégration de vecteur à partir des données stockées dans la colonne CITY à l'aide de la connexion de modèle AI définie précédemment.
-
Effectuez des insertions dans la base de données source :
-
Revenez à la console Oracle Cloud et utilisez le menu de navigation pour revenir à Oracle AI Database, à Autonomous AI Transaction Processing, puis à SourceDB.
-
Sur la page Détails de la base de données source, sélectionnez Database actions, puis SQL.
-
Entrez les insertions suivantes, puis sélectionnez Exécuter le script :
Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581); Insert into SRC_OCIGGLL.SRC_CITY (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002); -
Dans la console de déploiement OCI GoldenGate, sélectionnez le nom d'extraction (UAEXT), puis sélectionnez Statistiques. Vérifiez que SRC_OCIGGLL.SRC_CITY est répertorié avec 10 insertions.
-
Revenez à l'écran Overview, sélectionnez le nom de réplication (REP), puis sélectionnez Statistics. Vérifiez que SRCMIRROR_OCIGGLL.SRC_CITY est répertorié avec 10 insertions
-
Accédez à la page Détails du lakehouse Autonomous AI cible, sélectionnez Database Actions, puis SQL
-
Dans SQL, exécutez
select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR;et vérifiez les résultats, y compris les incorporations vectorielles créées par OCI GoldenGate à l'aide du service AI.
-
La table SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR contient des lignes répliquées à partir de SRC_OCIGGLL.SRC_CITY et la colonne CITY_EMBED contient une intégration de vecteur générée pour chaque ville.
Dépannage
-
Si le processus Replicat ne peut pas appeler le modèle, vérifiez que la connexion au modèle AI a été affectée au déploiement.
-
En cas d'échec de l'authentification, vérifiez la clé secrète de clé d'API OCI, l'empreinte, l'utilisateur, la location et la région.
-
Si des lignes sont répliquées mais que les incorporations ne sont pas générées, vérifiez que le nom de modèle dans
@AISERVICEcorrespond au nom de modèle répertorié dans les modèles AI OCI GoldenGate. -
Si le processus Replicat échoue sur la table cible, vérifiez que la base de données cible prend en charge les colonnes vectorielles et que
CITY_EMBEDest défini avec des dimensions compatibles avec le modèle d'intégration sélectionné. -
Si la capture échoue ou si les tables sont ignorées, vérifiez que la journalisation supplémentaire est activée et que le mode de prise en charge de la table source est
FULL.