Introdução às reservas legadas

Com as reservas do BigQuery, é possível mudar de preços sob demanda para preços baseados em capacidade. Com o preço baseado em capacidade, você paga pela capacidade de processamento de consulta dedicada ou escalonada automaticamente, em vez de por cada consulta individualmente.

As reservas permitem alocar a capacidade da consulta, medida em slots, para diferentes cargas de trabalho ou partes da organização.

Criar um compromisso de capacidade é opcional ao trabalhar com reservas que utilizam as edições do BigQuery, mas é possível economizar nos custos de cargas de trabalho de estado estável.

Visão geral

O BigQuery oferece dois modelos de preços de computação (análise):

Por padrão, as cobranças são feitas de acordo com o modelo de preços sob demanda. Com as reservas, é possível alternar para o preço baseado em capacidade, usar o escalonamento automático de slots e adquirir compromissos de capacidade com desconto. Não há cobrança para bytes processados ao usar o modelo baseado em capacidade.

É possível combinar os dois modelos de faturamento. Por exemplo, é possível executar algumas cargas de trabalho com preços sob demanda e outras com preços baseados em capacidade. Como o modelo de faturamento é especificado por projeto, seria necessário usar vários projetos para os jobs de consulta.

Benefícios das reservas

Os benefícios do uso de reservas do BigQuery incluem:

  • Previsibilidade. O preço baseado em capacidade oferece custos previsíveis e consistentes. Você especifica o orçamento de custo máximo antecipadamente e também pode aproveitar os compromissos de slot, que oferecem capacidade dedicada contínua a uma taxa com desconto.

  • Flexibilidade. Você escolhe a capacidade dedicada a ser alocada a uma carga de trabalho ou permite que o BigQuery escalone automaticamente a capacidade com base nos requisitos da carga de trabalho. Você é cobrado pelo uso dos slots consumidos com pelo menos um segundo de incremento.

  • Gerenciamento de carga de trabalho. Cada carga de trabalho tem um pool especificado de recursos computacionais do BigQuery disponível para uso. Ao mesmo tempo, se uma carga de trabalho não usar todos os slots dedicados, os slots não utilizados serão compartilhados automaticamente entre as outras cargas de trabalho.

  • Compra centralizada: você pode comprar e alocar slots para toda a organização. Não é necessário comprar slots para cada projeto que usa o BigQuery.

Reservas

A capacidade do BigQuery é medida em slots, que representam CPUs virtuais usadas em consultas. Geralmente, se você provisionar mais slots, poderá executar mais consultas ao mesmo tempo. Além disso, as consultas complexas serão executadas com mais rapidez.

Os slots são alocados em pools chamados de reservas. As reservas permitem alocar os slots de maneira específica para sua organização.

Por exemplo, é possível criar uma reserva nomeada prod para cargas de trabalho de produção e outra reserva nomeada test para testes. Dessa forma, os jobs de teste não consumirão os recursos que as cargas de trabalho de produção precisam. Também é possível criar reservas para departamentos diferentes da organização.

As reservas podem incluir slots de valor de referência, que sempre são alocados, e slots escalonados automaticamente, que são adicionados ou removidos dinamicamente com base nas demandas da carga de trabalho.

Uma reserva chamada default será criada automaticamente se você comprar compromissos de slot antes de criar uma reserva. Não há nada de especial na reserva default. Ela é criada para facilitar a operação. É possível decidir se precisará de outras reservas ou usará apenas a padrão.

Para usar os slots alocados, atribua um ou mais projetos a uma reserva, conforme descrito na próxima seção.

Uma reserva é o nível mais baixo em que você pode especificar a alocação de slot. A alocação de slots em uma reserva é processada pelo programador do BigQuery.

Atividades

Para usar os slots alocados, atribua um ou mais projetos, pastas ou organizações a uma reserva. Cada nível na hierarquia de recursos herda a atribuição do nível acima dela. Em outras palavras, se um projeto ou pasta não estiver atribuído, esse projeto ou pasta herdará a atribuição da pasta ou organização pai, se houver. Para mais informações sobre a hierarquia de recursos, consulte Como organizar recursos do BigQuery.

