Gerenciamento de carga de trabalho usando o Reservations

Como escolher entre modelos de faturamento sob demanda e de taxa fixa

A qualquer momento, é possível alternar entre os modelos de faturamento sob demanda e de taxa fixa ou combinar os dois modelos. Os dois modelos de preços são complementares entre si. O faturamento sob demanda é eficiente, e o de taxa fixa é previsível.

Contrapartidas do Reservations.

Considere os seguintes fatores ao escolher a taxa fixa:

  • Custo. O Google recomenda que os gastos mensais com análises correspondam ao compromisso mínimo de taxa fixa do BigQuery (atualmente, 500 slots por mês).
  • Eficiência. Considere o faturamento sob demanda se a eficiência for fundamental, porque você paga por consulta.
  • Previsibilidade. Se a previsibilidade do valor mensal for importante, talvez você prefira a taxa fixa, porque você paga um preço fixo mensalmente.
  • Recursos. Os modelos de faturamento de taxa fixa e sob demanda diferem na forma como eles oferecem capacidade. Para mais informações, consulte Como estimar a quantidade de slots a serem adquiridos.

Decisão do Reservations.

Como um novo cliente, você pode optar por começar com a taxa fixa. A qualquer momento, você pode avaliar como seriam seus gastos com o faturamento sob demanda e, a qualquer momento, escolher o modelo ideal.

É possível combinar os modelos de faturamento de taxa fixa e sob demanda:

  • Use o faturamento sob demanda em cargas de trabalho previsíveis, como processamento periódico de dados e ELT.
  • Use o faturamento de taxa fixa para análises ad-hoc e cargas de trabalho de ciência de dados.

Como estimar a quantidade de slots para compra

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 está sujeita às suas preferências de desempenho, capacidade e utilização.

Para determinar a melhor quantidade de slots a ser adquirida, é preciso que você analise a utilização atual dos slots nos seus projetos, junto com o preço mensal que você quer pagar. As cargas de trabalho sob demanda atualmente têm um limite flexível de 2.000 slots. No entanto, é importante verificar quantos slots estão sendo usados atualmente nos seus projetos por meio do Stackdriver Logging, da API Jobs ou dos registros de auditoria do BigQuery. Para mais informações, consulte Como visualizar os slots disponíveis e os slots alocados.

Cronograma de uso de slots.

Primeiros passos no BigQuery Reservations

Para começar a usar o BigQuery Reservations, conclua o guia de início rápido do BigQuery e selecione o projeto de administração.

Em seguida, adquira os slots e atribua a organização à reserva. Se você não concluir ambas as etapas, a cobrança da sua organização continuará sendo de taxas sob demanda.

Adquirir slots

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. No painel de navegação, acesse a seção Reservas. Botão de navegação do Reservations.
  3. Clique no botão Comprar slots. Comprar slots.
  4. Selecione Monthly para a duração do compromisso. Selecione Mensalmente.
  5. Selecione US para o local.
  6. Digite 500 para o número de slots.
  7. Analise e confirme seu pedido inserindo CONFIRM e selecionando PURCHASE. Digite Confirmar.
  8. Aguarde alguns minutos até que a capacidade seja provisionada. Depois que a capacidade for provisionada, o compromisso de capacidade solicitado exibirá o status verde. Compromissos de slots.

Quando a capacidade é adquirida pela primeira vez, uma reserva default é criada. A próxima etapa é atribuir a organização à reserva.

Atribuir organização à reserva

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas. Botão de navegação do Reservations.
  3. Clique na guia Atribuições. Guia Atribuições.
  4. Na seção Pesquisar e criar atribuições, clique no botão Procurar e selecione a organização. Seletor do projeto de atribuições.
  5. No seletor Reserva, selecione o nome da reserva que termina com default. Seletor de reserva de atribuições.
  6. Clique em Criar

CLI

Use o comando bq mk com a sinalização --reservation_assignment para atribuir jobs de consulta de uma organização a uma reserva.

bq mk \
  --project_id=admin_project_id \
  --location=US \
  --reservation_assignment \
  --reservation_id=admin_project_id:US.default \
  --job_type=QUERY \
  --assignee_id=organization_id \
  --assignee_type=ORGANIZATION

Em que:

  • admin_project_id é o proprietário do projeto do recurso de reserva.

  • organization_id é seu ID da organização.

Como criar outras reservas com slots dedicados

Quando uma organização é atribuída a uma reserva, todos os projetos que usam o BigQuery compartilharão igualmente esses slots. Dependendo da carga de trabalho, talvez não seja ideal compartilhar slots com outras cargas de trabalho. Por exemplo, uma carga de trabalho de produção provavelmente não desejará compartilhar slots igualmente com cargas de trabalho de testes. Se um projeto precisar de slots dedicados, outras reservas podem ser criadas com seus próprios slots reservados. As seções a seguir descrevem um exemplo de criação e atribuição de 500 slots a my-prod-project.

