Faça a gestão das definições de configuração
Os administradores e os proprietários do projeto do BigQuery podem gerir as definições de configuração ao nível da organização e do projeto. Pode definir configurações para aplicar a segurança, controlar os custos e otimizar o desempenho das consultas em toda a sua infraestrutura de dados. Ao definir valores predefinidos, pode garantir a conformidade consistente e a eficiência operacional, o que facilita a gestão do seu ambiente do BigQuery.
Especifique as definições de configuração
As secções seguintes descrevem como especificar as definições de configuração predefinidas. 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. Para aplicar o comportamento predefinido, pode configurar as definições predefinidas em combinação com as políticas organizacionais relacionadas.
Funções necessárias
Para receber a autorização de que
precisa para especificar uma definição de configuração,
peça ao seu administrador para lhe conceder a função de IAM de
administrador do BigQuery (roles/bigquery.admin).
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
bigquery.config.update
, que é necessária para
especificar uma definição de configuração.
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
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 da organização
Pode configurar definições ao nível da organização através das seguintes declarações GoogleSQL. Quando especifica a configuração, tem de especificar a região onde se aplica. Só pode usar uma região para cada declaração.
Para configurar as definições da organização, use a
ALTER ORGANIZATION SET OPTIONS declaração DDL.
O exemplo seguinte especifica várias configurações predefinidas, incluindo o seguinte:
- Fuso horário:
America/Chicago - Chave do Cloud KMS: uma chave definida pelo utilizador
- Limite de tempo da consulta: 30 minutos (1 800 000 milissegundos)
- Limite de tempo da fila de consultas interativas: 10 minutos (600 000 milissegundos)
- Limite de tempo da fila de consultas em lote: 20 minutos (1 200 000 milissegundos)
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);
Substitua o seguinte:
REGION: a região associada ao seu projeto ou organização, por exemplo,usoueurope-west6.KMS_KEY: uma chave do Cloud KMS definida pelo utilizador. Para mais informações, consulte o artigo Chaves do Cloud KMS geridas pelo cliente.BILLING_MODEL: o modelo de armazenamento para novos conjuntos de dados, por exemplo,PHYSICALpara bytes físicos.
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
Pode configurar definições ao nível do projeto através das seguintes declarações GoogleSQL. Quando especifica a configuração, tem de especificar a região onde se aplica. Só pode usar uma região para cada declaração.
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 PROJECT_ID.ALTER PROJECT SET OPTIONS Se o PROJECT_ID não for especificado, a predefinição é o projeto atual onde a consulta é executada.
O exemplo seguinte especifica várias configurações predefinidas:
- Fuso horário:
America/Los_Angeles - Chave do Cloud KMS: uma chave de exemplo
- Limite de tempo da consulta: 1 hora
- Limite de tempo da fila de consultas interativas: 10 minutos
- Limite de tempo da fila de consultas em lote: 20 minutos
- Equidade baseada em reservas: ativada
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);
Substitua o seguinte:
PROJECT_ID: o ID do projeto.REGION: a região associada ao seu projeto ou organização, por exemplo,usoueurope-west6.KMS_KEY: uma chave do Cloud KMS definida pelo utilizador. Para mais informações, consulte o artigo Chaves do Cloud KMS geridas pelo cliente.BILLING_MODEL: o modelo de armazenamento para novos conjuntos de dados, por exemplo,PHYSICALpara bytes físicos.CONNECTION_ID: o ID da ligação a usar como ligaçã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, `region-REGION.enable_reservation_based_fairness` = 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 INFORMATION_SCHEMA:
INFORMATION_SCHEMA.PROJECT_OPTIONS: as configurações aplicadas a um projeto.INFORMATION_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ção.INFORMATION_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.
Funções necessárias
Para receber a autorização de que
precisa para obter definições de configuração,
peça ao seu administrador para lhe conceder a função de IAM de
utilizador da tarefa do BigQuery (roles/bigquery.jobUser)
no projeto especificado.
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
bigquery.config.get
, que é necessária para
obter as definições de configuração.
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
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 usregiã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;
Definições de configuração
As secções seguintes descrevem as definições de configuração que pode especificar.
Definições de execução de consultas e tarefas
Use as seguintes definições para controlar como as consultas são executadas, cronometradas e colocadas em fila.
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_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 a colocação em fila de consultas interativas, defina o valor como-1.default_query_job_timeout_ms: o tempo predefinido após o qual uma tarefa de consulta expira, 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 5 minutos e 48 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.enable_reservation_based_fairness: a opção que determina como os espaços ociosos são partilhados. O valor predefinido é false, 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 da tarefa.default_time_zone: O fuso horário predefinido a usar em funções GoogleSQL 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_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=on'.
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'.
Definições de gestão de dados
Use as seguintes definições para definir regras para a criação, a segurança e o ciclo de vida dos dados.
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_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_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 não afeta os conjuntos de dados existentes. Para mais informações, consulte o artigo Viagem no tempo e retenção de dados.
Definições de custos e recursos
Use as seguintes definições para determinar como os recursos são faturados e associados.
default_storage_billing_model: o modelo de faturação de armazenamento predefinido para novos conjuntos de dados. Defina o valor comoPHYSICALpara usar bytes físicos ao calcular os custos de armazenamento ou comoLOGICALpara 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_cloud_resource_connection_id: a associação predefinida a usar quando criar tabelas e modelos. Especifique apenas o ID ou o nome da associaçã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 estiver a criar. Para mais informações, consulte a vista geral da associação predefinida.
Preços
Não existe nenhum custo adicional para usar o serviço de configuração do BigQuery. Para mais informações, consulte a secção Preços.