Faça a gestão das definições de configuração
Este documento descreve como especificar e obter definições de configuração do BigQuery ao nível da organização ou do projeto.
Por exemplo, para ajudar a gerir trabalhos, pode usar este serviço para configurar as predefinições dos trabalhos. As predefinições são configuradas ao nível da organização ou do projeto, mas podem ser substituídas ao nível da sessão ou da tarefa. Pode configurar as predefinições em combinação com políticas organizacionais relacionadas para aplicar o comportamento predefinido.
Definições de configuração
Pode especificar as seguintes definições de configuração:
default_batch_query_queue_timeout_ms
: o tempo predefinido, em milissegundos, que uma consulta em lote fica na fila. Se não estiver definida, a predefinição é 24 horas. O valor mínimo é de 1 milissegundo. O valor máximo é de 48 horas. Para desativar a colocação em fila de consultas em lote, defina o valor como -1.default_column_name_character_map
: o âmbito e o processamento predefinidos de carateres nos nomes das colunas. Se não estiver definido, os trabalhos de carregamento que usam carateres não suportados nos nomes das colunas falham com uma mensagem de erro. Algumas tabelas mais antigas podem estar definidas para substituir carateres não suportados nos nomes das colunas. Para mais informações, consulteload_option_list
.default_interactive_query_queue_timeout_ms
: a quantidade predefinida de tempo, em milissegundos, que uma consulta interativa é colocada em fila. Se não estiver definida, a predefinição é de seis horas. O valor mínimo é de 1 milissegundo. O valor máximo é de 48 horas. Para desativar o processamento em fila de consultas interativas, defina o valor como -1.default_kms_key_name
: a chave predefinida do Cloud Key Management Service para encriptar dados de tabelas, incluindo tabelas temporárias ou anónimas. Para mais informações, consulte o artigo Chaves do Cloud KMS geridas pelo cliente.default_query_job_timeout_ms
: o tempo predefinido após o qual uma tarefa de consulta excede o limite de tempo, incluindo o tempo em que a tarefa está na fila e o tempo gasto na execução. O período de limite de tempo tem de ser entre cinco minutos e seis horas. Este limite de tempo aplica-se apenas a tarefas de consulta individuais e às tarefas secundárias de scripts. Para definir um limite de tempo para tarefas de scripts, deve usar o método da API jobs.insert e definir o campojobTimeoutMs
.default_query_optimizer_options
: as otimizações de consultas baseadas no histórico. Esta opção pode ser uma das seguintes:'adaptive=on'
: use otimizações de consultas baseadas no histórico.'adaptive=off'
: não use otimizações de consultas baseadas no histórico.NULL
(predefinição): use a predefinição de otimizações de consultas baseadas no histórico, que é equivalente a'adaptive=off'
.
default_time_zone
: o fuso horário predefinido a usar em funções SQL dependentes do fuso horário, quando não é especificado um fuso horário como argumento. Esta configuração não se aplica a tabelas particionadas por colunas de unidades de tempo (que usam o UTC como fuso horário), às transferências agendadas do Serviço de transferência de armazenamento ou ao carregamento de dados com a ferramenta de linha de comandos bq. Para mais informações, consulte o artigo sobre os fusos horários.default_storage_billing_model
: o modelo de faturação de armazenamento predefinido para novos conjuntos de dados. Defina o valor como PHYSICAL para usar bytes físicos ao calcular os custos de armazenamento ou como LOGICAL para usar bytes lógicos. Tenha em atenção que a alteração do modelo de faturação de armazenamento predefinido não afeta os conjuntos de dados existentes. Para mais informações, consulte o artigo Modelos de faturação de armazenamento.default_max_time_travel_hours
: o período de deslocamento no tempo predefinido em horas para novos conjuntos de dados. Esta duração tem de estar no intervalo de 48 a 168, inclusive, e tem de ser divisível por 24. A alteração do tempo máximo de viagem predefinido em horas não afeta os conjuntos de dados existentes. Para mais informações, consulte o artigo Viagem no tempo.default_cloud_resource_connection_id
: a associação predefinida a usar quando criar tabelas e modelos. Especifique apenas o ID ou o nome da ligação e exclua o ID do projeto anexado e os prefixos da região. A utilização de ligações predefinidas pode fazer com que as autorizações concedidas à conta de serviço da ligação sejam atualizadas, consoante o tipo de tabela ou modelo que está a criar. Para mais informações, consulte a vista geral da associação predefinida.default_sql_dialect_option
: O dialeto de consulta SQL predefinido para executar tarefas de consulta através da ferramenta de linhas de comando bq ou da API BigQuery. A alteração desta definição não afeta o dialeto predefinido na consola. Esta opção pode ser uma das seguintes:'default_legacy_sql'
(predefinição): use SQL antigo se o dialeto de consulta não for especificado ao nível da tarefa.'default_google_sql'
: use o GoogleSQL se o dialeto de consulta não for especificado ao nível da tarefa.'only_google_sql'
: use o GoogleSQL se o dialeto de consulta não for especificado ao nível da tarefa. Rejeitar trabalhos com o dialeto de consulta definido como SQL antigo.NULL
: use a predefinição do dialeto de consulta, que é equivalente a'default_legacy_sql'
.
enable_reservation_based_fairness
: a opção que determina como os espaços ociosos são partilhados. O valor predefinido é falso, o que significa que os espaços inativos são distribuídos igualmente por todos os projetos de consulta. Se estiver ativada, os espaços inativos são partilhados igualmente por todas as reservas primeiro e, em seguida, por todos os projetos na reserva. Para mais informações, consulte o artigo sobre a equidade baseada em reservas. Esta opção só é suportada ao nível do projeto. Não pode especificá-lo ao nível da organização ou do trabalho.
Especifique as definições de configuração
Esta secção descreve como especificar uma definição de configuração.
Autorizações necessárias
Para especificar uma definição de configuração, precisa da autorização de bigquery.config.update
gestão de identidade e de acesso (IAM). A função de IAM predefinida
roles/bigquery.admin
inclui as autorizações necessárias para especificar uma
definição de configuração.
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Configure as definições
Pode configurar as definições ao nível da organização ou do projeto através das seguintes declarações SQL. Quando especifica a configuração, tem de especificar a região onde se aplica. Só pode usar uma região para cada declaração.
Configure as definições da organização
Para configurar as definições da organização, use a
ALTER ORGANIZATION SET OPTIONS
declaração DDL.
O exemplo seguinte define o fuso horário predefinido como America/Chicago
, a chave do Cloud KMS predefinida como uma chave definida pelo utilizador, o limite de tempo da consulta predefinido como 30 minutos, o limite de tempo da fila de consultas interativas predefinido como 10 minutos e o limite de tempo da fila de consultas em lote predefinido como 20 minutos:
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`= PHYSICAL, `region-REGION.default_max_time_travel_hours` = 72);
Substitua o seguinte:
- REGION: a
região
associada ao seu projeto ou organização. Por exemplo,
us
oueurope-west6
. - KMS_KEY: uma chave do Cloud KMS definida pelo utilizador. Para mais informações sobre as chaves do Cloud KMS, consulte o artigo Chaves do Cloud KMS geridas pelo cliente.
O exemplo seguinte limpa todas as predefinições ao nível da organização:
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);
Configure as definições do projeto
Para configurar as definições do projeto, use a
ALTER PROJECT SET OPTIONS
declaração DDL.
A declaração DDL aceita opcionalmente a variável ALTER PROJECT SET OPTIONS
PROJECT_ID
. Se o PROJECT_ID
não for especificado, a predefinição é o projeto atual onde a consulta é executada.
O exemplo seguinte define o fuso horário predefinido como America/Los_Angeles
, a chave do Cloud KMS predefinida como uma chave de exemplo, o limite de tempo da consulta predefinido como 1 hora, o limite de tempo da fila de consultas interativas predefinido como 10 minutos, o limite de tempo da fila de consultas em lote predefinido como 20 minutos e ativa a equidade baseada em reservas.
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`= PHYSICAL, `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);
Substitua o seguinte:
- PROJECT_ID: o ID do projeto.
- REGION: a
região
associada ao seu projeto ou organização. Por exemplo,
us
oueurope-west6
. - KMS_KEY: uma chave do Cloud KMS definida pelo utilizador. Para mais informações sobre as chaves do Cloud KMS, consulte o artigo Chaves do Cloud KMS geridas pelo cliente.
- CONNECTION_ID: o ID da associação a usar como associação predefinida para tabelas e modelos.
O exemplo seguinte limpa todas as predefinições ao nível do projeto. As predefinições usam quaisquer predefinições ao nível da organização, se existirem. Caso contrário, todas as predefinições são definidas como a predefinição global.
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);
As configurações ao nível do projeto substituem as configurações ao nível da organização. As configurações ao nível do projeto podem, por sua vez, ser substituídas por configurações ao nível da sessão, que podem ser substituídas por configurações ao nível da tarefa.
Obtenha definições de configuração
Pode ver as definições de configuração de uma organização ou um projeto através das seguintes vistas do esquema de informações:
INFORMATION_SCHEMA.PROJECT_OPTIONS
: as configurações aplicadas a um projetoINFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS
: as configurações eficazes aplicadas a um projeto. As configurações eficazes incluem todas as configurações definidas ao nível do projeto, bem como todas as definições herdadas pelo projeto de uma organizaçãoINFORMATION_SCHEMA.ORGANIZATION_OPTIONS
: as configurações aplicadas a uma organização
As novas configurações podem demorar alguns minutos a entrar em vigor e a serem refletidas na vista INFORMATION_SCHEMA
.
Autorizações necessárias
Para obter as definições de configuração, precisa da bigquery.config.get
autorização do IAM para o projeto especificado.
Cada uma das seguintes funções de IAM predefinidas inclui as autorizações de que precisa para obter a configuração da visualização INFORMATION_SCHEMA
:
roles/bigquery.jobUser
roles/bigquery.dataEditor
roles/bigquery.dataUser
Para mais informações sobre as funções e as autorizações do IAM no BigQuery, consulte o artigo Funções e autorizações predefinidas.
Exemplos
Para ver as configurações de uma organização na região us
, execute a seguinte consulta:
SELECT * FROM region-us.INFORMATION_SCHEMA.ORGANIZATION_OPTIONS;
Para ver as configurações eficazes no seu projeto predefinido na us
região, execute a seguinte consulta:
SELECT * FROM region-us.INFORMATION_SCHEMA.EFFECTIVE_PROJECT_OPTIONS;
Para ver as configurações no seu projeto predefinido na região us
,
execute a seguinte consulta:
SELECT * FROM region-us.INFORMATION_SCHEMA.PROJECT_OPTIONS;
Preços
Não existe nenhum custo adicional para usar o serviço de configuração do BigQuery. Para mais informações, consulte os preços.