Gestire le impostazioni di configurazione

Gli amministratori BigQuery e i proprietari dei progetti possono gestire le impostazioni di configurazione a livello di organizzazione e progetto. Puoi impostare configurazioni per applicare la sicurezza, controllare i costi e ottimizzare le prestazioni delle query nell'intera infrastruttura di dati. Impostando i valori predefiniti, puoi garantire la conformità e l'efficienza operativa costanti, semplificando la gestione dell'ambiente BigQuery.

Specificare le impostazioni di configurazione

Le sezioni seguenti descrivono come specificare le impostazioni di configurazione predefinite. Le impostazioni predefinite vengono configurate a livello di organizzazione o progetto, ma possono essere sostituite a livello di sessione o job. Per applicare il comportamento predefinito, puoi configurare le impostazioni predefinite in combinazione con le policy dell'organizzazione correlate.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per specificare un'impostazione di configurazione, chiedi all'amministratore di concederti il ruolo IAM BigQuery Admin (roles/bigquery.admin). Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione bigquery.config.update necessaria per specificare un'impostazione di configurazione.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Configurare le impostazioni dell'organizzazione

Puoi configurare le impostazioni a livello di organizzazione utilizzando le seguenti istruzioni GoogleSQL. Quando specifichi la configurazione, devi specificare la regione in cui viene applicata. Puoi utilizzare una sola regione per ogni estratto conto.

Per configurare le impostazioni dell'organizzazione, utilizza l'istruzione DDL ALTER ORGANIZATION SET OPTIONS. L'esempio seguente specifica diverse configurazioni predefinite, tra cui le seguenti:

  • Fuso orario: America/Chicago
  • Chiave Cloud KMS: una chiave definita dall'utente
  • Timeout della query: 30 minuti (1.800.000 millisecondi)
  • Timeout della coda di query interattive: 10 minuti (600.000 millisecondi)
  • Timeout della coda di query batch: 20 minuti (1.200.000 millisecondi)
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);

Sostituisci quanto segue:

  • REGION: la regione associata al tuo progetto o alla tua organizzazione, ad esempio us o europe-west6.
  • KMS_KEY: una chiave Cloud KMS definita dall'utente. Per saperne di più, consulta Chiavi Cloud KMS gestite dal cliente�.
  • BILLING_MODEL: il modello di archiviazione per i nuovi set di dati, ad esempio PHYSICAL per i byte fisici.

L'esempio seguente cancella tutte le impostazioni predefinite a livello di organizzazione:

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);

Configura le impostazioni del progetto

Puoi configurare le impostazioni a livello di progetto utilizzando le seguenti istruzioni GoogleSQL. Quando specifichi la configurazione, devi specificare la regione in cui viene applicata. Puoi utilizzare una sola regione per ogni estratto conto.

Per configurare le impostazioni del progetto, utilizza l'istruzione DDL ALTER PROJECT SET OPTIONS. L'istruzione DDL ALTER PROJECT SET OPTIONS accetta facoltativamente la variabile PROJECT_ID. Se PROJECT_ID non è specificato, il valore predefinito è il progetto corrente in cui viene eseguita la query. L'esempio seguente specifica diverse configurazioni predefinite:

  • Fuso orario: America/Los_Angeles
  • Chiave Cloud KMS: una chiave di esempio
  • Timeout della query: 1 ora
  • Timeout della coda di query interattive: 10 minuti
  • Timeout della coda di query batch: 20 minuti
  • Equità basata sulla prenotazione: attivata
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);

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto
  • REGION: la regione associata al tuo progetto o alla tua organizzazione, ad esempio us o europe-west6.
  • KMS_KEY: una chiave Cloud KMS definita dall'utente. Per saperne di più, consulta Chiavi Cloud KMS gestite dal cliente�.
  • BILLING_MODEL: il modello di archiviazione per i nuovi set di dati, ad esempio PHYSICAL per i byte fisici.
  • CONNECTION_ID: l'ID della connessione da utilizzare come connessione predefinita per tabelle e modelli.

