Gerenciamento de carga de trabalho usando o Reservations

Esta página descreve como usar o BigQuery Reservations para ajudar a gerenciar as cargas de trabalho do BigQuery.

Escolher um modelo de faturamento

É possível alternar entre os modelos de faturamento sob demanda e aqueles baseados em capacidade a qualquer momento ou combinar os dois modelos. Os dois modelos de preços se complementam. O faturamento sob demanda permite pagar por slots somente quando precisar deles, enquanto o preço baseado em capacidade permite reservar alocações de slots para cargas de trabalho previsíveis, geralmente com desconto para preços sob demanda.

Contrapartidas do Reservations.

Considere os seguintes fatores ao escolher o faturamento com base em capacidade:

  • Custo. O Google recomenda que seu gasto mensal de análise esteja próximo ao compromisso mínimo com base na capacidade do BigQuery.
  • Eficiência. Se você executa cargas de trabalho pouco frequentes ou inconsistentes, os preços sob demanda podem ser mais eficientes. O preço sob demanda permite que você pague apenas pelos slots quando precisar deles.
  • Previsibilidade. Se você valoriza a previsibilidade mensal de preços, o modelo de faturamento baseado em capacidade pode ser preferível porque você tem a opção de pagar uma taxa mensal consistente.
  • Recursos. Os modelos de faturamento baseados em capacidade e sob demanda diferem na forma como oferecem capacidade. Para mais informações, consulte Como estimar a quantidade de slots a serem adquiridos.

Como um novo cliente, você pode começar com o faturamento baseado em capacidade. A qualquer momento, você pode avaliar como seriam os custos com o faturamento sob demanda e, a qualquer momento, escolher o modelo ideal.

Também é possível testar o escalonamento automático de slots. Os slots de escalonamento automático oferecem flexibilidade para lidar com um aumento repentino de cargas de trabalho e são ideais para lidar com a variância nas necessidades de capacidade.

Também é possível combinar modelos de faturamento sob demanda e com base em capacidade, no nível da carga de trabalho ou da unidade de negócios, organizando cargas de trabalho ou unidades de negócios em projetos diferentes ou pastas e atribuir cada uma a uma reserva ou a um faturamento sob demanda.

É possível usar o modelo com base em capacidade em uma região e sob demanda em outra. Por padrão, todos os projetos usam o faturamento sob demanda. Em uma região, é possível ativar um faturamento de taxa fixa para um projeto, uma pasta ou uma organização atribuindo-o a uma reserva. Por exemplo, se você adquirir um compromisso de slot na multirregião US e atribuir a organização à reserva padrão, a organização usará o faturamento com base em capacidade na multirregião US, mas permanecerá em faturamento sob demanda em todas as outras regiões.

Dentro de uma região, é possível combinar o faturamento com base em capacidade e sob demanda atribuindo explicitamente os projetos a uma reserva. Qualquer projeto que não esteja atribuído a uma reserva permanecerá no faturamento sob demanda. Também é possível atribuir explicitamente um projeto para usar o faturamento sob demanda atribuindo o ID de reserva none. Isso é útil quando você atribui uma pasta ou organização a uma reserva, mas quer que alguns projetos dentro dessa pasta ou organização usem o faturamento sob demanda. Para mais informações, consulte Atribuir um projeto a None.

Projetos com faturamento sob demanda usam capacidade separada da sua capacidade confirmada. Esses projetos não afetam a disponibilidade da capacidade comprometida.

Como criar um projeto de administração

Quando você cria compromissos e reservas, eles são associados a um projeto do Google Cloud. Esse projeto gerencia os recursos do BigQuery Reservations e é a principal fonte de faturamento desses recursos. Esse projeto não precisa ser o mesmo projeto que contém seus jobs do BigQuery.

O Google recomenda criar um projeto dedicado para os recursos do Reservations. Esse projeto é chamado de administrador de administração, porque centraliza o faturamento e o gerenciamento dos compromissos. Dê a este projeto um nome descritivo, como bq-COMPANY_NAME-admin. Em seguida, crie um ou mais projetos separados para armazenar seus jobs do BigQuery.

Apenas projetos no mesmo recurso de Organização que o projeto de administração podem ser atribuídos a uma reserva. Se o projeto de administração não fizer parte de uma Organização, somente ele poderá usar os slots.

O projeto de administração é cobrado pelos slots confirmados. Os projetos que usam esses slots são cobrados pelo armazenamento, mas não pelos slots. É possível comprar mais de um tipo de plano (por exemplo, anual e três anos) e colocar os slots no mesmo projeto de administração.

