Uso de modelos de IA en OCI GoldenGate para crear incrustaciones vectoriales
Descubra cómo generar incrustaciones vectoriales con el servicio AI en despliegues de replicación de datos con GoldenGate 26ai y versiones posteriores.
Visión general
OCI GoldenGate incluye un servicio de IA que permite a los procesos de GoldenGate interactuar con modelos de IA de varios proveedores (OCI Generative AI, OpenAI, Google Gemini y Voyage AI) para generar incrustaciones vectoriales directamente dentro de los pipelines de replicación de datos.
Los siguientes pasos le guiarán a través de cómo configurar la conectividad a los modelos de IA y utilizarlos para generar incrustaciones vectoriales en un Replicat.
Antes de empezar
Para continuar, debe tener lo siguiente:
-
Una base de datos de origen. existente
-
Un destino existente de Oracle AI Database que admite vectores, como Oracle Autonomous AI Lakehouse.
-
Si utiliza Oracle Autonomous AI Database, desbloquee el usuario de GGADMIN.
-
La base de datos origen y destino deben estar en el mismo arrendamiento y la misma región.
-
Si necesita datos de ejemplo, descargue Archive.zip y, a continuación, siga las instrucciones de Laboratorio 1, Tarea 3: Carga del esquema ATP.
-
Una clave de API de OCI existente.
-
Un OCI Vault existente que contiene el contenido de clave de API privada.
-
Políticas mínimas recomendadas para utilizar OCI GoldenGate.
-
Las políticas mínimas recomendadas para utilizar OCI Generative AI.
Tarea 1: Configuración del entorno
-
Cree una conexión de origen de Oracle Autonomous AI Transaction Processing (ATP).
-
Cree una conexión de destino de Oracle Autonomous AI Lakehouse (ALK).
-
Utilice una herramienta SQL para activar el registro complementario en la base de datos origen:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -
Ejecute la siguiente consulta en la herramienta SQL para asegurarse de que support_mode=FULL para todas las tablas de la base datos de origen:
select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL'; -
Cree la siguiente tabla en la base de datos ALK de destino para almacenar la incrustación de vectores que se creará mediante el modelo 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) );
Tarea 2: Configuración del modelo AI
-
Creación de una conexión de modelo de AI
-
Nombre: OCI_GenAI_TextEmbeddingSmall
-
Tipo: Modelo de AI
-
Tipo de proveedor: OCI Generative AI
-
Tipo de autenticación: OCI Generative AI
-
Usuario: Usar arrendamiento y usuario actuales
-
Especificar la región
-
Proporcionar o crear un secreto que contenga la clave de API de OCI
-
Introducir la huella de clave de API
-
Seleccione un modelo de incrustación de la lista, como openai.text-embedding-3-small
-
Seleccione Crear
-
-
Revisar los detalles de conexión
-
Asigne la conexión del modelo AI a su despliegue:
-
Vaya a la página de detalles de despliegue y seleccione Conexiones asignadas
-
Seleccione Asignar conexión en la sección Conexiones de modelo de AI asignadas y, a continuación, seleccione la conexión de modelo de AI.
-
Seleccione Asignar conexión para confirmar la asignación
-
-
Asegúrese de que la nueva conexión de modelo de AI aparezca en la sección Conexiones de modelo de AI asignadas.
-
Al asignar la conexión del modelo AI al despliegue, se configura automáticamente el servicio AI en GoldenGate
-
Conéctese a la consola de OCI GoldenGate, vaya a Modelos de IA y revise la lista de modelos de IA.
-
Tome nota del nombre del modelo, ya que lo necesitará para utilizar la función @AISERVICE en un Replicat para crear la incrustación de vectores
-
El nombre de modelo de la función
@AISERVICEdebe coincidir con el nombre de modelo que se muestra en los modelos AI de OCI GoldenGate. Puede ser diferente del nombre de la conexión.
-
Tarea 3: Creación del Extract integrado
Un Extract integrado captura los cambios en curso en la base de datos de origen.
-
En la página Detalles del despliegue, seleccione Iniciar consola.
-
Si es necesario, introduzca oggadmin para el nombre de usuario y la contraseña que ha utilizado al crear el despliegue y, a continuación, seleccione Conectar.
-
Agregar datos de transacción y una tabla de puntos de control:
-
Abra el menú, a continuación, seleccione Conexiones de base de datos.
-
Seleccione Conectar a base de datos SourceDB.
-
En el menú de navegación, seleccione Trandata (Datos de transacción) y, a continuación, Add Trandata (icono más).
-
En Nombre de esquema, introduzca
SRC_OCIGGLLy, a continuación, seleccione Enviar. -
Para verificarlo, introduzca
SRC_OCIGGLLen el campo Buscar y seleccione Buscar. -
Abra el menú de navegación y, a continuación, seleccione Conexiones de base de datos.
-
Seleccione Conectar a base de datos TargetDB.
-
En el menú de navegación, seleccione Checkpoint (Punto de control) y, a continuación, Add Checkpoint (Agregar punto de control) (icono más).
-
En Tabla de puntos de control, introduzca
"SRCMIRROR_OCIGGLL"."CHECKTABLE"y, a continuación, seleccione Enviar.
-
-
Nota: Consulte opciones adicionales de parámetros de extracción para obtener más información sobre los parámetros que puede utilizar para especificar tablas de origen.
En la página Parámetros de extracción, agregue las siguientes líneas en
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.*; -
Compruebe si hay transacciones de larga duración. Ejecute el siguiente script en la base de datos de origen:
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);Si la consulta devuelve alguna fila, debe buscar el SCN de la transacción y, a continuación, confirmar o realizar un rollback de la transacción.
Tarea 4: Adición y ejecución de un Replicat sin integrar
-
Agregue y ejecute un Replicat.
En la pantalla Archivo de parámetros, sustituya
MAP *.*, TARGET *.*;por el siguiente script:-- 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 función @AISERVICE crea una incrustación de vectores a partir de los datos almacenados en la columna CITY mediante la conexión de modelo de AI definida anteriormente.
-
Realice inserciones en la base de datos origen:
-
Vuelva a la consola de Oracle Cloud y utilice el menú de navegación para volver a Oracle AI Database, Autonomous AI Transaction Processing y, a continuación, SourceDB.
-
En la página Detalles de SourceDB, seleccione Acciones de base de datos y, a continuación, SQL.
-
Introduzca las siguientes inserciones y, a continuación, seleccione Ejecutar 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); -
En la consola de despliegue de OCI GoldenGate, seleccione el nombre de extracción (UAEXT) y, a continuación, seleccione Estadísticas. Verifique que SRC_OCIGGLL.SRC_CITY se muestra con 10 inserciones.
-
Vuelva a la pantalla Visión general, seleccione el nombre de Replicat (REP) y, a continuación, seleccione Estadísticas. Verifique que SRCMIRROR_OCIGGLL.SRC_CITY se muestra con 10 inserciones
-
Vaya a la página de destino Autonomous AI Lakehouse Details, seleccione Database Actions y, a continuación, seleccione SQL
-
En SQL, ejecute
select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR;y revise los resultados, incluidas las incrustaciones vectoriales creadas por OCI GoldenGate mediante el servicio AI.
-
La tabla SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR contiene filas replicadas desde SRC_OCIGGLL.SRC_CITY y la columna CITY_EMBED contiene una embebido de vector generado para cada ciudad.
Solución de problemas
-
Si el Replicat no puede llamar al modelo, verifique que la conexión del modelo AI se haya asignado correctamente al despliegue.
-
Si la autenticación falla, verifique el secreto de clave de API de OCI, la huella, el usuario, el arrendamiento y la región.
-
Si se replican filas pero no se generan incrustaciones, confirme que el nombre del modelo en
@AISERVICEcoincide con el nombre del modelo que se muestra en los modelos de IA de OCI GoldenGate. -
Si el Replicat falla en la tabla de destino, verifique que la base de datos de destino soporta columnas vectoriales y que
CITY_EMBEDestá definido con dimensiones compatibles con el modelo de embebido seleccionado. -
Si la captura falla o las tablas se omiten, confirme que el registro complementario está activado y que el modo de soporte de la tabla de origen es
FULL.