L'esempio seguente cancella tutte le impostazioni predefinite a livello di progetto. Le impostazioni predefinite utilizzano eventuali impostazioni predefinite a livello di organizzazione, se esistenti. In caso contrario, tutte le impostazioni predefinite sono impostate sul valore predefinito 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);

Le configurazioni a livello di progetto hanno la precedenza su quelle a livello di organizzazione. Le configurazioni a livello di progetto possono a loro volta essere sostituite dalle configurazioni a livello di sessione, che possono essere sostituite dalle configurazioni a livello di job.

Recuperare le impostazioni di configurazione

Puoi visualizzare le impostazioni di configurazione per un'organizzazione o un progetto utilizzando le seguenti visualizzazioni INFORMATION_SCHEMA:

Potrebbero essere necessari alcuni minuti prima che le nuove configurazioni diventino effettive e vengano visualizzate nella vista INFORMATION_SCHEMA.

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per recuperare le impostazioni di configurazione, chiedi all'amministratore di concederti il ruolo IAM Utente job BigQuery (roles/bigquery.jobUser) sul progetto specificato. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione bigquery.config.get necessaria per recuperare le impostazioni di configurazione.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Esempi

Per visualizzare le configurazioni di un'organizzazione nella regione us, esegui la query seguente:

SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;

Per visualizzare le configurazioni effettive nel progetto predefinito nella regione us, esegui la seguente query:

SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;

Per visualizzare le configurazioni nel progetto predefinito nella regione us, esegui la seguente query:

SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;

Impostazioni di configurazione

Le sezioni seguenti descrivono le impostazioni di configurazione che puoi specificare.

Impostazioni di esecuzione di query e job

Utilizza le seguenti impostazioni per controllare come vengono eseguite, temporizzate e messe in coda le query.

  • default_batch_query_queue_timeout_ms: il periodo di tempo predefinito, in millisecondi, in cui una query batch viene messa in coda. Se non viene impostato, il valore predefinito è 24 ore. Il valore minimo è 1 millisecondo. Il valore massimo è 48 ore. Per disattivare l'inserimento in coda delle query batch, imposta il valore su -1.
  • default_interactive_query_queue_timeout_ms: il periodo di tempo predefinito, in millisecondi, in cui una query interattiva viene messa in coda. Se non viene impostato, il valore predefinito è sei ore. Il valore minimo è 1 millisecondo. Il valore massimo è 48 ore. Per disattivare l'inserimento in coda delle query interattive, imposta il valore su -1.
  • default_query_job_timeout_ms: il tempo predefinito dopo il quale un job di query scade, incluso il tempo in cui il job è in coda e il tempo di esecuzione. Il periodo di timeout deve essere compreso tra 5 minuti e 48 ore. Questo timeout si applica solo ai singoli job di query e ai job secondari degli script. Per impostare un timeout per i job di script, devi utilizzare il metodo API jobs.insert e impostare il campo jobTimeoutMs.

  • enable_reservation_based_fairness: l'opzione che determina la modalità di condivisione degli slot inattivi. Il valore predefinito è false, il che significa che gli slot inattivi sono distribuiti equamente tra tutti i progetti di query. Se abilitati, gli slot inattivi vengono condivisi equamente tra tutte le prenotazioni e poi tra i progetti all'interno della prenotazione. Per saperne di più, consulta la sezione Equità basata sulle prenotazioni. Questa opzione è supportata solo a livello di progetto. Non puoi specificarlo a livello di organizzazione o lavoro.

  • default_time_zone: il fuso orario predefinito da utilizzare nelle funzioni GoogleSQL dipendenti dal fuso orario, quando non ne è specificato uno come argomento. Questa configurazione non si applica a tabelle partizionate per colonne di unità di tempo (che utilizzano UTC come fuso orario), ai trasferimenti pianificati di Storage Transfer Service o al caricamento di dati con lo strumento a riga di comando bq. Per saperne di più, consulta Fusi orari.

  • default_query_optimizer_options: le ottimizzazioni delle query basate sulla cronologia. Questa opzione può essere una delle seguenti:

    • 'adaptive=on': utilizza le ottimizzazioni delle query basate sulla cronologia.
    • 'adaptive=off': non utilizzare le ottimizzazioni delle query basate sulla cronologia.
    • NULL (impostazione predefinita): utilizza l'impostazione predefinita per l'ottimizzazione delle query basata sulla cronologia, che equivale a 'adaptive=on'.
  • default_sql_dialect_option: il dialetto di query SQL predefinito per l'esecuzione dei job di query utilizzando lo strumento a riga di comando bq o l'API BigQuery. La modifica di questa impostazione non influisce sul dialetto predefinito nella console. Questa opzione può essere una delle seguenti:

    • 'default_legacy_sql' (impostazione predefinita): utilizza SQL precedente se il dialetto della query non è specificato a livello di job.
    • 'default_google_sql': utilizza GoogleSQL se il dialetto della query non è specificato a livello di job.
    • 'only_google_sql': utilizza GoogleSQL se il dialetto della query non è specificato a livello di job. Rifiuta i job con il dialetto della query impostato su SQL precedente.
    • NULL: utilizza l'impostazione predefinita del dialetto della query, che equivale a 'default_legacy_sql'.

