Présentation des requêtes continues

Ce document décrit les requêtes continues BigQuery.

Les requêtes continues BigQuery sont des instructions SQL qui s'exécutent en continu. Les requêtes continues vous permettent d'analyser les données entrantes dans BigQuery en temps réel. Vous pouvez écrire ou exporter les lignes de sortie produites par une requête continue vers les destinations suivantes :

Les requêtes continues peuvent traiter les données écrites dans les tables BigQuery standards ou les tables gérées Apache Iceberg à l'aide de l'une des méthodes suivantes :

Vous pouvez utiliser des requêtes continues pour effectuer des tâches urgentes, telles que la création et l'action immédiate sur des insights, l'application de l'inférence de machine learning (ML) en temps réel et la réplication des données vers d'autres plates-formes. Cela vous permet d'utiliser BigQuery comme moteur de traitement de données basé sur des événements pour la logique de décision de votre application.

Le schéma suivant illustre des workflows de requêtes continues courants :

Diagramme illustrant les workflows de requêtes continues BigQuery courants, y compris l'ingestion de données, le traitement et l'exportation vers des destinations telles que Bigtable et Pub/Sub.

Cas d'utilisation

Voici quelques cas d'utilisation courants de requêtes continues :

  • Services d'interaction personnalisés avec les clients : utilisez l'IA générative pour créer des messages sur mesure adaptés à chaque interaction client.
  • Détection d'anomalies : créez des solutions vous permettant de détecter les anomalies et les menaces sur des données complexes en temps réel, afin de pouvoir réagir plus rapidement aux problèmes.
  • Pipelines personnalisables basés sur des événements : utilisez l'intégration de requêtes continues avec Pub/Sub pour déclencher des applications en aval en fonction des données entrantes.
  • Enrichissement des données et extraction d'entités : utilisez des requêtes continues pour enrichir et transformer des données en temps réel à l'aide de fonctions SQL et de modèles de ML.
  • Opérations d'extraction, de transformation et de chargement (ETL, Extract-Transform-Load) inverses : effectuez un ETL inversé en temps réel dans d'autres systèmes de stockage plus adaptés à la diffusion d'applications à faible latence. Par exemple, analyser ou améliorer les données d'événements écrites dans BigQuery, puis les importer par flux dans Bigtable, Spanner ou des tables gérées Apache Iceberg pour la diffusion de l'application.
  • Déclenchement d'agents autonomes : déclenchez des pipelines de données agentiques en temps réel en fonction d'événements complexes détectés dans les flux de données en direct. Pour obtenir un exemple, consultez l'atelier de programmation Créer un agent de données basé sur des événements avec BigQuery et Agent Development Kit (ADK).
  • Surveillance autonome des agents : développez une surveillance et des alertes automatisées en temps réel pour les interactions agentiques en temps réel à l'aide du plug-in BigQuery Agent Analytics, qui transmet toutes les données de trace des agents, l'utilisation des outils et les journaux opérationnels directement à BigQuery pour une observabilité approfondie de votre personnel d'IA.

Fonctionnalités compatibles

Les opérations suivantes sont acceptées dans les requêtes continues :

Opérations avec état compatibles

Pour demander de l'aide ou envoyer des commentaires concernant cette fonctionnalité, envoyez un e-mail à l'adresse bq-continuous-queries-feedback@google.com.

Les opérations avec état permettent aux requêtes continues d'effectuer des analyses complexes qui nécessitent de conserver des informations sur plusieurs lignes ou intervalles de temps. Alors que les fonctions sans état traitent chaque ligne indépendamment, les opérations avec état conservent l'état des données ingérées pour prendre en charge des fonctions telles que les JOIN, les agrégations et les agrégations de fenêtres. Cette fonctionnalité vous permet de mettre en corrélation des événements provenant de différents flux ou de calculer des métriques au fil du temps (par exemple, une moyenne sur 30 minutes) en stockant les données nécessaires en mémoire pendant l'exécution de la requête.

Les requêtes continues sont compatibles avec les opérations avec état suivantes :

Autorisation

Les jetons d'accèsGoogle Cloud utilisés lors de l'exécution de jobs de requête continue ont une valeur TTL (Time To Live) de deux jours lorsqu'ils sont générés par un compte utilisateur. Par conséquent, ces jobs cessent de s'exécuter après deux jours. Les jetons d'accès générés par les comptes de service peuvent s'exécuter plus longtemps, mais doivent toujours respecter la durée d'exécution maximale des requêtes. Pour en savoir plus, consultez Exécuter une requête continue à l'aide d'un compte de service.

Emplacements

Pour obtenir la liste des régions prises en charge, consultez Emplacements des requêtes continues BigQuery.

Limites

Les requêtes continues sont soumises aux limites suivantes :

