Usar Modelos de IA no OCI GoldenGate para Criar Incorporações de Vetor
Saiba como gerar incorporações de vetores usando o AI Service em implantações de replicação de dados usando o GoldenGate 26ai e versões posteriores.
Visão geral
O OCI GoldenGate inclui um Serviço de IA que permite que os processos do GoldenGate interajam com modelos de IA de vários provedores (OCI Generative AI, OpenAI, Google Gemini e Voyage AI) para gerar incorporações de vetores diretamente nos pipelines de replicação de dados.
As etapas a seguir orientam você sobre como configurar a conectividade com Modelos de IA e usá-los para gerar incorporações de vetores em um Replicat.
Antes de começar
Para continuar, você deve ter o seguinte:
-
Um banco de dados de origem. existente
-
Um Oracle AI Database de destino existente que suporta vetores, como o Oracle Autonomous AI Lakehouse.
-
Se você usar o Oracle Autonomous AI Database, desbloqueie o usuário GGADMIN.
-
Os bancos de dados de origem e de destino devem estar na mesma tenancy e região.
-
Se precisar de dados de amostra, faça download de Archive.zip e siga as instruções em Lab 1, Tarefa 3: Carregar o esquema ATP
-
Uma chave de API do OCI existente.
-
Um OCI Vault existente que contém o conteúdo da chave de API privada.
-
As políticas mínimas recomendadas para usar o OCI GoldenGate.
-
As políticas mínimas recomendadas para usar o OCI Generative AI.
Tarefa 1: Configurar o ambiente
-
Crie uma conexão de origem do Oracle Autonomous AI Transaction Processing (ATP).
-
Crie uma conexão do Oracle Autonomous AI Lakehouse (ALK) de destino.
-
Use uma ferramenta SQL para ativar o log complementar no banco de dados de origem:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -
Execute a seguinte consulta na ferramenta SQL para garantir que support_mode=FULL para todas as tabelas do banco de dados de origem:
select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL'; -
Crie a seguinte tabela no banco de dados ALK de destino para armazenar a incorporação vetorial que será criada usando o 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) );
Tarefa 2: Configurar o Modelo AI
-
Criar uma Conexão de Modelo de IA
-
Nome: OCI_GenAI_TextEmbeddingSmall
-
Tipo: Modelo de IA
-
Tipo de provedor: OCI Generative AI
-
Tipo de autenticação: OCI Generative AI
-
Usuário: Usar a tenancy e o usuário atuais
-
Especifique a região
-
Fornecer ou criar um Segredo contendo a Chave de API do OCI
-
Digite a impressão digital da Chave de API
-
Selecione um modelo de incorporação na lista, como openai.text-embedding-3-small
-
Selecione Criar
-
-
Verifique os detalhes da Conexão
-
Atribua a conexão do Modelo de IA à sua implantação:
-
Vá para a página de detalhes da Implantação e selecione Conexões designadas
-
Selecione Designar conexão na seção Conexões do modelo de IA Designado e, em seguida, selecione a conexão do Modelo de IA.
-
Selecione Designar conexão para confirmar a atribuição
-
-
Certifique-se de que a nova conexão do Modelo de IA esteja listada na seção Conexões do modelo de IA Atribuído.
-
Designar a conexão do Modelo de IA à implantação configura automaticamente o Serviço AI no GoldenGate
-
Faça log-in na console do OCI GoldenGate, acesse os Modelos de IA e revise a lista de modelos de IA.
-
Anote o Nome do Modelo, pois você precisará dele para usar a função @AISERVICE em um Replicat para criar a incorporação de vetores
-
O nome do modelo na função
@AISERVICEdeve corresponder ao Nome do Modelo mostrado nos Modelos de IA do OCI GoldenGate. Pode ser diferente do nome da conexão.
-
Tarefa 3: Criar o Extract Integrado
Um Extract Integrado captura alterações contínuas no banco de dados de origem.
-
Na página Detalhes da implantação, selecione Iniciar console.
-
Se necessário, informe oggadmin para o Nome do usuário e a senha que você usou ao criar a implantação e selecione Acessar.
-
Adicionar Dados da Transação e uma Tabela de Checkpoint:
-
Abra o menu e selecione Conexões de Banco de Dados.
-
Selecione Conectar-se ao banco de dados SourceDB.
-
No menu de navegação, selecione Trandata e, em seguida, Adicionar Trandata (ícone de mais).
-
Para Nome do Esquema, digite
SRC_OCIGGLLe selecione Enviar. -
Para verificar, digite
SRC_OCIGGLLno campo Pesquisar e selecione Pesquisar. -
Abra o menu e selecione Conexões de Banco de Dados.
-
Selecione Conectar-se ao banco de dados TargetDB.
-
No menu de navegação, selecione Checkpoint e, em seguida, Add Checkpoint (ícone de mais).
-
Para Tabela de Checkpoint, digite
"SRCMIRROR_OCIGGLL"."CHECKTABLE"e selecione Submeter.
-
-
Adicione um processo de Extract.
Observação: Consulte opções de parâmetro de extração adicionais para obter mais informações sobre parâmetros que você pode usar para especificar tabelas de origem.
Na página Parâmetros da Extração, anexe as seguintes linhas em
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.*; -
Verifique transações de longa execução. Execute o seguinte script no seu banco de dados de origem:
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);Se a consulta retornar linhas, localize o SCN da transação e, em seguida, confirme ou reverta a transação.
Tarefa 4: Adicionar e executar um processo de Replicat Não Integrado
-
Adicionar e executar um processo Replicat.
Na tela Arquivo de Parâmetro, substitua
MAP *.*, TARGET *.*;pelo seguinte 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) );Observação
A função @AISERVICE cria uma incorporação vetorial a partir dos dados armazenados na coluna CITY usando a conexão do Modelo de IA definida anteriormente.
-
Executar Inserções no banco de dados de origem:
-
Retorne à console do Oracle Cloud e use o menu de navegação para navegar de volta para o Oracle AI Database, Autonomous AI Transaction Processing e, em seguida, SourceDB.
-
Na página Detalhes do SourceDB, selecione Database actions e, em seguida, selecione SQL.
-
Informe as seguintes inserções e selecione Executar 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); -
Na Console de Implantação do OCI GoldenGate, selecione o Nome da extração (UAEXT) e selecione Estatísticas. Verifique se SRC_OCIGGLL.SRC_CITY está listada com 10 inserções.
-
Volte para a tela Visão Geral, selecione o Nome do replicador (REP) e, em seguida, selecione Estatísticas. Verifique se SRCMIRROR_OCIGGLL.SRC_CITY está listada com 10 inserções
-
Vá para a página Detalhes do Autonomous AI Lakehouse de destino, selecione Database Actions e SQL
-
Em SQL, execute
select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR;e revise os resultados, incluindo as incorporações de vetores criadas pelo OCI GoldenGate usando o AI Service.
-
A tabela SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR contém linhas replicadas de SRC_OCIGGLL.SRC_CITY e a coluna CITY_EMBED contém uma incorporação de vetor gerada para cada cidade.
Diagnosticando e Solucionando Problemas
-
Se o Replicat não puder chamar o modelo, verifique se a conexão do Modelo de IA foi designada com sucesso à implantação.
-
Se a autenticação falhar, verifique o segredo da chave da API do OCI, impressão digital, usuário, tenancy e região.
-
Se as linhas forem replicadas, mas as incorporações não forem geradas, confirme se o nome do modelo em
@AISERVICEcorresponde ao Nome do Modelo listado nos Modelos do OCI GoldenGate AI. -
Se o processo Replicat falhar na tabela de destino, verifique se o banco de dados de destino suporta colunas vetoriais e se o
CITY_EMBEDestá definido com dimensões compatíveis com o modelo de incorporação selecionado. -
Se a captura falhar ou as tabelas forem ignoradas, confirme se o log complementar está ativado e se o modo de suporte da tabela de origem é
FULL.