Criar reserva prod

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas.
  3. Clique no botão Criar reserva. Criar reserva.
  4. No campo Nome da reserva, digite prod. Criar informações de reserva.
  5. No campo Local, selecione US.
  6. No número de slots, digite 500.
  7. Clique em Salvar.

A reserva prod recém-criada é exibida na tabela da visão geral.

Visão geral da reserva.

CLI

Use o comando bq mk com a sinalização --reservation para criar uma reserva com 500 slots.

bq mk \
  --project_id=admin_project_id \
  --location=US \
  --reservation \
  --slots=500 \
  prod

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

Atribuir my-prod-project à reserva prod

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas.
  3. Clique na guia Atribuições. Guia Atribuições.
  4. Na seção Pesquisar e criar atribuições, clique no botão Procurar e selecione seu projeto prod. Seletor do projeto de atribuições.
  5. No seletor Reserva, selecione o nome da reserva que termina com prod. Seletor de reserva de atribuições.
  6. Clique em Criar

CLI

Use o comando bq mk com a sinalização --reservation_assignment para atribuir os jobs de consulta do seu projeto de produção à reserva de produção.

bq mk \
  --project_id=admin_project_id \
  --location=US \
  --reservation_assignment \
  --reservation_id=admin_project_id:US.prod \
  --job_type=QUERY \
  --assignee_id=my-prod-project \
  --assignee_type=PROJECT

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

  • my-prod-project é seu ID do projeto de produção.

Agora, todos os jobs de consulta enviados de my-prod-project serão executados na reserva prod e terão acesso a 500 slots.

Como adquirir mais slots e aumentar os tamanhos das reservas

À medida que o tamanho e a complexidade das cargas de trabalho aumentarem com o tempo, é provável que você precise adquirir mais slots para melhorar o desempenho.

Adquirir mais slots

Siga as instruções em Primeiros passos no BigQuery Reservations para comprar mais 500 slots.

Aumentar o tamanho da reserva prod

Para aumentar o tamanho da reserva prod, conclua as etapas a seguir.

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas. Seção Reservas.
  3. Selecione a reserva prod criada anteriormente e clique no botão Editar. Edição de reservas.
  4. Insira o novo tamanho da reserva: 1.000 slots. Aumentar os slots de reserva.
  5. Clique em Salvar.
  6. O tamanho da reserva prod atualizado será exibido na lista de reservas. Tamanho da reserva atualizado.

CLI

Use o comando bq update com a sinalização --reservation para atualizar o tamanho da sua reserva de produção.

bq update \
  --project_id=admin_project_id \
  --location=US \
  --slots=500 \
  --reservation prod

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

Atribuição de projetos/pastas/organização a reservas

Projetos, pastas e organizações podem ser atribuídos a reservas. Uma atribuição de reserva de projeto tem prioridade sobre uma atribuição de pasta, que tem prioridade sobre uma atribuição de organização.

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 do BigQuery Reservation:

Console

  1. Clique na seção Reservas na IU do console do BigQuery.
  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 adquirir slots, criar reservas e atribuir um projeto às reservas.

Como atribuir jobs de carregamento e exportação às reservas

Os slots usados pelos jobs de carregamento e por outros jobs do pipeline são gratuitos e executados da melhor maneira possível. O BigQuery não garante a capacidade de ingestão. Se você precisar de recursos dedicados para carregamento ou desempenho menos volátil, poderá comprar slots e criar reservas dedicadas para jobs de carregamento e outros jobs do pipeline.

O exemplo a seguir mostra como atribuir os jobs do pipeline de my-project à reserva de carregamento do projeto de administração.

CLI

Use o comando bq mk com a sinalização --reservation para criar uma reserva com 1.000 slots que serão usados para os jobs do pipeline.

bq mk \
  --project_id=admin_project_id \
  --location=US \
  --ignore_idle_slots=true \
  --slots=1000 \
  --reservation my-pipeline

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

Use o comando bq mk com a sinalização --reservation_assignment para atribuir os jobs do pipeline do seu projeto à reserva do pipeline.

bq mk \
  --project_id=my-project \
  --location=US \
  --reservation_assignment \
  --reservation_id=admin_project_id:US.loads \
  --assignee_id=admin_project_id \
  --assignee_type=PROJECT \
  --job_type=PIPELINE

Em que:

  • my-project é o ID do projeto que você quer atribuir as reservas dos jobs do pipeline.

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

Como remover projetos de reservas

É possível remover projetos das reservas removendo as atribuições das reservas. Se um projeto não estiver atribuído a nenhuma reserva, ele usará o sistema de preços de cobrança por consulta (sob demanda) e será cobrado de acordo. Um projeto não usará preços sob demanda se a organização ou as pastas pai estiverem atribuídas a uma reserva.

Para remover um projeto de uma reserva:

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas.
  3. Clique na guia Atribuições. Guia Atribuições.
  4. Na atribuição que você quer excluir, clique em Ações e, em seguida, em Excluir. Excluir atribuição.