Quando um job é iniciado a partir de um projeto atribuído a uma reserva, ele usa os slots dessa reserva. Se um projeto não for atribuído a uma reserva, seja diretamente ou herdado da pasta pai ou organização, os jobs nesse projeto usarão preços sob demanda.

Atribuições None representam a ausência de atribuição. Os projetos atribuídos a None usam preços sob demanda. O caso de uso comum de atribuições None é atribuir uma organização à reserva e desativar alguns projetos ou pastas dessa reserva atribuindo None a eles. Para mais informações, consulte Atribuir um projeto a None.

Ao criar uma atribuição, especifique o tipo de tarefa para essa atribuição:

  • QUERY: use essa reserva para jobs de consulta, incluindo consultas SQL, DDL, DML e BigQuery ML.

  • PIPELINE: use essa reserva para jobs de carregamento e extração.

    Por padrão, os jobs de carregamento e extração são gratuitos e usam um pool compartilhado de slots. O BigQuery não garante a capacidade disponível desse pool compartilhado ou sobre a capacidade que você verá. Se você estiver carregando grandes quantidades de dados, o job poderá aguardar à medida que os slots ficam disponíveis. Nesse caso, talvez você queira comprar slots dedicados e atribuir jobs de pipeline a eles. Recomendamos a criação de uma reserva dedicada adicional com o compartilhamento de slot inativo desativado.

    Quando jobs de carregamento são atribuídos a uma reserva, eles perdem o acesso ao pool gratuito. Monitore o desempenho para garantir que os jobs tenham capacidade suficiente. Caso contrário, o desempenho pode ser pior do que usar o pool gratuíto.

  • BACKGROUND: use essa reserva ao optar poruse sua própria reserva para executar os jobs de gerenciamento de índice da Pesquisa do BigQuery ou jobs em segundo plano da Captura de dados alterados do BigQuery (CDC). Além disso, use essa reserva ao replicar bancos de dados de origem no BigQuery com as operações de aplicação em segundo plano do Datastream. Reservas BACKGROUND não estão disponíveis na edição Standard.

  • ML_EXTERNAL: use essa reserva para consultas do BigQuery ML que usam serviços externos ao BigQuery. Para mais informações, consulte Atribuir slots às cargas de trabalho do BigQuery ML. Reservas ML_EXTERNAL não estão disponíveis na edição Standard.

Não é possível alocar slots para atribuições específicas. O programador do BigQuery processa a alocação de slots das atribuições em uma reserva.

Compromissos

Conceitos do Reservations.

Um compromisso de capacidade é a compra de uma quantidade fixa de capacidade de computação do BigQuery por um período mínimo de tempo. Os compromissos de capacidade são opcionais para reservas criadas com uma edição, mas podem economizar em custos de cargas de trabalho de estado estável.

O BigQuery oferece vários tipos de planos de compromisso Elas diferem principalmente pelo custo e pela duração mínima do seu compromisso. Para informações sobre preços atuais, consulte Preços de compromisso de capacidade.

  • Compromisso anual. Você compra um compromisso de 365 dias. É possível escolher renovar ou converter para um tipo diferente de plano de compromisso após 365 dias.

  • Compromisso mensal. Você adquire um compromisso de 30 dias. Após 30 dias, é possível excluir o plano a qualquer momento.

  • Slots flexíveis: Compre um compromisso de 60 segundos. É possível excluí-lo a qualquer momento após 60 segundos. Slots flexíveis são uma boa maneira de testar o desempenho das cargas de trabalho com faturamento de taxa fixa antes de adquirir um compromisso de longo prazo. Eles também são úteis para lidar com a demanda cíclica ou sazonal ou para eventos de alta carga, como a temporada fiscal.

Independentemente do plano selecionado, os slots não expiram no final do período de compromisso. Você mantém os slots e é cobrado por eles até que sejam excluídos. Também é possível alterar o tipo de plano após a duração mínima.

Os slots estão sujeitos à disponibilidade de capacidade. Quando você tenta adquirir compromissos de slots, o sucesso dessa compra não é garantido. No entanto, quando sua compra for confirmada, a capacidade será garantida até que você exclua o compromisso.

Para mais detalhes sobre esses planos, consulte Planos de compromisso (em inglês).

