Utilizzare i modelli AI in OCI GoldenGate per creare integrazioni vettoriali
Scopri come generare integrazioni vettoriali utilizzando il servizio AI nelle distribuzioni di replica dei dati utilizzando GoldenGate 26ai e versioni successive.
Panoramica
OCI GoldenGate include un servizio AI che consente AI processi GoldenGate di interagire con i modelli AI di vari provider (OCI Generative AI, OpenAI, Google Gemini e Voyage AI) per generare integrazioni vettoriali direttamente all'interno delle pipeline di replica dei dati.
I passi riportati di seguito descrivono come impostare la connettività AI modelli AI e utilizzarli per generare integrazioni vettoriali in un Replicat.
Prima di iniziare
Per procedere è necessario disporre dei seguenti elementi:
-
Database di origine esistente.
-
Un Oracle AI Database di destinazione esistente che supporta vettori come Oracle Autonomous AI Lakehouse.
-
Se utilizzi Oracle Autonomous AI Database, sblocca l'utente GGADMIN.
-
Il database di origine e quello di destinazione devono trovarsi nella stessa tenancy e area.
-
Se sono necessari dati di esempio, scaricare Archive.zip, quindi seguire le istruzioni riportate in Lab 1, Task 3: Carica lo schema ATP.
-
Una chiave API OCI esistente.
-
Un Vault OCI esistente contenente il contenuto della chiave API privata.
-
Criteri consigliati minimi per utilizzare OCI GoldenGate.
-
Criteri consigliati minimi per utilizzare l'AI generativa OCI.
Task 1: Impostare l'ambiente
-
Creare una connessione ATP (Oracle Autonomous AI Transaction Processing) di origine.
-
Creare una connessione Oracle Autonomous AI Lakehouse (ALK) di destinazione.
-
Utilizzare uno strumento SQL per abilitare il log supplementare sul database di origine:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -
Eseguire la query seguente nello strumento SQL per assicurarsi che support_mode=FULL per tutte le tabelle nel database di origine:
select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL'; -
Creare la tabella seguente nel database ALK di destinazione per memorizzare l'incorporamento vettoriale che verrà creato utilizzando il modello 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) );
Task 2: configurare il modello AI
-
Creare una connessione modello AI
-
Nome: OCI_GenAI_TextEmbeddingSmall
-
Tipo: Modello AI
-
Tipo di provider: AI generativa OCI
-
Tipo di autenticazione: AI generativa OCI
-
Utente: usa tenancy e utente corrente
-
Specificare l'area
-
Fornire o creare un segreto contenente la chiave API OCI
-
Immettere l'impronta della chiave API
-
Selezionare un modello di incorporamento dall'elenco, ad esempio openai.text-embedding-3-small
-
Selezionare Crea
-
-
Esaminare i dettagli della connessione
-
Assegnare la connessione al modello AI alla distribuzione:
-
Andare alla pagina dei dettagli della distribuzione, selezionare Connessioni assegnate
-
Selezionare Assegna connessione nella sezione Connessioni modello AI assegnate, quindi selezionare la connessione modello AI.
-
Selezionare Assegna connessione per confermare l'assegnazione
-
-
Assicurarsi che la nuova connessione al modello AI sia elencata nella sezione Connessioni al modello AI assegnate.
-
L'assegnazione della connessione al modello AI alla distribuzione configura automaticamente il servizio AI in GoldenGate
-
Eseguire il login alla console OCI GoldenGate, andare AI modelli AI ed esaminare la lista dei modelli AI.
-
Prendere nota del nome del modello in quanto sarà necessario utilizzare la funzione @AISERVICE in un Replicat per creare l'incorporamento vettoriale
-
Il nome del modello nella funzione
@AISERVICEdeve corrispondere al nome del modello mostrato nei modelli AI GoldenGate OCI. Potrebbe essere diverso dal nome della connessione.
-
Task 3: Creazione dell'estrazione integrata
Un'estrazione integrata acquisisce le modifiche in corso al database di origine.
-
Nella pagina Dettagli distribuzione selezionare Avvia console.
-
Se necessario, immettere oggadmin per il nome utente e la password utilizzati durante la creazione della distribuzione, quindi selezionare Connetti.
-
Aggiungi dati transazione e tabella checkpoint:
-
Aprire il menu di navigazione, quindi selezionare Connessioni DB.
-
Selezionare Connetti a database SourceDB.
-
Nel menu di navigazione selezionare Trandata, quindi selezionare Aggiungi Trandata (icona più).
-
Per Nome schema, immettere
SRC_OCIGGLL, quindi selezionare Sottometti. -
Per verificare, immettere
SRC_OCIGGLLnel campo Cerca e selezionare Cerca. -
Aprire il menu di navigazione, quindi selezionare Connessioni DB.
-
Selezionare Connetti a database TargetDB.
-
Nel menu di navigazione selezionare Checkpoint, quindi selezionare Aggiungi checkpoint (icona più).
-
Per Tabella checkpoint, immettere
"SRCMIRROR_OCIGGLL"."CHECKTABLE", quindi selezionare Sottometti.
-
-
Nota: per ulteriori informazioni sui parametri che è possibile utilizzare per specificare le tabelle di origine, vedere opzioni aggiuntive dei parametri di estrazione.
Nella pagina Estrai parametri, aggiungere le righe seguenti in
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.*; -
Controllare le transazioni a esecuzione prolungata. Eseguire lo script seguente nel database di origine:
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);Se la query restituisce righe, è necessario individuare l'SCN della transazione e quindi eseguire il commit o il rollback della transazione.
Task 4: Aggiunta ed esecuzione di un Replicat non integrato
-
Aggiungere ed eseguire Replicat.
Nella schermata File dei parametri sostituire
MAP *.*, TARGET *.*;con lo script seguente:-- 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) );Nota
La funzione @AISERVICE crea un vettore che incorpora i dati memorizzati nella colonna CITY utilizzando la connessione al modello AI definita in precedenza.
-
Eseguire inserimenti nel database di origine:
-
Tornare alla console di Oracle Cloud e utilizzare il menu di navigazione per tornare a Oracle AI Database, Autonomous AI Transaction Processing e quindi a SourceDB.
-
Nella pagina Dettagli SourceDB, selezionare Azioni database, quindi SQL.
-
Immettere gli inserimenti riportati di seguito, quindi selezionare Esegui 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); -
Nella console di distribuzione OCI GoldenGate, selezionare il nome di estrazione (UAEXT), quindi selezionare Statistiche. Verificare che SRC_OCIGGLL.SRC_CITY sia elencato con 10 inserimenti.
-
Tornare alla schermata Panoramica, selezionare Replicat name (REP), quindi selezionare Statistics. Verificare che SRCMIRROR_OCIGGLL.SRC_CITY sia elencato con 10 inserimenti
-
Andare alla pagina Dettagli Autonomous AI Lakehouse di destinazione, selezionare Azioni database, quindi selezionare SQL
-
In SQL, eseguire
select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR;ed esaminare i risultati, incluse le integrazioni vettoriali create da OCI GoldenGate utilizzando il servizio AI.
-
La tabella SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR contiene righe replicate da SRC_OCIGGLL.SRC_CITY e la colonna CITY_EMBED contiene un incorporamento vettoriale generato per ogni città.
Risoluzione dei problemi
-
Se Replicat non è in grado di chiamare il modello, verificare che la connessione al modello AI sia stata assegnata correttamente alla distribuzione.
-
Se l'autenticazione non riesce, verificare il segreto della chiave API OCI, l'impronta digitale, l'utente, la tenancy e l'area.
-
Se le righe vengono replicate ma non vengono generate integrazioni, verificare che il nome del modello in
@AISERVICEcorrisponda al nome del modello elencato nei modelli AI GoldenGate OCI. -
Se Replicat non riesce nella tabella di destinazione, verificare che il database di destinazione supporti le colonne vettoriali e che
CITY_EMBEDsia definito con dimensioni compatibili con il modello di incorporamento selezionato. -
Se l'acquisizione non riesce o le tabelle vengono saltate, confermare che la registrazione supplementare è abilitata e che la modalità di supporto della tabella di origine è
FULL.