Impostazioni di gestione dei dati

Utilizza le seguenti impostazioni per definire le regole per la creazione, la sicurezza e il ciclo di vita dei dati.

  • default_column_name_character_map: l'ambito predefinito e la gestione dei caratteri nei nomi delle colonne. Se non viene impostato, i job di caricamento che utilizzano caratteri non supportati nei nomi delle colonne non vengono eseguiti e viene visualizzato un messaggio di errore. Alcune tabelle meno recenti potrebbero essere impostate per sostituire i caratteri non supportati nei nomi delle colonne. Per saperne di più, consulta load_option_list.
  • default_kms_key_name: la chiave Cloud Key Management Service predefinita per criptare i dati delle tabelle, incluse le tabelle temporanee o anonime. Per ulteriori informazioni, consulta Chiavi Cloud KMS gestite dal cliente.

  • default_max_time_travel_hours: La finestra di spostamento cronologico predefinita in ore per i nuovi set di dati. Questa durata deve essere compresa tra 48 e 168, inclusi, e deve essere divisibile per 24. La modifica delle ore di viaggio massime predefinite non influisce sui set di dati esistenti. Per ulteriori informazioni, vedi Time Travel e conservazione dei dati.

Impostazioni di costi e risorse

Utilizza le seguenti impostazioni per determinare come vengono fatturate e connesse le risorse.

  • default_storage_billing_model: il modello di fatturazione dello spazio di archiviazione predefinito per i nuovi set di dati. Imposta il valore su PHYSICAL per utilizzare i byte fisici durante il calcolo dei costi di archiviazione o su LOGICAL per utilizzare i byte logici. Tieni presente che la modifica del modello di fatturazione dello spazio di archiviazione predefinito non influisce sui set di dati esistenti. Per saperne di più, consulta Modelli di fatturazione dello spazio di archiviazione.
  • default_cloud_resource_connection_id: la connessione predefinita da utilizzare per la creazione di tabelle e modelli. Specifica solo l'ID o il nome della connessione ed escludi i prefissi di ID progetto e regione allegati. L'utilizzo delle connessioni predefinite può causare l'aggiornamento delle autorizzazioni concesse alaccount di serviziot della connessione, a seconda del tipo di tabella o modello che stai creando. Per saperne di più, vedi la panoramica della connessione predefinita.

Prezzi

Non sono previsti costi aggiuntivi per l'utilizzo del servizio di configurazione BigQuery. Per ulteriori informazioni, vedi Prezzi.