Alocação de slots nas reservas

O BigQuery aloca capacidade de slot em uma única reserva usando um algoritmo chamado programação regular.

O programador do BigQuery impõe o compartilhamento igualitário de slots entre projetos com consultas em execução em uma reserva e, em seguida, nos jobs de um determinado projeto. O programador fornece uma igualdade eventual. Talvez haja períodos curtos em que alguns jobs recebam uma parcela desproporcional de slots, mas isso será corrigido pelo programador. O objetivo é encontrar um equilíbrio entre ser muito agressivo na remoção de tarefas em execução (o que resulta em desperdício de tempo do slot) e ser muito tolerante (o que resulta em jobs com longas tarefas em execução recebendo uma parcela desproporcional do tempo de slot).

Se um job importante precisar de mais slots de maneira consistente do que recebe do programador, procure criar uma reserva adicional com um número garantido de slots e atribuir o job a essa reserva. Para mais informações, consulte Gerenciamento de carga de trabalho.

Slots inativos

É possível que alguns slots fiquem inativos a qualquer momento. Isso inclui:

  • Compromissos de slots que não estão alocados para nenhuma reserva.
  • Slots que estão alocados para um valor de referência de reserva, mas não estão em uso no momento.

Por padrão, as consultas em execução em uma reserva usam automaticamente slots ociosos de outras reservas no mesmo projeto de administração. Isso significa que um job sempre poderá ser executado enquanto houver capacidade. A capacidade inativa é imediatamente preemptiva para a reserva atribuída original conforme necessário, independentemente da prioridade da consulta que precisa dos recursos. Isso acontece automaticamente em tempo real.

Para desativar essa funcionalidade e forçar uma reserva a usar somente os slots provisionados, defina ignore_idle_slots como true. As reservas com ignore_idle_slots definido como true não recebem slots inativos.

Não é possível compartilhar slots inativos entre as reservas de diferentes edições. É possível compartilhar somente os slots de valor de referência ou slots confirmados. Os slots com escalonamento automático podem estar temporariamente disponíveis, mas não podem ser compartilhados porque podem ser reduzidos.

Enquanto ignore_idle_slots for falso, uma reserva poderá ter uma contagem de slots de 0 e ainda ter acesso a slots não utilizados. Se você estiver usando apenas a reserva default, recomendamos configurá-la dessa maneira. Em seguida, é possível atribuir um projeto ou uma pasta a essa reserva, e ela usará apenas slots inativos.

As atribuições do tipo ML_EXTERNAL são uma exceção ao comportamento descrito acima. Os slots usados pelos jobs de criação de modelos externos de ML do BigQuery não são preemptivos. Isso significa que os slots em uma reserva com os tipos de atribuição de consulta ml_external e consulta estão disponíveis apenas para outros jobs de consulta quando os slots não são ocupados pelos jobs ML_EXTERNAL. Esses jobs não usam slots inativos de outras reservas.

Limitações

  • As reservas que você compra não podem ser compartilhadas com outras organizações.
  • É necessário criar uma reserva e um projeto de administração separados para cada organização.
  • Cada organização pode ter no máximo cinco projetos de administração com compromissos ativos em um único local.
  • A capacidade de inatividade não pode ser compartilhada entre organizações ou entre diferentes projetos de administração em uma única organização.
  • Compromissos são um recurso regional. Compromissos comprados em uma região ou multirregião não podem ser usados em outra região ou multirregião. Não é possível mover os compromissos entre regiões ou entre regiões e multirregiões.
  • Compromissos comprados em um projeto de administração não podem ser movidos para outro.
  • Compromissos comprados com uma edição não podem ser usados com reservas de outra.
  • Os slots inativos não são compartilhados entre reservas de diferentes edições.
  • Os slots de escalonamento automático não são compartilháveis porque serão reduzidos quando não forem mais necessários.

Cotas

A cota de slots é o número máximo de slots que é possível adquirir em um local. Você não é cobrado por cotas, apenas por reservas e compromissos. Para mais informações, consulte Cotas e limites. Para mais informações sobre como aumentar a cota de slots, consulte Como solicitar um aumento de cota.

Preços

Para saber mais sobre preços, consulte Preços de taxa fixa.

A seguir