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 consentono di analizzare i dati in entrata 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:

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 workflow comuni delle query continue:

Diagramma che illustra i workflow comuni delle query continue BigQuery, tra cui l'importazione dati, l'elaborazione e l'esportazione dei dati in destinazioni come Bigtable e Pub/Sub.

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 entrata.
  • Arricchimento dei dati ed estrazione di entità: utilizza le query continue per eseguire l'arricchimento e la trasformazione dei dati in tempo reale utilizzando le funzioni SQL e i 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 dell'applicazione.
  • Attivazione autonoma degli agenti: attiva le pipeline di dati agentici in tempo reale in base a eventi complessi rilevati nei flussi di dati in tempo reale. Per un esempio, consulta il codelab Crea un agente di dati basato su eventi con BigQuery e Agent Development Kit (ADK).
  • Monitoraggio autonomo degli agenti: sviluppa il monitoraggio e gli avvisi automatici in tempo reale per le interazioni agentiche in tempo reale utilizzando il plug-in di analisi degli agenti di BigQuery, che trasmette in streaming tutti i dati di traccia degli agenti, l'utilizzo degli strumenti e i log operativi direttamente in BigQuery per una visibilità approfondita della tua forza lavoro AI.

Funzionalità supportate

Le seguenti operazioni sono supportate nelle query continue:

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 finestra. 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:

Limitazioni delle prenotazioni

  • Per eseguire query continue, devi creare una prenotazione della versione Enterprise o Enterprise Plus edition reservation con un tipo di assegnazione CONTINUOUS. Le query continue non supportano il modello di fatturazione del calcolo on demand.
  • Quando crei un'assegnazione di prenotazione CONTINUOUS reservation 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 job diverso nella stessa prenotazione di un'assegnazione di prenotazione di query continua.
  • BigQuery determina il numero di query continue che possono essere eseguite contemporaneamente per progetto in base alle dimensioni configurate dell'assegnazione di prenotazione che utilizza il tipo di prestazione CONTINUOUS. Per ammettere nuovi job, BigQuery richiede una soglia di 10 slot per job di query continua. La query non consuma necessariamente tutti i 10 slot durante l'esecuzione normale. Questa soglia garantisce che ogni query continua in esecuzione mantenga una capacità di calcolo di base sufficiente per gestire picchi improvvisi nel volume dei dati in entrata senza rimanere indietro o compromettere l'elaborazione a bassa latenza.

    Per assicurarti che le query vengano ammesse correttamente senza raggiungere i limiti di concorrenza, ti consigliamo di utilizzare la scalabilità automatica degli slot . Con la scalabilità automatica, l'utilizzo complessivo degli slot verrà scalato dinamicamente in base alla domanda effettiva di risorse. Puoi configurare una prenotazione di base più piccola e impostare un limite massimo di scalabilità automatica che copra comodamente la soglia di 10 slot per query per le query simultanee previste.

  • Quando esegui più query continue utilizzando la stessa prenotazione, i singoli job potrebbero non dividere equamente le risorse disponibili, 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 entrata, 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 entrata dovrebbe consumare una quantità minima di slot, in genere circa 1 slot.

Condivisione degli slot inattivi

Le query continue possono utilizzare la condivisione degli 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 CONTINUOUS prenotazione e non può fare affidamento esclusivamente sugli slot inattivi di altre prenotazioni. Pertanto, un'assegnazione di prenotazione CONTINUOUS richiede una base di riferimento di slot diversa da zero o una configurazione di scalabilità automatica degli slot diversa da zero.
  • Sono condivisibili solo gli slot di riferimento inattivi o gli slot con impegno di un'assegnazione di prenotazione CONTINUOUS. Gli slot con scalabilità automatica non sono condivisibili come slot inattivi per altre prenotazioni.

Prezzi

Le query continue possono utilizzare la scalabilità fluida di BigQuery.

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:

Stima dei requisiti di capacità degli slot

Poiché ogni workload è diverso, spesso non è possibile stimare con precisione gli slot per le query continue in anticipo. La quantità di slot richiesta dalle query continue dipende da una combinazione di diversi fattori:

  • Il numero di query continue in esecuzione contemporaneamente.
  • La complessità dell'istruzione SQL.
  • L'utilizzo di funzioni di elaborazione con stato, inclusi durate delle finestre, JOIN e aggregazioni.
  • La frequenza o la velocità dei dati in entrata.
  • La struttura e le dimensioni dei dati importati.

A livello concettuale, puoi stimare il requisito totale di slot come funzione del workload delle query continue:

Slot stimati ≈ Numero di query continue x ∑ (Velocità dei dati x Complessità della query)

Poiché il consumo effettivo di slot dipende in larga misura dal workload e dai pattern di dati univoci, il metodo più accurato per stimare il costo è monitorare un job in esecuzione. Puoi misurare l'utilizzo massimo degli slot di un'esecuzione di query continua isolata utilizzando le viste INFORMATION_SCHEMA. Per istruzioni dettagliate ed esempi di query per monitorare l'utilizzo degli slot nel tempo, consulta Visualizzare le informazioni sul consumo di slot.

Passaggi successivi

Prova a creare una query continua.