使用 OCI GoldenGate 中的 AI 模型建立向量內嵌
瞭解如何使用 GoldenGate 26ai 和更新版本,在資料複製部署中使用 AI 服務產生向量內嵌。
概觀
OCI GoldenGate 包含 AI 服務,可讓 GoldenGate 流程與來自各種供應商 (OCI Generative AI、OpenAI、Google Gemini 和 Voyage AI) 的 AI 模型互動,以直接在資料複製管線中產生向量內嵌項目。
以下步驟引導您瞭解如何設定與 AI 模型的連線,以及如何使用這些模型在 Replicat 中產生向量內嵌項目。
開始之前
您必須具有下列項目才能繼續:
-
現有的來源資料庫。
-
支援向量的現有目標 Oracle AI Database,例如 Oracle Autonomous AI Lakehouse 。
-
如果您使用 Oracle Autonomous AI Database,請解除鎖定 GGADMIN 使用者。
-
來源資料庫和目標資料庫必須位於相同的租用戶和區域。
-
如果您需要範例資料,請下載 Archive.zip ,然後依照 Lab 1,Task 3:Load the ATP schema 中的指示進行操作。
-
現有的 OCI API 金鑰。
-
現有的 OCI Vault 包含私密 API 金鑰內容。
-
使用 OCI GoldenGate 的最低建議原則。
-
使用 OCI Generative AI 的最低建議原則。
作業 1:設定環境
-
使用 SQL 工具啟用來源資料庫的補充日誌記錄:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; -
在 SQL 工具中執行下列查詢,以確保來源資料庫中所有表格的 support_mode=FULL:
select * from DBA_GOLDENGATE_SUPPORT_MODE where owner = 'SRC_OCIGGLL'; -
在目標 ALK 資料庫上建立下表,以儲存將使用 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) );
工作 2:設定 AI 模型
-
建立 AI 模型連線
-
名稱:OCI_GenAI_TextEmbeddingSmall
-
類型:AI 模型
-
提供者類型:OCI Generative AI
-
認證類型:OCI Generative AI
-
使用者:使用目前的租用戶和使用者
-
指定區域
-
提供或建立包含 OCI API 金鑰的加密密碼
-
輸入 API 金鑰指紋
-
從清單中選取內嵌模型,例如 openai.text-embedding-3-small
-
選取建立
-
-
複查連線詳細資訊
-
將「AI 模型」連線指派給您的部署:
-
移至您的「部署詳細資訊」頁面,選取指派的連線
-
在「指派的 AI 模型連線」區段中選取指派連線,然後選取「AI 模型」連線。
-
選取指派連線以確認指派
-
-
確定新 AI 模型連線列在「指派的 AI 模型連線」區段中。
-
指派 AI 模型連線至部署會自動在 GoldenGate 中設定 AI 服務
-
登入 OCI GoldenGate 主控台,前往 AI 模型並複查 AI 模型清單。
-
記下模型名稱,因為您需要在 Replicat 中使用 @AISERVICE 函數來建立內嵌向量
-
@AISERVICE函數中的模型名稱必須與 OCI GoldenGate AI 模型中顯示的模型名稱相符。可能與連線名稱不同。
-
任務 3:建立整合式擷取
「整合式擷取」會擷取來源資料庫的持續變更。
-
在部署詳細資料頁面上,選取啟動主控台。
-
如有必要,請輸入 oggadmin 作為您在建立部署時所使用的使用者名稱和密碼,然後選取登入。
-
新增交易資料和檢查點表格:
-
開啟導覽功能表,然後選取資料庫連線。
-
選取連線至資料庫 SourceDB 。
-
在導覽功能表中,選取 Trandata ,然後選取新增 Trandata (加號圖示)。
-
在結構名稱中,輸入
SRC_OCIGGLL,然後選取提交。 -
若要驗證,請在「搜尋」欄位中輸入
SRC_OCIGGLL,然後選取搜尋。 -
開啟導覽功能表,然後選取資料庫連線。
-
選取連線至資料庫 TargetDB 。
-
在導覽功能表中,選取檢查點,然後選取新增檢查點 (加號圖示)。
-
在檢查點資料表中,輸入
"SRCMIRROR_OCIGGLL"."CHECKTABLE",然後選取提交。
-
-
新增擷取。
備註:請參閱其他擷取參數選項,以取得可用於指定來源表格之參數的詳細資訊。
在「擷取參數」頁面上,將下列行附加至
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.*; -
檢查長時間執行的交易。在來源資料庫上執行下列命令檔:
select start_scn, start_time from gv$transaction where start_scn < (select max(start_scn) from dba_capture);如果查詢傳回任何資料列,則您必須找出交易的 SCN,然後確認或倒回交易。
作業 4:新增並執行非整合式 Replicat
-
在參數檔畫面上,使用下列指令碼取代
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 資料欄中的資料建立內嵌向量。
-
執行來源資料庫的插入:
-
返回 Oracle Cloud 主控台,然後使用導覽功能表返回 Oracle AI Database 、 Autonomous AI Transaction Processing ,然後瀏覽 SourceDB 。
-
在「SourceDB 詳細資訊」頁面上,選取資料庫動作,然後選取 SQL 。
-
輸入下列插入,然後選取執行命令檔:
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); -
在 OCI GoldenGate 部署主控台中,選取擷取名稱 (UAEXT) ,然後選取統計資料。確認已列出 SRC_OCIGGLL.SRC_CITY 與 10 個插入。
-
回到「總覽」畫面,選取 Replicat 名稱 (REP) ,然後選取統計資料。確認已列出 SRCMIRROR_OCIGGLL.SRC_CITY 與 10 個插入
-
移至您的目標「自治式 AI 湖倉一體詳細資訊」頁面,選取資料庫動作,然後選取 SQL
-
在 SQL 中,執行
select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR;並複查結果,包括 OCI GoldenGate 使用 AI 服務建立的向量內嵌。
-
SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR 表格包含從 SRC_OCIGGLL.SRC_CITY 複製的資料列,而 CITY_EMBED 資料欄包含針對每個城市所產生的向量內嵌。
疑難排解
-
如果 Replicat 無法呼叫模型,請確認已順利將 AI 模型連線指派給部署。
-
如果認證失敗,請驗證 OCI API 金鑰加密密碼、指紋、使用者、租用戶以及區域。
-
如果複製資料列但未產生內嵌項目,請確認
@AISERVICE中的模型名稱與 OCI GoldenGate AI 模型中列出的模型名稱相符。 -
如果目標表格上的 Replicat 失敗,請確認目標資料庫支援向量資料欄,且
CITY_EMBED定義為與所選內嵌模型相容的維度。 -
如果擷取失敗或略過表格,請確認已啟用補充日誌記錄,且來源表格支援模式為
FULL。