使用 @DBFUNCTION 嵌入原生資料庫

Oracle GoldenGate 在資料複製期間提供強大的轉換功能,包括能夠透過 @DBFUNCTIONconstruct 呼叫資料庫常駐功能。此功能可讓組織直接將 AI 驅動的處理 (例如向量嵌入生成) 整合到資料複製管線中,無需執行獨立的後續處理步驟,並實現真正的即時 AI 資料強化。

@DBFUNCTION 功能可讓 GoldenGate Replicat 處理作業在資料套用至目標系統時,以內嵌方式執行資料庫端函數。這表示複製每筆交易時,可以在資料庫相關資訊環境中執行額外的邏輯 (例如從文字產生內嵌)。藉由將轉換邏輯直接內嵌至複寫串流,組織可以確保透過資料擷取同步建立向量資料、維持一致性,以及將延遲降到最低。

使用 GoldenGate 和 @DBFUNCTION 的典型即時內嵌工作流程如下:

  1. 來源交易是由 GoldenGate Extract 處理作業擷取。

  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 函數,使用來自地址和城市的傳入資料作為輸入,以在套用時將原始文字轉換成向量表示法。OGGADMIN.CREATE_VECTOR 將內嵌資料。一般方法是透過 VECTOR_EMBEDDING() 或 DBMS_VECTOR.UTL_TO_EMBEDDING() 套裝軟體呼叫。

@DBFUNCTION 最佳實務

為了確保作業效率和可靠,使用 @DBFUNCTION 進行即時內嵌時,應遵循幾個最佳實務。嵌入功能應設計為確定性和高效能,因為它們是在複製路徑內執行,並且可以直接影響輸送量。

組織應盡可能利用 Oracle AI Vector Search 功能,或透過最佳化 PL/SQL 包裝程式呼叫外部 AI 服務以進行內嵌生成。應實行強大的錯誤處理和重試機制,以處理內嵌產生中的暫時性失敗,尤其是涉及外部服務時。

最後,由於可以導入複寫延遲並降低整體系統擴展性,因此應避免使用長時間執行或耗用大量資源的功能。內嵌樣式摘要:選擇 @AISERVICE 作為外部或 GPU 備份的推論,選擇 @DBFUNCTION 作為資料庫常駐內嵌邏輯,並在同步呼叫建立套用延遲時考慮非同步內嵌。