Limites de réservation

  • Vous devez créer une réservation d'édition Enterprise ou Enterprise Plus avec un type d'attribution CONTINUOUS pour exécuter des requêtes continues. Les requêtes continues ne sont pas compatibles avec le modèle de facturation du calcul à la demande.
  • Lorsque vous créez une attribution de réservation CONTINUOUS, la réservation associée est limitée à 500 emplacements au maximum. Vous pouvez demander une augmentation de cette limite en contactant bq-continuous-queries-feedback@google.com.
  • Vous ne pouvez pas créer une attribution de réservation qui utilise un type de job différent dans la même réservation qu'une attribution de réservation de requête continue.
  • BigQuery détermine le nombre de requêtes continues pouvant être exécutées simultanément par projet en fonction de la taille configurée de l'attribution de réservation qui utilise le type de job CONTINUOUS. Pour accepter de nouveaux jobs, BigQuery nécessite un seuil de 10 emplacements par job de requête continue. La requête ne consomme pas nécessairement les 10 emplacements lors d'une exécution normale. Ce seuil garantit que chaque requête continue en cours d'exécution conserve une capacité de calcul de référence suffisante pour gérer les pics soudains de volume de données entrantes sans prendre de retard ni compromettre le traitement à faible latence.

    Pour vous assurer que vos requêtes sont acceptées sans atteindre les limites de simultanéité, nous vous recommandons d'utiliser l'autoscaling des emplacements. Avec l'autoscaling, votre utilisation globale des emplacements s'adapte de manière dynamique en fonction de la demande réelle de ressources. Vous pouvez configurer une réservation de référence plus petite et définir une limite d'autoscaling maximale qui couvre confortablement le seuil de 10 emplacements par requête pour vos requêtes simultanées attendues.

  • Lorsque vous exécutez plusieurs requêtes continues à l'aide de la même réservation, les jobs individuels peuvent ne pas répartir les ressources disponibles de manière équitable, comme défini par l'équité BigQuery.

Autoscaling des emplacements

Les requêtes continues peuvent utiliser l'autoscaling des emplacements pour adapter de manière dynamique la capacité allouée à votre charge de travail. À mesure que la charge de travail de vos requêtes continues augmente ou diminue, BigQuery ajuste dynamiquement vos emplacements.

Une fois qu'une requête continue commence à s'exécuter, elle écoute activement les données entrantes, ce qui consomme des ressources d'emplacement. Bien qu'une réservation avec une requête continue en cours d'exécution ne soit pas réduite à zéro emplacement, une requête continue inactive qui écoute principalement les données entrantes devrait consommer une quantité minimale d'emplacements, généralement environ un emplacement.

Partage des emplacements inactifs

Les requêtes continues peuvent utiliser le partage d'emplacements inactifs pour partager les ressources d'emplacements inutilisées avec d'autres réservations et types de missions.

  • Une attribution de réservation CONTINUOUS est toujours requise pour exécuter une requête continue et ne peut pas s'appuyer uniquement sur les emplacements inactifs d'autres réservations. Par conséquent, une attribution de réservation CONTINUOUS nécessite une valeur de référence d'emplacement non nulle ou une configuration d'autoscaling d'emplacement non nulle.
  • Seuls les emplacements de référence inactifs ou les emplacements sur engagement d'une attribution de réservation CONTINUOUS peuvent être partagés. Les emplacements avec autoscaling ne peuvent pas être partagés en tant qu'emplacements inactifs pour d'autres réservations.

Tarifs

Les requêtes continues peuvent utiliser le scaling fluide BigQuery.

Les requêtes continues utilisent les tarifs des calculs de capacité BigQuery, exprimée en emplacements. Pour exécuter des requêtes continues, vous devez disposer d'une réservation qui utilise l'édition Enterprise ou Enterprise Plus et d'une attribution de réservation qui utilise le type de job CONTINUOUS.

L'utilisation d'autres ressources BigQuery, comme l'ingestion de données et le stockage, est facturée selon les tarifs indiqués sur la page Tarifs de BigQuery.

L'utilisation d'autres services qui reçoivent des résultats de requêtes continues ou qui sont appelés pendant le traitement des requêtes continues est facturée selon les tarifs publiés pour ces services. Pour connaître la tarification des autres services Google Cloud utilisés par les requêtes continues, consultez les sections suivantes :

Estimer les exigences relatives à la capacité d'emplacements

Chaque charge de travail étant différente, il n'est souvent pas possible d'estimer à l'avance le nombre exact d'emplacements pour les requêtes continues. Le nombre d'emplacements requis par vos requêtes continues dépend d'une combinaison de plusieurs facteurs :

  • Nombre de requêtes continues exécutées simultanément.
  • La complexité de l'instruction SQL.
  • L'utilisation de fonctions de traitement avec état, y compris les durées de fenêtre, les JOIN et les agrégations.
  • Le débit ou la vitesse des données entrantes.
  • La structure et la taille des données ingérées.

D'un point de vue conceptuel, vous pouvez estimer le nombre total d'emplacements requis en fonction de votre charge de travail de requêtes continues :

Emplacements estimés ≈ Nombre de requêtes continues x ∑ (Débit de données x Complexité de la requête)

Étant donné que la consommation réelle d'emplacements dépend fortement de votre charge de travail et de vos modèles de données uniques, la méthode la plus précise pour estimer les coûts consiste à surveiller un job en cours d'exécution. Vous pouvez mesurer l'utilisation maximale des emplacements d'une exécution de requête continue isolée à l'aide des vues INFORMATION_SCHEMA. Pour obtenir des instructions détaillées et des exemples de requêtes permettant de suivre l'utilisation des emplacements au fil du temps, consultez Afficher les informations sur la consommation des emplacements.

Étapes suivantes

Essayez de créer une requête continue.