@DBFUNCTION에 기본 데이터베이스 포함

Oracle GoldenGate는 @DBFUNCTION구성을 통해 데이터베이스 상주 함수를 호출하는 기능을 포함하여 데이터 복제 중 강력한 변환 기능을 제공합니다. 이 기능을 통해 조직은 벡터 임베딩 생성과 같은 AI 기반 프로세싱을 데이터 복제 파이프라인에 직접 통합할 수 있으므로 별도의 후처리 단계가 필요하지 않으며 진정한 실시간 AI 데이터 보강이 가능합니다.

@DBFUNCTION 기능을 통해 GoldenGate Replicat 프로세스는 데이터가 대상 시스템에 적용됨에 따라 데이터베이스측 함수를 인라인으로 실행할 수 있습니다. 즉, 각 트랜잭션이 복제될 때 텍스트에서 임베딩 생성과 같은 추가 논리를 데이터베이스 컨텍스트 내에서 실행할 수 있습니다. 조직에서는 변환 논리를 복제 스트림에 직접 포함시켜 데이터 수집을 통해 벡터 데이터가 동기적으로 생성되도록 보장하여 일관성을 유지하고 대기 시간을 최소화할 수 있습니다.

GoldenGate 및 @DBFUNCTION를 사용하는 일반적인 실시간 임베딩 워크플로우는 다음과 같이 진행됩니다.

  1. 출처 트랜잭션은 GoldenGate 추출 프로세스를 통해 수집됩니다.

  2. 변경 데이터는 GoldenGate 추적 파일을 사용하여 대상 환경으로 전송됩니다.

  3. Replicat 프로세스는 트랜잭션을 적용하고 @DBFUNCTION를 호출하여 데이터베이스 상주 임베딩 함수를 호출합니다. 다음 예제에서 @DBFUNCTION 호출은 실제로 더 복잡한 포함 함수를 수행하는 PL/SQL 래퍼 함수를 호출합니다.

  4. 임베딩은 실시간으로 생성되고, 다운스트림 AI 및 유사성 검색 사용 사례를 위해 일반적으로 VECTOR 열 내에 대상 테이블에 저장됩니다. 이 긴밀하게 통합된 흐름은 임베딩이 항상 해당 소스 데이터와 동기화되도록 보장하면서 트랜잭션 일관성을 유지합니다. 다음 예에서는 GoldenGate 매핑 구성 내에서 @DBFUNCTION를 사용하여 텍스트 데이터에서 임베딩을 생성하는 방법을 보여 줍니다.

      MAP schema.source_table, TARGET schema.target_table,
            COLMAP (
            USEDEFAULTS,
            vector_col = @DBFUNCTION(
                OGGADMIN.CREATE_VECTOR(@AFTER.address, @AFTER.city)
           )
         );

이 예제에서 OGGADMIN.CREATE_VECTOR 함수는 주소 및 city의 수신 데이터를 입력으로 사용하여 적용 시 원시 텍스트를 벡터 표현으로 변환하는 복제된 각 행에 대해 실행됩니다. OGGADMIN.CREATE_VECTOR가 데이터를 포함할 것입니다. 일반적인 방법은 VECTOR_EMBEDDING() 또는 DBMS_VECTOR.UTL_TO_EMBEDDING() 패키지 호출을 사용하는 것입니다.

@DBFUNCTION 모범 사례

효율적이고 안정적인 운영을 보장하기 위해서는 실시간 임베딩을 위해 @DBFUNCTION를 사용할 때 몇 가지 모범 사례를 따라야 합니다. 포함 함수는 복제 경로 내에서 실행되며 처리량에 직접 영향을 줄 수 있으므로 결정적이고 성능이 뛰어나도록 설계되어야 합니다.

가능한 경우 조직은 임베딩 생성을 위해 최적화된 PL/SQL 래퍼를 통해 Oracle AI Vector Search 기능을 활용하거나 외부 AI 서비스를 호출해야 합니다. 특히 외부 서비스가 관련된 경우 임베딩 생성 시 일시적인 실패를 해결하기 위해 강력한 오류 처리 및 재시도 방식을 구현해야 합니다.

마지막으로, 장기 실행 또는 리소스 집약적 기능은 복제 지연을 발생시키고 전반적인 시스템 확장성을 줄일 수 있으므로 피하거나 오프로드해야 합니다. 패턴 요약 포함: 외부 또는 GPU 지원 추론에 대해 @AISERVICE를 선택하고, 데이터베이스 상주 임베딩 논리에 대해 @DBFUNCTION를 선택하고, 동기 호출이 적용 지연을 생성할 때 비동기 임베딩을 고려합니다.