CLI

Use o comando bq rm com a sinalização --reservation_assignment para remover seu projeto da reserva.

bq rm \
  --project_id=admin_project_id \
  --location=US \
  --reservation_assignment admin_project_id:US.reservation_id.reservation_assignment_id

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

  • reservation_assignment_id é o ID da atribuição da reserva.

Como encontrar a atribuição da reserva de um projeto

Para descobrir se o projeto, a pasta ou a organização está atribuída a uma reserva, faça o seguinte:

Console

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas.
  3. Clique na guia Atribuições. Guia Atribuições.
  4. Clique no seletor do projeto e selecione o projeto, a pasta ou a organização desejada. Seletor do projeto de atribuições.
  5. Se a atribuição da reserva existir, ela será exibida abaixo do seletor.

CLI

Use o comando bq show com a sinalização --reservation_assignment para encontrar qual reserva os jobs de consulta do seu projeto estão atribuídas.

bq show \
  --project_id=admin_project_id \
  --location=US \
  --reservation_assignment \
  --job_type=QUERY \
  --assignee_id=my-prod-project \
  --assignee_type=PROJECT

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

  • my-prod-project é seu ID do projeto de produção.

Como excluir compromissos de capacidade

Um compromisso de capacidade será qualificado para exclusão com base na duração do compromisso:

  • Mensalmente: depois dos primeiros 30 dias, é possível excluir o compromisso a qualquer momento. Haverá cobrança proporcional por segundo.
  • Anual: após um ano, é possível optar por não renovar o pool de slots. Nesse período, o pool de slots será convertido para a taxa mensal, poderá ser cancelado a qualquer momento e a cobrança será proporcional por segundo.

A data de término do compromisso é exibida na IU do Reservations. É possível excluir o compromisso de capacidade após a data do compromisso. Se você quiser excluir um compromisso de capacidade, será preciso primeiro verificar se há um número suficiente de slots não alocados. Caso não haja, será preciso diminuir o número de slots em uma reserva ou remover totalmente as reservas.

Console

Para excluir uma confirmação de capacidade, execute as seguintes etapas:

  1. No Console do Google Cloud, acesse a IU da Web do BigQuery.

    Acessar a IU da Web do BigQuery

  2. Clique na seção Reservas.
  3. Clique na guia Compromissos de slot.
  4. No compromisso que você quer excluir, clique em Ações e, em seguida, em Excluir. Exclusão de compromissos.
  5. Digite "REMOVER" e pressione Continuar. Exclusão de compromissos.

CLI

Use o comando bq rm com a sinalização --capacity_commitment para excluir a confirmação de capacidade.

bq rm \
  --project_id=admin_project_id \
  --location=US \
  --capacity_commitment=admin_project_id:US.capacity_commitment_id

Em que:

  • admin_project_id é o proprietário do ID do projeto do recurso de reserva.

  • capacity_commitment_id é o código de confirmação de capacidade.

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 .
  • É possível criar uma reserva elt com 300 slots e atribuir projetos usados para as cargas de trabalho de ELT à reserva .
  • É possível criar uma reserva bi com 200 slots e atribuir projetos conectados às ferramentas de BI à reserva .

Exclusão de compromissos.

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

BigQuery Reservations para organizações complexas

O BigQuery Reservations é um recurso com escopo na organização. Você compra a capacidade de compromisso de forma centralizada para ser usada em toda a organização. Exija que departamentos ou divisões individuais gerenciem automaticamente o BigQuery Reservations, comprando a capacidade de compromisso, distribuindo essa capacidade no departamento ou na divisão e sendo cobrados por essa 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 distintas.

Como usar modelos de cobrança de taxa fixa e sob demanda juntos

É possível usar modelos de cobrança de taxa fixa e sob demanda juntos.

É possível usar taxa fixa em uma região e sob demanda em outra região:

  1. Por padrão, use sob demanda em todas as regiões.
  2. Inclua um projeto, uma pasta ou uma organização no faturamento de taxa fixa em uma região atribuindo esse elemento a uma reserva.
  3. 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 de taxa fixa na multirregião US e permanecerá no faturamento sob demanda nas outras regiões.

Em uma região, é possível usar os faturamentos de taxa fixa e sob demanda juntos:

  1. Não atribua a pasta ou organização a uma reserva.
  2. Em vez disso, atribua projetos explicitamente a uma reserva.
  3. Qualquer projeto que não esteja atribuído a uma reserva permanecerá sob demanda. Por exemplo:
    • Se você tiver os projetos A, B e C
    • Não crie uma atribuição para toda a organização
    • Atribua explicitamente os projetos A e B a uma reserva
    • O projeto C continua com o faturamento sob demanda

Todos os projetos com o faturamento sob demanda usam a capacidade separada da capacidade do compromisso. Esses projetos não afetam a disponibilidade da capacidade do compromisso.