在 OCI GoldenGate 中使用 AI 模型创建向量嵌入

了解如何使用 GoldenGate 26ai 及更高版本在数据复制部署中使用 AI 服务生成向量嵌入。

概述

OCI GoldenGate 包含一个 AI 服务,允许 GoldenGate 流程与来自各种提供商(OCI Generative AI、OpenAI、Google Gemini 和 Voyage AI)的 AI 模型交互,以直接在数据复制管道中生成向量嵌入。

以下步骤将指导您完成如何设置与 AI 模型的连接并使用它们在复制中生成向量嵌入。

开始之前

您必须具有以下项才能继续:

任务 1:设置的环境

任务 2:配置 AI 模型

任务 3:创建集成提取

集成提取捕获对源数据库的持续更改。

  1. 在“部署详细信息”页上,选择启动控制台

  2. 如果需要,输入 oggadmin 以显示用户名和创建部署时使用的密码,然后选择登录

  3. 添加事务处理数据和检查点表:

    1. 打开导航菜单,然后选择 DB Connections(DB 连接)

    2. 选择 Connect to database SourceDB

    3. 在导航菜单中,选择 Trandata ,然后选择 Add Trandata (加号图标)。

    4. 对于方案名称,输入 SRC_OCIGGLL,然后选择提交

    5. 要进行验证,请在“搜索”字段中输入 SRC_OCIGGLL,然后选择搜索

    6. 打开导航菜单,然后选择 DB Connections(DB 连接)

    7. 选择 Connect to database TargetDB(连接到数据库 TargetDB)

    8. 在导航菜单中,选择检查点,然后选择添加检查点(加号图标)。

    9. 对于检查点表,输入 "SRCMIRROR_OCIGGLL"."CHECKTABLE",然后选择提交

  4. 添加提取

    注:有关可用于指定源表的参数的详情,请参阅附加提取参数选项

    在“提取参数”页上,在 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.*;
  5. 检查长耗时事务处理。在源数据库上运行以下脚本:

    select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);

    如果查询返回任何行,则必须找到事务处理的 SCN,然后提交或回退事务处理。

任务 4:添加和运行非集成复制

  1. Add and run a Replicat (添加和运行复制)。

    Parameter File 屏幕上,将 MAP *.*, TARGET *.*; 替换为以下脚本:

    	-- 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)
     );

    注意

    @AISERVICE 函数使用前面定义的 AI 模型连接从 CITY 列中存储的数据创建向量嵌入。

  2. 对源数据库执行插入:

    1. 返回 Oracle Cloud 控制台,然后使用导航菜单导航回 Oracle AI DatabaseAutonomous AI Transaction ProcessingSourceDB

    2. 在 "SourceDB Details"(源数据库详细信息)页面上,选择 Database actions(数据库操作),然后选择 SQL

    3. 输入以下插入,然后选择运行脚本

      		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);
    4. 在 OCI GoldenGate 部署控制台中,选择 Extract name (UAEXT) ,然后选择 Statistics 。验证 SRC_OCIGGLL.SRC_CITY 列出了 10 个插入。

    5. 返回到 "Overview" 屏幕,选择 Replicat name (REP) ,然后选择 Statistics 。确认 SRCMIRROR_OCIGGLL.SRC_CITY 列出了 10 个插入

    6. 转到目标自治 AI 数据湖仓详细信息页,选择数据库操作,然后选择 SQL

    7. 在 SQL 中,运行 select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR; 并查看结果,包括 OCI GoldenGate 使用 AI 服务创建的向量嵌入。

SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR 表包含从 SRC_OCIGGLL.SRC_CITY 复制的行,CITY_EMBED 列包含为每个城市生成的向量嵌入。

疑难解答