@DBFUNCTION에 기본 데이터베이스 포함
Oracle GoldenGate는 @DBFUNCTION구성을 통해 데이터베이스 상주 함수를 호출하는 기능을 포함하여 데이터 복제 중 강력한 변환 기능을 제공합니다. 이 기능을 통해 조직은 벡터 임베딩 생성과 같은 AI 기반 프로세싱을 데이터 복제 파이프라인에 직접 통합할 수 있으므로 별도의 후처리 단계가 필요하지 않으며 진정한 실시간 AI 데이터 보강이 가능합니다.
@DBFUNCTION 기능을 통해 GoldenGate Replicat 프로세스는 데이터가 대상 시스템에 적용됨에 따라 데이터베이스측 함수를 인라인으로 실행할 수 있습니다. 즉, 각 트랜잭션이 복제될 때 텍스트에서 임베딩 생성과 같은 추가 논리를 데이터베이스 컨텍스트 내에서 실행할 수 있습니다. 조직에서는 변환 논리를 복제 스트림에 직접 포함시켜 데이터 수집을 통해 벡터 데이터가 동기적으로 생성되도록 보장하여 일관성을 유지하고 대기 시간을 최소화할 수 있습니다.
GoldenGate 및 @DBFUNCTION를 사용하는 일반적인 실시간 임베딩 워크플로우는 다음과 같이 진행됩니다.
-
출처 트랜잭션은 GoldenGate 추출 프로세스를 통해 수집됩니다.
-
변경 데이터는 GoldenGate 추적 파일을 사용하여 대상 환경으로 전송됩니다.
-
Replicat 프로세스는 트랜잭션을 적용하고 @DBFUNCTION를 호출하여 데이터베이스 상주 임베딩 함수를 호출합니다. 다음 예제에서
@DBFUNCTION호출은 실제로 더 복잡한 포함 함수를 수행하는 PL/SQL 래퍼 함수를 호출합니다. -
임베딩은 실시간으로 생성되고, 다운스트림 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를 선택하고, 동기 호출이 적용 지연을 생성할 때 비동기 임베딩을 고려합니다.