Recomendamos criar um projeto de administração para todas as reservas. Usar um único projeto de administração simplifica o gerenciamento do faturamento e a alocação de slots. Também recomendamos que você ative a API BigQuery Reservations somente no projeto de administração, para que todos os compromissos sejam gerenciados por esse projeto.

Como criar vários projetos de administração

Em alguns casos, você pode criar mais de um projeto de administração:

  • Separar os custos de várias reservas e compromissos em diferentes unidades organizacionais.
  • Mapear um ou mais compromissos de slot para conjuntos específicos de reservas.

A capacidade de slots inativos não é compartilhada entre reservas em diferentes projetos de administração.

Na página do BigQuery do console do Google Cloud, só é possível visualizar reservas e compromissos apenas para o projeto de administrador selecionado.

Como estimar quantos slots serão adquiridos

O BigQuery foi projetado para escalonamento linear com recursos aprimorados. Dependendo da carga de trabalho, a capacidade incremental oferecerá benefícios adicionais. Portanto, a escolha do número ideal de slots a serem adquiridos depende dos seus requisitos de desempenho, capacidade e utilidade.

Teste slots de valor de referência e escalonamento automático para determinar a melhor configuração de slots. Por exemplo, você pode testar a carga de trabalho com 500, 1.000, 1.500 e 2.000 slots e observar o impacto no desempenho.

Também é possível examinar o uso atual do slot dos seus projetos com o preço mensal que você escolheu pagar. No momento, cargas de trabalho sob demanda têm um limite de 2.000 slots, mas é importante verificar quantos slots estão sendo usados pelos projetos com visualizações INFORMATION_SCHEMA.JOBS*, o Cloud Logging, a API de jobs ou os registros de auditoria do BigQuery. Para mais informações, consulte Como visualizar os slots disponíveis e os alocados.

Cronograma de uso de slots.

Depois de comprar slots e executar as cargas de trabalho por pelo menos sete dias, use o estimador de slot (Visualização) para analisar o desempenho e modelar o efeito de adicionar ou reduzir slots. Para mais informações, consulte Estimar requisitos de capacidade do slot.

Como gerenciar cargas de trabalho e departamentos usando reservas

É possível usar o BigQuery Reservations para isolar a capacidade do compromisso entre cargas de trabalho, equipes ou departamentos criando outras reservas e atribuindo projetos a essas reservas. Uma reserva é um pool isolado de recursos com o benefício adicional da possibilidade de utilização da capacidade inativa em toda a organização.

Por exemplo, você pode ter um total de capacidade de compromisso de 1.000 slots e três tipos de cargas de trabalho: ciência de dados ELT e BI.

  • É possível criar uma reserva ds com 500 slots, e atribuir todos os projetos relevantes do Google Cloud à reserva ds.
  • É possível criar uma reserva elt com 300 slots e atribuir projetos usados para as cargas de trabalho de ELT à reserva elt.
  • É possível criar uma reserva bi com 200 slots e atribuir projetos conectados às ferramentas de BI à reserva bi.

Exclusão de compromissos.

Em vez de particionar a capacidade entre cargas de trabalho, é possível criar reservas para equipes ou departamentos individuais.

Como gerenciar reservas em diferentes regiões

As reservas são um recurso regional. Os slots adquiridos e as reservas criadas em uma região não podem ser usados em outra região. Os projetos, as pastas e as organizações podem ser atribuídos às reservas em uma região e executados sob demanda em outra. Para gerenciar reservas em outra região, é preciso alterar a região na página Gerenciamento de capacidade do BigQuery:

  1. No console do BigQuery, clique em Reservas.
  2. Clique no seletor de Local e selecione uma região na qual você queira gerenciar reservas. Selecione uma região diferente.
  3. Depois que uma região for selecionada, será possível comprar slots, criar reservas e atribuir um projeto a uma reserva.

BigQuery Reservations para organizações complexas

O BigQuery Reservations é um recurso com escopo na organização. Você compra reservas de forma centralizada para serem usadas em toda a organização. É possível exigir que departamentos ou divisões individuais gerenciem as reservas do BigQuery deles comprando capacidade de compromisso e distribuindo essa capacidade no departamento ou na divisão. O projeto de administração está associado a uma conta do Cloud Billing, que é cobrada pela capacidade.

É possível usar uma organização distinta do Google Cloud para cada um dos departamentos ou divisões. Neste cenário, defina um projeto de administração para cada organização e gerencie o BigQuery Reservations dessa organização a partir do projeto de administração. Não há compartilhamento de capacidade inativa ou de compromisso entre organizações.

Os slots inativos e não alocados são compartilhados apenas entre reservas criadas no mesmo projeto de administração e dentro da mesma edição. Se você usar mais de um projeto de administração, os slots não serão compartilhados entre reservas de projetos diferentes.