Per eseguire query in tempo reale sui dati analitici insieme ai dati operativi senza creare pipeline complesse, puoi utilizzare la federazione dei lakehouse in AlloyDB per PostgreSQL. Grazie all'estensione bigquery_fdw, AlloyDB indirizza le query a BigQuery per accedere ai dati in tempo reale e ai formati aperti come Apache Iceberg tramite le tabelle esterne BigLake, eliminando la necessità di migrazioni ETL (estrazione, trasformazione, caricamento) complesse.
Vantaggi della federazione dei lakehouse
L'approccio di federazione dei lakehouse offre i seguenti vantaggi:
- Zero ETL: esegui query sui dati analitici direttamente senza creare o gestire pipeline complesse.
- Sintassi familiare: utilizza la sintassi PostgreSQL standard per eseguire query sui dati BigQuery.
- Informazioni in tempo reale: accedi ai dati aggiornati insieme alle tabelle operative.
- Offload del computing: utilizza il motore distribuito di BigQuery per le operazioni complesse tramite l'ottimizzazione push-down.
- Accesso autorizzato: per garantire che solo i service account autorizzati possano eseguire query sui dati esterni, utilizza Identity and Access Management (IAM) per il controllo dell'accesso centralizzato.
Casi d'uso
La federazione dei lakehouse supporta i seguenti casi d'uso aziendali e tecnici:
- Carichi di lavoro di elaborazione analitica e transazionale ibrida (HTAP): puoi eseguire query sui dati operativi in tempo reale in AlloyDB e sui dati storici o analitici in BigQuery o Cloud Storage contemporaneamente senza influire sulle prestazioni transazionali.
- Informazioni in tempo reale senza pipeline fragili: puoi evitare la latenza e le modalità di errore dei processi ETL tradizionali. Accedi immediatamente ai dati analitici aggiornati per prendere decisioni aziendali basate sulle informazioni più aggiornate.
- Materializzazione dei dati per i flussi di lavoro agentici: puoi materializzare i dati analitici esterni in AlloyDB per utilizzare il motore colonnare di AlloyDB e le funzionalità di AlloyDB AI. In questo modo, puoi eseguire ricerche vettoriali ad alte prestazioni, incorporamenti di machine learning e flussi di lavoro agentici avanzati basati sull'AI sui dati federati.
Architettura e flusso di dati
Il seguente diagramma mostra il flusso di dati e le interazioni dei componenti quando utilizzi la federazione dei lakehouse:
Di seguito viene descritto il processo di flusso di dati per la federazione dei lakehouse in AlloyDB:
- Invio della query: invii una query PostgreSQL standard alla tua istanza AlloyDB.
- Pianificazione e ottimizzazione delle query: il pianificatore di query di AlloyDB identifica le tabelle mappate ai set di dati BigQuery esterni utilizzando il wrapper di dati esterni (FDW) di BigQuery.
- Ottimizzazione push-down: AlloyDB ottimizza la query eseguendo il push-down di filtri e aggregazioni specifici direttamente in BigQuery. In questo modo, la rete trasferisce solo le righe pertinenti e filtrate o i riepiloghi preaggregati.
- Esecuzione e recupero: BigQuery esegue la sua parte della query, eseguendo la scansione diretta dell'archiviazione integrata di BigQuery o leggendo le tabelle Apache Iceberg archiviate in Cloud Storage, e trasmette in streaming il set di dati risultante ad AlloyDB.
- Elaborazione finale e risposta: AlloyDB combina i dati esterni con le tabelle operative locali, completa l'elaborazione delle query rimanenti e restituisce il risultato finale all'applicazione.
Considerazioni sui tipi di dati per le query federate
Quando esegui una query su una tabella BigQuery esterna da AlloyDB utilizzando la federazione dei lakehouse, il pianificatore di query di AlloyDB interpreta i tipi di dati BigQuery come tipi di dati PostgreSQL corrispondenti. Comprendere questi mapping è fondamentale per scrivere query corrette e per le definizioni delle tabelle esterne utilizzate dall'estensione bigquery_fdw.
Se un tipo di dati BigQuery non ha un mapping diretto o richiede una gestione speciale, potrebbe essere necessario utilizzare funzioni CAST esplicite all'interno delle query o creare una vista in BigQuery che presenti i dati con tipi compatibili.
Per un elenco dei tipi di dati supportati e dei tipi PostgreSQL corrispondenti, consulta Mapping dei tipi di dati.
Sicurezza e controllo dell'accesso
L'accesso ai dati BigQuery da AlloyDB viene gestito tramite IAM. Devi concedere ruoli IAM specifici al account di servizio del cluster AlloyDB per definire le tabelle e i set di dati su cui è possibile eseguire query. In questo modo, le query federate rispettano le norme di governance dei dati centralizzate della tua organizzazione senza compromettere la sicurezza. Per ulteriori informazioni, consulta Ruoli richiesti.
Push-down
Puoi utilizzare le tecniche di push-down di filtri e aggregazioni, che velocizzano le query e riducono i costi filtrando o riepilogando i dati in BigQuery prima che vengano spostati o elaborati da AlloyDB. Questo approccio riduce al minimo il traffico di rete e la memoria utilizzata, consentendoti di analizzare set di dati di grandi dimensioni in modo rapido ed efficiente senza superare i limiti delle risorse.
Push-down dei filtri
Il push-down dei filtri, noto anche come push-down dei predicati, è una tecnica di ottimizzazione
che sposta il filtraggio dei dati il più vicino possibile al livello di archiviazione spostando i filtri delle query (utilizzando la clausola WHERE) da
AlloyDB a BigQuery.
Con il push-down dei filtri, puoi utilizzare le query SQL con una clausola WHERE per accedere a un sottoinsieme di dati dalla tabella remota. Questi dati possono anche essere materializzati in una tabella locale o collegati come partizione locale a una tabella PostgreSQL.
Le operazioni supportate per il push-down dei filtri includono le seguenti:
- Operatori di confronto standard:
=,<,>,<=,>=,<> - Operatori logici:
AND,OReNOT - Corrispondenza di pattern:
LIKEeNOT LIKE - Controlli dei valori null:
IS NULLeIS NOT NULL - Valutazione in elenco:
INeNOT IN
Push-down delle aggregazioni
Il push-down delle aggregazioni è un'ottimizzazione avanzata del database che esegue i calcoli, ad esempio SUM, COUNT, AVG o GROUP BY, il più vicino possibile al livello di archiviazione. Questo push-down valuta le funzioni di riepilogo direttamente in BigQuery, il che può ridurre significativamente il numero di righe restituite ad AlloyDB.
Le operazioni supportate per il push-down delle aggregazioni includono le seguenti:
SUMCOUNTAVGMINMAX
Push-down dei limiti
Il push-down dei limiti (che include il push-down di OFFSET) è una tecnica di ottimizzazione che sposta le clausole LIMIT e OFFSET della query da AlloyDB a BigQuery.
In questo modo, BigQuery restituisce solo il sottoinsieme specifico di righe richiesto, il che riduce significativamente il traffico di rete e la latenza delle query.
Il push-down dei limiti viene applicato automaticamente quando possibile. Assicurati che siano soddisfatte le seguenti condizioni:
- La query non utilizza l'opzione
WITH TIESnella clausolaFETCH FIRST. - Le espressioni
LIMITeOFFSETsono costanti o espressioni di base che possono essere valutate da remoto.
Costi e fatturazione di BigQuery
Il wrapper di dati esterni di BigQuery dipende da quanto segue:
- Prezzi di computing di BigQuery
- Prezzi dell'API BigQuery Storage
Per informazioni, consulta Prezzi di BigQuery.
Progetti di runtime
In BigQuery, puoi archiviare i dati in un progetto ed eseguire le query in un progetto diverso. Il progetto che esegue le query e accumula i costi di computing è noto come progetto di runtime (o progetto di fatturazione).
La separazione del progetto di runtime dal progetto di archiviazione dei dati consente di isolare i costi di computing in centri di costo specifici, gestire le quote in modo indipendente e controllare le spese per diversi carichi di lavoro senza spostare i dati sottostanti.
Quando configuri AlloyDB per accedere ai dati BigQuery, puoi specificare un progetto di runtime a livello di server (applicabile a tutte le tabelle esterne associate) o a livello di singola tabella. Se non specifichi un progetto di runtime, AlloyDB utilizza per impostazione predefinita il progetto proprietario dei dati.
Limitazioni
AlloyDB e BigQuery potrebbero utilizzare regole di confronto predefinite diverse, il che può comportare risultati di ordinamento dei dati o di confronto di stringhe diversi tra i due sistemi. Ad esempio, la regola di confronto PostgreSQL predefinita nelle versioni 15, 16 e 17 potrebbe gestire la distinzione tra maiuscole e minuscole in modo diverso durante l'ordinamento rispetto alla regola di confronto predefinita di BigQuery, che valuta rigorosamente le stringhe in base ai relativi punti di codice Unicode.
Per qualsiasi parte di una query eseguita da remoto su BigQuery, la regola di confronto segue le impostazioni di BigQuery. Per ridurre i conflitti di regole di confronto, valuta la possibilità di utilizzare la regola di confronto
C.UTF-8senza T.I. in AlloyDB e la regola di confronto predefinita (vuota) in BigQuery.Le query che restituiscono una grande quantità di dati da BigQuery, dopo il push-down, non sono ottimizzate.
Quando crei una tabella esterna, AlloyDB non convalida attivamente l'esistenza o lo schema della tabella BigQuery remota.
Se una query federata richiede la lettura di una grande quantità di dati, ad esempio se non è possibile applicare il push-down dei filtri, la query potrebbe non riuscire a causa dei limiti di dimensione della risposta dell'API BigQuery. Si applicano comunque i limiti massimi di dimensione della risposta di BigQuery. Per ulteriori informazioni su questi limiti, consulta Quote e limiti.
PostgreSQL supporta una maggiore precisione per i calcoli intermedi, mentre BigQuery controlla rigorosamente la precisione decimale. Questa differenza può comportare una perdita di precisione o errori di overflow durante i calcoli complessi. Per ulteriori informazioni, consulta Tipi decimali.
Database Migration Service non supporta la migrazione delle tabelle esterne create utilizzando l'estensione
bigquery_fdw. In alternativa, puoi escludere le tabelle esterne dal job di migrazione oppure eliminarle prima di avviare la migrazione e poi ricrearle nel cluster AlloyDB di destinazione al termine della migrazione.Quando esegui query sulle tabelle esterne utilizzando l'estensione
bigquery_fdw, BigQuery valuta le autorizzazioni di accesso ai dati in base al account di servizio del cluster AlloyDB. Anche se gli utenti del database accedono utilizzando l'autenticazione IAM dei database, le autorizzazioni IAM individuali non vengono verificate rispetto alle tabelle BigQuery remote. Per informazioni, consulta Concedere ad AlloyDB l'accesso al set di dati BigQuery.