@DBFUNCTIONを使用したネイティブ・データベースの埋込み
Oracle GoldenGateは、データ・レプリケーション中に強力な変換機能を提供します。これには、@DBFUNCTIONconstructを介してデータベース常駐ファンクションを起動する機能も含まれます。この機能により、組織はベクトル埋込み生成などのAI駆動処理をデータ・レプリケーション・パイプラインに直接統合できるため、個別の後処理ステップが不要になり、真のリアルタイムAIデータ・エンリッチメントが可能になります。
@DBFUNCTION機能を使用すると、データがターゲット・システムに適用されるため、GoldenGate Replicatプロセスでデータベース側の関数をインラインで実行できます。つまり、各トランザクションがレプリケートされると、データベース・コンテキスト内で追加のロジック(テキストからの埋込みの生成など)を実行できます。変換ロジックをレプリケーション・ストリームに直接埋め込むことで、組織はベクトル・データがデータ取り込みと同期して作成されるようにし、一貫性を維持し、レイテンシを最小限に抑えることができます。
GoldenGateおよび@DBFUNCTIONを使用した一般的なリアルタイム埋込みワークフローは次のように進みます。
-
ソース・トランザクションは、GoldenGate Extractプロセスによって取得されます。
-
変更データは、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) ) );
この例では、適用時にRAWテキストをベクトル表現に変換するための入力としてアドレスおよび都市からの受信データを使用して、レプリケートされた行ごとにOGGADMIN.CREATE_VECTOR関数が実行されます。OGGADMIN.CREATE_VECTORによってデータが埋め込まれます。一般的な方法は、VECTOR_EMBEDDING()またはDBMS_VECTOR.UTL_TO_EMBEDDING()パッケージ・コールを使用することです。
@DBFUNCTIONのベスト・プラクティス
効率的で信頼性の高い操作を実現するには、リアルタイム埋込みに@DBFUNCTIONを使用する場合は、いくつかのベスト・プラクティスに従う必要があります。埋込み関数は、レプリケーション・パス内で実行され、スループットに直接影響する可能性があるため、確定的で高パフォーマンスになるように設計する必要があります。
可能であれば、組織はOracle AI Vector Searchの機能を活用するか、生成を埋め込むために最適化されたPL/SQLラッパーを通じて外部AIサービスを呼び出す必要があります。強力なエラー処理および再試行メカニズムを実装して、特に外部サービスが関与する場合の埋込み生成における一時的な障害に対処する必要があります。
最後に、レプリケーション・ラグが導入され、システム全体のスケーラビリティが低下する可能性があるため、長時間実行またはリソース集中型の関数は回避またはオフロードする必要があります。パターン・サマリーの埋込み: 外部推論またはGPUに支えられた推論に@AISERVICEを選択し、データベース常駐の埋込みロジックに@DBFUNCTIONを選択し、同期コールで適用ラグが作成されるときに非同期埋込みを検討します。