Gérer les paramètres de configuration

Les administrateurs BigQuery et les propriétaires de projet peuvent gérer les paramètres de configuration au niveau de l'organisation et du projet. Vous pouvez définir des configurations pour renforcer la sécurité, contrôler les coûts et optimiser les performances des requêtes dans l'ensemble de votre infrastructure de données. En définissant des valeurs par défaut, vous pouvez assurer une conformité et une efficacité opérationnelle cohérentes, ce qui facilite la gestion de votre environnement BigQuery.

Spécifier les paramètres de configuration

Les sections suivantes expliquent comment spécifier les paramètres de configuration par défaut. Les paramètres par défaut sont configurés au niveau de l'organisation ou du projet, mais peuvent être remplacés au niveau de la session ou du job. Pour appliquer le comportement par défaut, vous pouvez configurer les paramètres par défaut conjointement avec des règles d'administration associées.

Rôles requis

Pour obtenir l'autorisation dont vous avez besoin pour spécifier un paramètre de configuration, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin). Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation bigquery.config.update, qui est nécessaire pour spécifier un paramètre de configuration.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Configurer les paramètres de l'organisation

Vous pouvez configurer les paramètres au niveau de l'organisation à l'aide des instructions GoogleSQL suivantes. Lorsque vous spécifiez la configuration, vous devez indiquer la région dans laquelle elle s'applique. Vous ne pouvez utiliser qu'une seule région par instruction.

Pour configurer les paramètres de l'organisation, utilisez l'instruction LDD ALTER ORGANIZATION SET OPTIONS. L'exemple suivant spécifie plusieurs configurations par défaut, y compris les suivantes :

  • Fuseau horaire : America/Chicago
  • Clé Cloud KMS : clé définie par l'utilisateur
  • Délai avant expiration de la requête : 30 minutes (1 800 000 millisecondes)
  • Délai avant expiration de la file d'attente des requêtes interactives : 10 minutes (600 000 millisecondes)
  • Délai avant expiration de la file d'attente des requêtes par lot : 20 minutes (1 200 000 millisecondes)
ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.default_time_zone`= 'America/Chicago',
  -- Ensure all service accounts under the organization have permission to KMS_KEY
  `region-REGION.default_kms_key_name` = KMS_KEY,
  `region-REGION.default_query_job_timeout_ms` = 1800000,
  `region-REGION.default_interactive_query_queue_timeout_ms` = 600000,
  `region-REGION.default_batch_query_queue_timeout_ms` = 1200000,
  `region-REGION.default_storage_billing_model`= BILLING_MODEL,
  `region-REGION.default_max_time_travel_hours` = 72);

Remplacez les éléments suivants :

  • REGION : région associée à votre projet ou à votre organisation (par exemple, us ou europe-west6).
  • KMS_KEY : clé Cloud KMS définie par l'utilisateur. Pour en savoir plus, consultez Clés Cloud KMS gérées par le client.
  • BILLING_MODEL : modèle de stockage pour les nouveaux ensembles de données (par exemple, PHYSICAL pour les octets physiques).

L'exemple suivant supprime tous les paramètres par défaut au niveau de l'organisation :

ALTER ORGANIZATION
SET OPTIONS (
  `region-REGION.default_time_zone` = NULL,
  `region-REGION.default_kms_key_name` = NULL,
  `region-REGION.default_query_job_timeout_ms` = NULL,
  `region-REGION.default_interactive_query_queue_timeout_ms` = NULL,
  `region-REGION.default_batch_query_queue_timeout_ms` = NULL,
  `region-REGION.default_storage_billing_model`= NULL,
  `region-REGION.default_max_time_travel_hours` = NULL);

Configurer les paramètres du projet

Vous pouvez configurer les paramètres au niveau du projet à l'aide des instructions GoogleSQL suivantes. Lorsque vous spécifiez la configuration, vous devez indiquer la région dans laquelle elle s'applique. Vous ne pouvez utiliser qu'une seule région par instruction.

Pour configurer les paramètres du projet, utilisez l'instruction LDD ALTER PROJECT SET OPTIONS. L'instruction LDD ALTER PROJECT SET OPTIONS accepte éventuellement la variable PROJECT_ID. Si PROJECT_ID n'est pas spécifié, il s'agit par défaut du projet en cours dans lequel la requête est exécutée. L'exemple suivant spécifie plusieurs configurations par défaut :

  • Fuseau horaire : America/Los_Angeles
  • Clé Cloud KMS : exemple de clé
  • Délai avant expiration de la requête : 1 heure
  • Délai avant expiration de la file d'attente des requêtes interactives : 10 minutes
  • Délai avant expiration de la file d'attente des requêtes par lot : 20 minutes
  • Équité basée sur les réservations : activée
ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.default_time_zone` = 'America/Los_Angeles',
  -- Ensure all service accounts under the project have permission to KMS_KEY
  `region-REGION.default_kms_key_name` = KMS_KEY,
  `region-REGION.default_query_job_timeout_ms` = 3600000,
  `region-REGION.default_interactive_query_queue_timeout_ms` = 600000,
  `region-REGION.default_batch_query_queue_timeout_ms` = 1200000,
  `region-REGION.default_storage_billing_model`= BILLING_MODEL,
  `region-REGION.default_max_time_travel_hours` = 72,
  `region-REGION.default_cloud_resource_connection_id` = CONNECTION_ID,
  `region-REGION.default_sql_dialect_option` = 'default_google_sql',
  `region-REGION.enable_reservation_based_fairness` = true);

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet
  • REGION : région associée à votre projet ou à votre organisation (par exemple, us ou europe-west6).
  • KMS_KEY : clé Cloud KMS définie par l'utilisateur. Pour en savoir plus, consultez Clés Cloud KMS gérées par le client.
  • BILLING_MODEL : modèle de stockage pour les nouveaux ensembles de données (par exemple, PHYSICAL pour les octets physiques).
  • CONNECTION_ID : ID de la connexion à utiliser comme connexion par défaut pour les tables et les modèles.

