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 insérer les lignes de sortie générées par une requête continue dans une table BigQuery, ou les exporter vers Pub/Sub ou Bigtable. Les requêtes continues peuvent traiter les données écrites dans les tables BigQuery standards à l'aide de l'une des méthodes suivantes :
- API BigQuery Storage Write
- La méthode
tabledata.insertAll
- Chargement par lot
- L'instruction LMD
INSERT
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 :
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 pour la diffusion de l'application.
Opérations compatibles
Les opérations suivantes sont acceptées dans les requêtes continues :
- L'exécution d'instructions
INSERT
pour écrire des données issues d'une requête continue dans une table BigQuery. L'exécution d'instructions
EXPORT DATA
pour publier le résultat de la requête continue dans des sujets Pub/Sub. Pour en savoir plus, consultez la page Exporter des données vers Pub/Sub.À partir d'un sujet Pub/Sub, vous pouvez utiliser les données avec d'autres services, tels que l'analyse de flux à l'aide de Dataflow, ou en utilisant les données dans un workflow d'intégration d'applications.
L'exécution d'instructions
EXPORT DATA
pour exporter des données depuis BigQuery vers des tables Bigtable Pour en savoir plus, consultez la page Exporter des données vers Bigtable.Appel des fonctions d'IA générative suivantes :
Ces fonctions nécessitent de disposer d'un modèle distant BigQuery ML sur un modèle Vertex AI.
Appel des fonctions d'IA suivantes :
Ces fonctions nécessitent de disposer d'un modèle distant BigQuery ML sur une API Cloud AI.
La normalisation des données numériques à l'aide de la fonction
ML.NORMALIZER
L'utilisation de fonctions GoogleSQL sans état, telles que les fonctions de conversion. Dans les fonctions sans état, chaque ligne est traitée indépendamment des autres lignes de la table.
L'utilisation de la fonction d'historique des modifications
APPENDS
pour démarrer le traitement continu des requêtes à partir d'un moment précis.
Autorisation
Pour exécuter des requêtes continues de longue durée, utilisez un compte de service plutôt qu'un compte utilisateur.
Les jetons d'accès Google 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 ne sont pas limités par une valeur TTL. Par conséquent, les jobs de requête continues exécutés par un compte de service s'exécutent jusqu'à leur annulation explicite. Pour en savoir plus, consultez la page Exécuter une requête continue à l'aide d'un compte de service.
Emplacements
Les requêtes continues sont prises en charge aux emplacements suivants :
US
EU
asia-northeast1
asia-south1
europe-west1
europe-west2
europe-west4
us-central1
us-east1
us-east4
us-west1
Limites
Les requêtes continues sont soumises aux limites suivantes :
- Les requêtes continues BigQuery ne conservent pas l'état des données ingérées. Les opérations courantes basées sur l'état, telles que
JOINs
, les fonctions d'agrégation et les fonctions d'analyse fenêtrée, ne sont actuellement pas acceptées. Vous ne pouvez pas utiliser les fonctionnalités SQL suivantes dans une requête continue:
- Fonctions scalaires non déterministes, par exemple, la fonction
CURRENT_DATE
- Opérations
JOIN
- Fonctions d'agrégation
- Fonctions d'agrégation approximative
Les clauses de requête suivantes :
Les opérateurs de requête suivants :
Interroger des opérateurs d'ensemble
Fonctions BigQuery ML autres que celles regroupées dans la section Opérations compatibles
Instructions du langage de manipulation de données (LMD), à l'exception de
INSERT
.Les instructions
EXPORT DATA
qui ne ciblent pas Bigtable ou Pub/Sub
- Fonctions scalaires non déterministes, par exemple, la fonction
Les requêtes continues ne sont pas compatibles avec les tables génériques en tant que source de données.
Les requêtes continues ne sont pas compatibles avec les tables externes en tant que source de données.
Les requêtes continues ne sont pas compatibles avec les fonctionnalités de sécurité BigQuery suivantes :
Lorsque vous exportez des données vers Bigtable, vous ne pouvez cibler que les instances Bigtable situées dans la même limite régionale Google Cloud que l'ensemble de données BigQuery contenant la table que vous interrogez. Pour en savoir plus, consultez la section Considérations relatives aux zones. Cette restriction ne s'applique pas à l'exportation de données vers Pub/Sub, car Pub/Sub est une ressource globale.
Vous ne pouvez pas exécuter de requête continue à partir d'un canevas de données.
Vous ne pouvez pas modifier le code SQL utilisé dans une requête continue pendant l'exécution du job de requête continue. Pour en savoir plus, consultez la section Modifier le code SQL d'une requête continue.
Si le job de requête continue prend plus de sept jours, vous devez l'annuler et en démarrer un nouveau. Vous pouvez exécuter à nouveau la requête et utiliser la fonction d'historique des modifications
APPENDS
pour reprendre le traitement à partir du moment où vous avez arrêté le job de requête continue précédent. Pour en savoir plus, consultez la section Lancer une requête continue à partir d'un moment précis.
Limites de réservation
- Vous devez créer des réservations de l'édition Enterprise ou Enterprise Plus afin d'exécuter des requêtes continues. Les requêtes continues ne sont pas compatibles avec le modèle de facturation de calcul à la demande.
- Lorsque vous créez une attribution de réservation pour une requête continue, la réservation associée est limitée à 500 emplacements ou moins, et ne peut pas être configurée pour utiliser l'autoscaling.
- Une attribution de réservation de requête continue ne partage pas les emplacements inactifs, même si la réservation est configurée pour le faire.
- 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.
- Vous ne pouvez pas configurer la simultanéité de requêtes continue. BigQuery détermine automatiquement le nombre de requêtes continues pouvant être exécutées simultanément, en fonction des attributions de réservation disponibles qui utilisent le type de job
CONTINUOUS
. - 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.
Tarifs
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 et le stockage de données, 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 :
Étape suivante
Essayez de créer une requête continue.