Integrazione del database nativo con @DBFUNCTION
Oracle GoldenGate offre potenti funzionalità di trasformazione durante la replica dei dati, inclusa la possibilità di richiamare funzioni residenti nel database tramite il costrutto @DBFUNCTION. Questa funzione consente alle organizzazioni di integrare l'elaborazione basata sull'intelligenza artificiale, come la generazione di incorporamenti vettoriali, direttamente nella pipeline di replica dei dati, eliminando la necessità di passi di post-elaborazione separati e abilitando un vero arricchimento dei dati AI in tempo reale.
La funzionalità @DBFUNCTION consente ai processi Replicat GoldenGate di eseguire funzioni lato database in linea quando i dati vengono applicati al sistema di destinazione. Ciò significa che, man mano che ogni transazione viene replicata, una logica aggiuntiva, come la generazione di incorporamenti dal testo, può essere eseguita all'interno del contesto del database. Integrando la logica di trasformazione direttamente nel flusso di replica, le organizzazioni possono garantire che i dati vettoriali vengano creati in modo sincrono con l'inclusione dei dati, mantenendo la coerenza e riducendo al minimo la latenza.
Un tipico flusso di lavoro di incorporamento in tempo reale utilizzando GoldenGate e @DBFUNCTION procede come segue:
-
Una transazione di origine viene acquisita dal processo di estrazione GoldenGate.
-
I dati di modifica vengono trasmessi all'ambiente di destinazione utilizzando il file trail GoldenGate.
-
Il processo Replicat applica la transazione e richiama @DBFUNCTION per chiamare una funzione di incorporamento residente nel database. Nell'esempio seguente, la chiamata
@DBFUNCTIONsta effettivamente richiamando una funzione wrapper PL/SQL che eseguirà la funzione di incorporamento più complessa. -
L'incorporamento viene generato in tempo reale e memorizzato in una tabella di destinazione, in genere all'interno di una colonna
VECTORper i casi d'uso di AI a valle e ricerca di somiglianza. Questo flusso strettamente integrato garantisce che le integrazioni siano sempre sincronizzate con i dati di origine corrispondenti, mantenendo al contempo la coerenza transazionale. Nell'esempio seguente viene illustrato come utilizzare@DBFUNCTIONin una configurazione di mapping GoldenGate per generare incorporamenti da dati di testo.MAP schema.source_table, TARGET schema.target_table, COLMAP ( USEDEFAULTS, vector_col = @DBFUNCTION( OGGADMIN.CREATE_VECTOR(@AFTER.address, @AFTER.city) ) );
In questo esempio, la funzione OGGADMIN.CREATE_VECTOR viene eseguita per ogni riga replicata, utilizzando i dati in entrata da indirizzo e città come input per trasformare il testo raw in una rappresentazione vettoriale al momento dell'applicazione. OGGADMIN.CREATE_VECTOR incorpora i dati. I metodi più comuni sono le chiamate ai pacchetti VECTOR_EMBEDDING() o DBMS_VECTOR.UTL_TO_EMBEDDING().
@DBFUNCTION Best practice
Per garantire un funzionamento efficiente e affidabile, è necessario seguire diverse best practice quando si utilizza @DBFUNCTION per l'integrazione in tempo reale. Le funzioni di incorporamento dovrebbero essere progettate per essere deterministiche e altamente performanti, poiché vengono eseguite all'interno del percorso di replica e possono influire direttamente sul throughput.
Ove possibile, le organizzazioni devono sfruttare le funzionalità di Oracle AI Vector Search o richiamare servizi AI esterni tramite wrapper PL/SQL ottimizzati per la generazione di incorporamenti. Devono essere implementati efficaci meccanismi di gestione degli errori e di nuovo tentativo per affrontare i guasti transitori nella generazione dell'incorporamento, in particolare quando sono coinvolti servizi esterni.
Infine, le funzioni a lungo termine o a uso intensivo di risorse dovrebbero essere evitate o scaricate, in quanto possono introdurre ritardi nella replica e ridurre la scalabilità complessiva del sistema. Incorporamento del riepilogo del pattern: scegliere @AISERVICE per l'inferenza esterna o supportata dalla GPU, scegliere @DBFUNCTION per la logica di incorporamento residente nel database e considerare l'incorporamento asincrono quando le chiamate sincrone creano un ritardo di applicazione.