OCI GoldenGate의 AI 모델을 사용하여 벡터 임베딩 생성

GoldenGate 26ai 이상을 사용하여 데이터 복제 배포에서 AI 서비스를 사용하여 벡터 임베딩을 생성하는 방법을 알아봅니다.

개요

OCI GoldenGate에는 GoldenGate 프로세스가 다양한 제공업체(OCI Generative AI, OpenAI, Google Gemini, Voyage AI)의 AI 모델과 상호 작용하여 데이터 복제 파이프라인 내에서 직접 벡터 임베딩을 생성할 수 있는 AI 서비스가 포함되어 있습니다.

다음 단계에서는 AI 모델에 대한 연결을 설정하고 이를 사용하여 Replicat에서 벡터 임베딩을 생성하는 방법을 안내합니다.

시작하기 전에

계속하려면 다음이 있어야 합니다.

작업 1: 환경 설정

작업 2: AI 모델 구성

작업 3: 통합 Extract 생성

통합 추출은 소스 데이터베이스에 대한 지속적인 변경사항을 캡처합니다.

  1. 배치 세부정보 페이지에서 콘솔 실행을 선택합니다.

  2. 필요한 경우 사용자 이름으로 oggadmin을 입력하고 배치를 생성할 때 사용한 암호를 입력한 다음 사인인을 선택합니다.

  3. 트랜잭션 데이터 및 체크포인트 테이블 추가:

    1. 탐색 메뉴를 열고 DB 접속을 선택합니다.

    2. 데이터베이스 SourceDB에 접속을 선택합니다.

    3. 탐색 메뉴에서 Trandata를 선택한 다음 Trandata 추가(더하기 아이콘)를 선택합니다.

    4. 스키마 이름SRC_OCIGGLL을 입력한 다음 제출을 선택합니다.

    5. 확인하려면 검색 필드에 SRC_OCIGGLL을 입력하고 검색을 선택합니다.

    6. 탐색 메뉴를 열고 DB 접속을 선택합니다.

    7. 데이터베이스 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);

    query에서 행을 반환하면 트랜잭션의 SCN을 찾은 다음 트랜잭션을 커밋하거나 롤백해야 합니다.

작업 4: 통합되지 않은 Replicat 추가 및 실행

  1. 복제 추가 및 실행.

    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 Database, Autonomous AI Transaction Processing, SourceDB 순으로 돌아갑니다.

    2. SourceDB 세부 정보 페이지에서 데이터베이스 작업을 선택한 다음 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 배치 콘솔에서 이름 추출(UAEXT)을 선택한 다음 통계를 선택합니다. SRC_OCIGGLL.SRC_CITY가 10개의 삽입과 함께 나열되는지 확인합니다.

    5. Overview 화면으로 돌아가서 Replicat name (REP)을 선택한 다음 Statistics를 선택합니다. 10개의 삽입과 함께 SRCMIRROR_OCIGGLL.SRC_CITY가 나열되는지 확인합니다.

    6. 대상 자율운영 AI 레이크하우스 세부정보 페이지로 이동하여 데이터베이스 작업을 선택한 다음 SQL을 선택합니다.

    7. SQL에서 select * from SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR;를 실행하고 AI 서비스를 사용하여 OCI GoldenGate가 생성한 벡터 임베딩을 포함한 결과를 검토합니다.

SRCMIRROR_OCIGGLL.SRC_CITY_VECTOR 테이블에는 SRC_OCIGGLL.SRC_CITY에서 복제된 행이 포함되고, CITY_EMBED 열에는 각 도시에 대해 생성된 벡터 포함이 포함됩니다.

문제 해결