Introduzione alle query continue
Questo documento descrive le query continue di BigQuery.
Le query continue di BigQuery sono istruzioni SQL che vengono eseguite in modo continuo. Le query continue ti consentono di analizzare i dati in arrivo in BigQuery in tempo reale. Puoi inserire le righe di output prodotte da una query continua in una tabella BigQuery o esportarle in Pub/Sub, Bigtable o Spanner. Le query continue possono elaborare i dati scritti nelle tabelle BigQuery standard utilizzando uno dei seguenti metodi:
- L'API BigQuery Storage Write
- Il metodo
tabledata.insertAll - Caricamento in batch
- L'istruzione DML
INSERT - Istruzioni DML di modifica dei dati come
DELETE,UPDATEeMERGEdurante l'esportazione dei dati in Pub/Sub. - Scritture dai risultati di una query batch in una tabella permanente
- Scritture dai risultati di una query continua di BigQuery in una tabella permanente
- Una sottoscrizione Pub/Sub BigQuery
- Scritture da Dataflow a BigQuery
- Scritture da Datastream a BigQuery utilizzando la modalità di scrittura solo in aggiunta
Puoi utilizzare le query continue per eseguire attività sensibili al tempo, come creare e agire immediatamente in base agli insight, applicare l'inferenza di machine learning (ML) in tempo reale e replicare i dati in altre piattaforme. In questo modo, puoi utilizzare BigQuery come motore di elaborazione dei dati basato su eventi per la logica decisionale della tua applicazione.
Il seguente diagramma mostra i flussi di lavoro comuni delle query continue:
Casi d'uso
Di seguito sono riportati i casi d'uso comuni in cui potresti voler utilizzare le query continue:
- Servizi di interazione con i clienti personalizzati: utilizza l'AI generativa per creare messaggi personalizzati per ogni interazione con i clienti.
- Rilevamento delle anomalie: crea soluzioni che ti consentono di eseguire il rilevamento di anomalie e minacce su dati complessi in tempo reale, in modo da poter reagire più rapidamente ai problemi.
- Pipeline basate su eventi personalizzabili: utilizza l'integrazione delle query continue con Pub/Sub per attivare le applicazioni downstream in base ai dati in arrivo.
- Arricchimento dei dati ed estrazione delle entità: utilizza le query continue per eseguire l'arricchimento e la trasformazione dei dati in tempo reale utilizzando funzioni SQL e modelli ML.
- Estrazione, trasformazione e caricamento (ETL) inversa: esegui l'ETL inversa in tempo reale in altri sistemi di archiviazione più adatti per la pubblicazione di applicazioni a bassa latenza. Ad esempio, analizzare o migliorare i dati sugli eventi scritti in BigQuery e poi trasmetterli in streaming a Bigtable o Spanner per la pubblicazione delle applicazioni.
Funzionalità supportate
Le seguenti operazioni sono supportate nelle query continue:
- Esecuzione di
INSERTistruzioni per scrivere i dati da una query continua in una tabella BigQuery. Esecuzione di istruzioni
EXPORT DATAper pubblicare l'output delle query continue negli argomenti Pub/Sub. Per saperne di più, consulta Esportare dati in Pub/Sub.Da un argomento Pub/Sub, puoi utilizzare i dati con altri servizi, ad esempio eseguire analisi dei flussi di dati utilizzando Dataflow o utilizzare i dati in un flusso di lavoro di integrazione delle applicazioni.
Esecuzione di istruzioni
EXPORT DATAper esportare i dati da BigQuery a tabelle Bigtable. Per saperne di più, consulta Esportare dati in Bigtable.Esecuzione di istruzioni
EXPORT DATAper esportare i dati da BigQuery alle tabelle Spanner. Per saperne di più, consulta Esportare dati in Spanner (ETL inversa).Chiamata delle seguenti funzioni di AI generativa:
AI.GENERATE-
- Questa funzione richiede di avere un modello remoto BigQuery ML su un modello Vertex AI.
Chiamata delle seguenti funzioni di AI:
Queste funzioni richiedono di avere un modello remoto BigQuery ML su un'API Cloud AI.
Normalizzazione dei dati numerici utilizzando la
ML.NORMALIZERfunzione.Utilizzo di funzioni GoogleSQL senza stato, ad esempio, le funzioni di conversione. Nelle funzioni senza stato, ogni riga viene elaborata indipendentemente dalle altre righe della tabella.
Utilizzo di operazioni con stato, ad esempio
JOINs, aggregazioni e aggregazioni di finestre. Nelle operazioni con stato, lo stato dei dati importati viene mantenuto su più righe o intervalli di tempo per calcolare un risultato accurato.Utilizzo della
APPENDSfunzione di cronologia delle modifiche per elaborare i dati aggiunti da un punto specifico nel tempo.Utilizzo della
CHANGESfunzione di cronologia delle modifiche per elaborare i dati modificati, inclusi aggiunte e mutazioni, da un punto specifico nel tempo quando esporti i dati in Pub/Sub. Tuttavia,CHANGESnon è supportato quando si utilizza un operazione con stato.
Operazioni con stato supportate
Per richiedere assistenza o fornire un feedback su questa funzionalità, invia un'email all'indirizzo bq-continuous-queries-feedback@google.com.
Le operazioni con stato consentono alle query continue di eseguire analisi complesse che richiedono la conservazione delle informazioni su più righe o intervalli di tempo. Mentre
le funzioni senza stato elaborano ogni riga in modo indipendente, le operazioni con stato mantengono
lo stato dei dati importati per supportare funzioni come JOINs, aggregazioni e
aggregazioni di finestre. Questa funzionalità ti consente di correlare gli eventi di flussi diversi o di calcolare le metriche nel tempo, ad esempio una media di 30 minuti, memorizzando i dati necessari in memoria durante l'esecuzione della query.
Le query continue supportano le seguenti operazioni con stato:
Autorizzazione
I Google Cloud token di accesso utilizzati durante l'esecuzione dei job di query continua hanno un durata (TTL) di due giorni quando vengono generati da un account utente. Di conseguenza, questi job smettono di essere eseguiti dopo due giorni. I token di accesso generati dai service account possono essere eseguiti più a lungo, ma devono comunque rispettare il runtime massimo della query. Per saperne di più, consulta Eseguire una query continua utilizzando un service account.
Località
Per un elenco delle regioni supportate, consulta Località delle query continue di BigQuery.
Limitazioni
Le query continue sono soggette alle seguenti limitazioni:
- Lo stato dei dati importati viene mantenuto solo per le operazioni con stato specifiche
in anteprima.
Sebbene le query continue ora supportino alcuni tipi di
JOIN, aggregazioni e aggregazioni di finestre, questi sono limitati a operazioni con stato specifiche. Non tutti i tipi di operazioni con stato sono supportati. Non puoi utilizzare le seguenti funzionalità SQL in una query continua, a meno che non siano elencate come operazioni con stato supportate:
I seguenti operatori di query:
L'istruzione
SELECT DISTINCTstatementFunzioni BigQuery ML diverse da quelle elencate in Funzionalità supportate
Istruzioni del linguaggio di manipolazione dei dati (DML) ad eccezione di
INSERT.Istruzioni
EXPORT DATAche non hanno come target Bigtable, Pub/Sub o Spanner.
Le query continue non supportano le seguenti origini dati:
- Tabelle esterne.
- Visualizzazioni dello schema informativo.
- Tabelle BigLake per Apache Iceberg in BigQuery.
- Tabelle con caratteri jolly.
- Dati di upsert di Change Data Capture (CDC) data.
- Viste materializzate.
- Viste definite da altre limitazioni delle query continue, come operazioni
JOIN, funzioni di aggregazione, funzioni definite dall'utente o tabelle abilitate per Change Data Capture.
Le query continue non supportano le funzionalità di sicurezza a livello di column- e di riga.
L'output di una query continua è soggetto alle quote e ai limiti intrinseci del servizio di destinazione in cui viene esportato l'output.
Quando esporti i dati negli endpoint di località di Bigtable, Spanner o Pub/Sub , puoi scegliere come target solo le risorse Bigtable, Spanner o Pub/Sub che rientrano nello stesso Google Cloud limite regionale del set di dati BigQuery contenente la tabella su cui stai eseguendo la query. Questa limitazione non si applica quando esporti i dati negli endpoint globali di Pub/Sub. Per saperne di più sull' esportazione in una policy di routing del profilo app Bigtable, consulta Considerazioni sulla località.
Non puoi eseguire una query continua da un data canvas.
Non puoi modificare l'SQL utilizzato in una query continua mentre il job di query continua è in esecuzione. Per saperne di più, consulta Modificare l'SQL di una query continua.
Se un job di query continua è in ritardo nell'elaborazione dei dati in arrivo e ha un ritardo della filigrana di output di superiore a 48 ore, non riesce. Puoi eseguire di nuovo la query e utilizzare la
APPENDSoCHANGESfunzione di cronologia delle modifiche per riprendere l'elaborazione dal punto nel tempo in cui hai interrotto il job di query continua precedente. Per saperne di più, consulta Avviare una query continua da un punto specifico nel tempo.Una query continua configurata con un account utente può essere eseguita per un massimo di due giorni. Una query continua configurata con un account di servizio può essere eseguita per un massimo di 150 giorni. Quando viene raggiunto il runtime massimo della query, la query non riesce e interrompe l'elaborazione dei dati in arrivo.
Sebbene le query continue siano create utilizzando le funzionalità di affidabilità di BigQuery, possono verificarsi problemi temporanei occasionali. I problemi potrebbero comportare una certa quantità di rielaborazione automatica della query continua, che potrebbe comportare la duplicazione dei dati nell'output della query continua. Progetta i sistemi downstream in modo che gestiscano questi scenari.
Limitazioni delle prenotazioni
- Per eseguire query continue, devi creare prenotazioni Enterprise o Enterprise Plus edition reservations. Le query continue non supportano il modello di fatturazione del calcolo on demand.
- Quando crei un'assegnazione di prenotazione
CONTINUOUSreservation assignment, la prenotazione associata è limitata a un massimo di 500 slot. Puoi richiedere un aumento di questo limite contattando bq-continuous-queries-feedback@google.com. - Non puoi creare un'assegnazione di prenotazione che utilizzi un tipo di prestazione diverso nella stessa prenotazione di un'assegnazione di prenotazione di query continua.
- Non puoi configurare la concorrenza delle query continue. BigQuery determina automaticamente il numero di query continue che possono essere eseguite contemporaneamente, in base alle assegnazioni di prenotazione disponibili che utilizzano il tipo di prestazione
CONTINUOUS. - Quando esegui più query continue utilizzando la stessa prenotazione, i singoli job potrebbero non suddividere le risorse disponibili in modo equo, come definito dall' equità di BigQuery.
Scalabilità automatica degli slot
Le query continue possono utilizzare la scalabilità automatica degli slot per scalare dinamicamente la capacità allocata in base al workload. Man mano che il workload delle query continue aumenta o diminuisce, BigQuery regola dinamicamente gli slot.
Dopo l'avvio di una query continua, questa ascolta attivamente i dati in arrivo, che consumano le risorse degli slot. Sebbene una prenotazione con una query continua in esecuzione non venga fare lo scale down a zero slot, una query continua inattiva che ascolta principalmente i dati in arrivo dovrebbe consumare una quantità minima di slot, in genere circa 1 slot.
Condivisione di slot inattivi
Le query continue possono utilizzare la condivisione di slot inattivi per condividere le risorse degli slot inutilizzati con altre prenotazioni e tipi di job.
- Per eseguire una query continua è comunque necessaria un'assegnazione di
CONTINUOUSprenotazione e non può fare affidamento esclusivamente sugli slot inattivi di altre prenotazioni. Pertanto, un'assegnazione di prenotazioneCONTINUOUSrichiede una base di riferimento di slot diversa da zero o una configurazione di scalabilità automatica di slot diversa da zero. - Solo gli slot di riferimento inattivi o gli slot con impegno di un'assegnazione di prenotazione
CONTINUOUSsono condivisibili. Gli slot con scalabilità automatica non sono condivisibili come slot inattivi per altre prenotazioni.
Prezzi
Le query continue utilizzano
i prezzi di calcolo della capacità di BigQuery,
misurati in slot.
Per eseguire query continue, devi avere una
prenotazione che utilizzi la versione
Enterprise o Enterprise Plus,
e un'assegnazione di prenotazione
che utilizzi il tipo di prestazione CONTINUOUS.
L'utilizzo di altre risorse BigQuery, come l'importazione e l'archiviazione dei dati, viene addebitato alle tariffe indicate nei prezzi di BigQuery.
L'utilizzo di altri servizi che ricevono i risultati delle query continue o che vengono chiamati durante l'elaborazione delle query continue viene addebitato alle tariffe pubblicate per questi servizi. Per i prezzi di altri Google Cloud servizi utilizzati dalle query continue, consulta i seguenti argomenti:
Passaggi successivi
Prova a creare una query continua.