L'exemple suivant supprime tous les paramètres par défaut au niveau du projet. Les paramètres par défaut utilisent les paramètres par défaut du niveau de l'organisation, s'ils existent. Sinon, tous les paramètres par défaut sont définis sur la valeur par défaut globale.

ALTER PROJECT PROJECT_ID
SET OPTIONS (
  `region-REGION.default_time_zone` = NULL,
  `region-REGION.default_kms_key_name` = NULL,
  `region-REGION.default_query_job_timeout_ms` = NULL,
  `region-REGION.default_interactive_query_queue_timeout_ms` = NULL,
  `region-REGION.default_batch_query_queue_timeout_ms` = NULL,
  `region-REGION.default_storage_billing_model`= NULL,
  `region-REGION.default_max_time_travel_hours` = NULL,
  `region-REGION.default_cloud_resource_connection_id` = NULL,
  `region-REGION.default_sql_dialect_option` = NULL,
  `region-REGION.enable_reservation_based_fairness` = NULL);

Les configurations au niveau du projet remplacent les configurations au niveau de l'organisation. Les configurations au niveau du projet peuvent à leur tour être remplacées par des configurations au niveau de la session, qui peuvent être remplacées par des configurations au niveau du job.

Récupérer les paramètres de configuration

Vous pouvez afficher les paramètres de configuration d'une organisation ou d'un projet à l'aide des vues INFORMATION_SCHEMA suivantes :

L'application des nouvelles configurations et leur prise en compte dans la vue INFORMATION_SCHEMA peuvent prendre quelques minutes.

Rôles requis

Pour obtenir l'autorisation dont vous avez besoin pour récupérer les paramètres de configuration, demandez à votre administrateur de vous accorder le rôle IAM Utilisateur de job BigQuery (roles/bigquery.jobUser) sur le projet spécifié. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation bigquery.config.get, qui est nécessaire pour récupérer les paramètres de configuration.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Pour en savoir plus sur les rôles et les autorisations IAM dans BigQuery, consultez la page Rôles prédéfinis et autorisations.

Examples

Pour afficher les configurations d'une organisation dans la région us, exécutez la requête suivante :

SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;

Pour afficher les configurations effectives de votre projet par défaut dans la région us, exécutez la requête suivante :

SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;

Pour afficher les configurations de votre projet par défaut dans la région us, exécutez la requête suivante :

SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;

Paramètres de configuration

Les sections suivantes décrivent les paramètres de configuration que vous pouvez spécifier.

Paramètres d'exécution des requêtes et des jobs

Utilisez les paramètres suivants pour contrôler la façon dont les requêtes sont exécutées, chronométrées et mises en file d'attente.

  • default_batch_query_queue_timeout_ms : durée par défaut, en millisecondes, pendant laquelle une requête par lot est placée en file d'attente. Si elle n'est pas spécifiée, la valeur par défaut est de 24 heures. La valeur minimale est de 1 milliseconde. La valeur maximale est de 48 heures. Pour désactiver la mise en file d'attente des requêtes par lot, définissez la valeur sur -1.
  • default_interactive_query_queue_timeout_ms : durée par défaut, en millisecondes, pendant laquelle une requête interactive est placée en file d'attente. Si elle n'est pas spécifiée, la valeur par défaut est de six heures. La valeur minimale est de 1 milliseconde. La valeur maximale est de 48 heures. Pour désactiver la mise en file d'attente des requêtes interactives, définissez la valeur sur -1.
  • default_query_job_timeout_ms : délai par défaut au bout duquel un job de requête expire, comprenant le délai de mise en file d'attente du job et son temps d'exécution. Le délai avant expiration doit être compris entre 5 minutes et 48 heures. Ce délai ne s'applique qu'aux jobs de requête individuels et aux jobs enfants des scripts. Pour définir un délai avant expiration pour les tâches de script, vous devez utiliser la méthode API jobs.insert et définir le champ jobTimeoutMs.

  • enable_reservation_based_fairness : option qui détermine comment les emplacements inactifs sont partagés. La valeur par défaut est "false", ce qui signifie que les emplacements inactifs sont répartis de manière égale entre tous les projets de requête. Si cette option est activée, les emplacements inactifs sont d'abord partagés équitablement entre toutes les réservations, puis entre les projets de la réservation. Pour en savoir plus, consultez Équité basée sur les réservations. Cette option n'est disponible qu'au niveau du projet. Vous ne pouvez pas le spécifier au niveau de l'organisation ni du job.

  • default_time_zone : Fuseau horaire par défaut à utiliser dans les fonctions GoogleSQL dépendantes du fuseau horaire, lorsqu'un fuseau horaire n'est pas spécifié en tant qu'argument. Cette configuration ne s'applique pas aux tables partitionnées par colonnes d'unités de temps (qui utilisent le fuseau horaire UTC), aux transferts planifiés du service de transfert de stockage ni au chargement des données à l'aide de l'outil de ligne de commande bq. Pour en savoir plus, consultez la section Fuseaux horaires.

  • default_query_optimizer_options : optimisations des requêtes basées sur l'historique. Cette option peut prendre l'une des valeurs suivantes :

    • 'adaptive=on' : utiliser les optimisations de requêtes basées sur l'historique.
    • 'adaptive=off' : n'utilise pas les optimisations de requêtes basées sur l'historique.
    • NULL (par défaut) : utilisez le paramètre par défaut d'optimisation des requêtes basée sur l'historique, qui équivaut à 'adaptive=on'.
  • default_sql_dialect_option : dialecte de requête SQL par défaut pour l'exécution des jobs de requête à l'aide de l'outil de ligne de commande bq ou de l'API BigQuery. La modification de ce paramètre n'affecte pas le dialecte par défaut dans la console. Cette option peut prendre l'une des valeurs suivantes :

    • 'default_legacy_sql' (par défaut) : utilisez l'ancien SQL si le dialecte de requête n'est pas spécifié au niveau du job.
    • 'default_google_sql' : utilisez GoogleSQL si le dialecte de requête n'est pas spécifié au niveau du job.
    • 'only_google_sql' : utilisez GoogleSQL si le dialecte de requête n'est pas spécifié au niveau du job. Refuser les tâches dont le dialecte de requête est défini sur l'ancien SQL.
    • NULL : utilisez le paramètre de dialecte de requête par défaut, qui équivaut à 'default_legacy_sql'.

Paramètres de gestion des données

Utilisez les paramètres suivants pour définir des règles de création, de sécurité et de cycle de vie des données.

  • default_column_name_character_map : champ d'application et gestion par défaut des caractères dans les noms de colonnes. Si cette valeur n'est pas définie, les jobs de chargement qui utilisent des caractères non compatibles dans les noms de colonnes échouent et renvoient un message d'erreur. Certaines anciennes tables peuvent être configurées pour remplacer les caractères non autorisés dans les noms de colonnes. Pour en savoir plus, consultez la page sur la méthode load_option_list.
  • default_kms_key_name : clé Cloud Key Management Service par défaut pour le chiffrement des données de table, y compris les tables temporaires ou anonymes. Pour en savoir plus, consultez la section Clés Cloud KMS gérées par le client.

  • default_max_time_travel_hours : fenêtre temporelle par défaut en heures pour les nouveaux ensembles de données. Cette durée doit être comprise entre 48 et 168 heures (inclus) et doit être divisible par 24. La modification du nombre maximal d'heures de voyage par défaut n'a aucune incidence sur les ensembles de données existants. Pour en savoir plus, consultez Fonctionnalité temporelle et conservation des données.

Paramètres de coût et de ressources

Utilisez les paramètres suivants pour déterminer comment les ressources sont facturées et connectées.

  • default_storage_billing_model : modèle de facturation du stockage par défaut pour les nouveaux ensembles de données. Définissez la valeur sur PHYSICAL pour utiliser des octets physiques lors du calcul des frais de stockage ou sur LOGICAL pour utiliser des octets logiques. Notez que la modification du modèle de facturation du stockage par défaut n'a aucune incidence sur les ensembles de données existants. Pour en savoir plus, consultez Modèles de facturation du stockage.
  • default_cloud_resource_connection_id : connexion par défaut à utiliser lors de la création de tables et de modèles. Indiquez uniquement l'ID ou le nom de la connexion, et excluez les préfixes de l'ID et de la région du projet associé. L'utilisation de connexions par défaut peut entraîner la mise à jour des autorisations accordées au compte de service de la connexion, en fonction du type de tableau ou de modèle que vous créez. Pour en savoir plus, consultez la Présentation de la connexion par défaut.

Tarifs

L'utilisation du service de configuration BigQuery est gratuite. Pour en savoir plus, reportez-vous à la page Tarifs.