Introdução ao gerenciamento de cargas de trabalho
Com o gerenciamento de cargas de trabalho do BigQuery, você controla os recursos e as funcionalidades disponíveis para análise de dados na sua organização e define modelos de faturamento. A capacidade de computação do BigQuery, medida em slots, pode ser comprada em reservas e compromissos que você atribui em toda a organização para executar jobs.
O BigQuery oferece dois modelos de gerenciamento de carga de trabalho para análise de dados, também conhecidos como computação. Com o faturamento sob demanda, você paga pelos bytes processados ao consultar os dados. Com o faturamento baseado em capacidade, você reserva capacidade de processamento para cargas de trabalho com a opção de aumentar e diminuir a capacidade automaticamente.
É possível alternar entre modelos de faturamento sob demanda e com base em capacidade a qualquer momento ou combinar os dois. O modelo baseado em capacidade oferece controle explícito sobre slots e capacidade de análise, enquanto o modelo sob demanda não.
Os modelos a seguir definem como você gerencia cargas de trabalho e como é cobrado:
Preços sob demanda: por padrão, você é cobrado pelos dados verificados pelas suas consultas. Você tem uma capacidade de processamento de consultas fixa por projeto e paga apenas pelo número de bytes processados ao usá-los.
Preços baseados em capacidade: você compra a capacidade de processamento de consultas dedicadas ou de escalonamento automático a uma taxa com desconto. A capacidade é medida em slots alocados para cargas de trabalho ou partes da organização. O faturamento baseado em capacidade oferece a opção de compromissos, que permitem se comprometer com um nível consistente de capacidade de processamento durante um período de um ou três anos por um preço com desconto. Não há cobrança por bytes processados ao usar o modelo baseado em capacidade. As vantagens dos preços baseados em capacidade incluem:
- Custo. Uma prática recomendada é definir o uso mensal mínimo de análises como seu compromisso baseado em capacidade do BigQuery para reduzir custos.
- Previsibilidade. Slots baseados em capacidade permitem taxas mensais mais consistentes.
- Compra centralizada: é possível comprar e alocar slots para toda a organização, e não para cada projeto que usa o BigQuery.
- 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. A cobrança é feita em incrementos por segundo, com um período de uso mínimo de um minuto.
A criação de um compromisso de capacidade é opcional ao trabalhar com reservas que usam edições do BigQuery, mas pode reduzir os custos de cargas de trabalho em estado estável.
É possível combinar 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. Para entender melhor os preços de reservas do BigQuery, consulte estes links:
- Preços sob demanda
- Preços baseados em capacidade
- Estimar e controlar custos
- Criar controles de custo personalizados
Slots
A capacidade de processamento no BigQuery é medida em slots. Os slots representam CPUs virtuais usadas para consultar dados. Em geral, o acesso a mais slots permite executar mais consultas simultâneas e consultas complexas podem ser executadas mais rapidamente. O modelo de preços com base em capacidade permite reservar um volume de slots. Suas consultas são executadas dentro dessa capacidade, e você paga por essa capacidade continuamente a cada segundo que ela é implantada. Por exemplo, se você comprar 2.000 slots do BigQuery, suas consultas agregadas serão limitadas a usar 2.000 CPUs virtuais a qualquer momento. Você tem essa capacidade até excluí-la e paga por 2.000 slots até excluí-los.
Para saber mais sobre os slots e como eles são usados, consulte Entender os slots.
Cotas de slots
As cotas de slots fornecem uma proteção para o BigQuery. O tipo de cota depende do modelo de preços dos slots:
Modelo de preços sob demanda: a cota de slot por projeto com recurso de burst transitório é suficiente para a maioria dos usuários. Dependendo das cargas de trabalho, o acesso a mais slots pode melhorar o desempenho da consulta. Para verificar quantos slots sua conta usa, confira o monitoramento do BigQuery.
Modelo de preços baseado em capacidade: as cotas e limites de reserva definem o número máximo de slots que podem ser comprados em um local. Você só é cobrado por suas reservas e compromissos, não pelas cotas.
Para mais informações sobre como aumentar a cota de slots, consulte Como solicitar um aumento de cota.
Jobs
Jobs são ações executadas pelo BigQuery em seu nome para carregar, exportar, consultar ou copiar dados.
Quando você usa o console do Google Cloud ou a ferramenta bq para executar um desses jobs, um recurso de job é criado, programado e executado automaticamente. Também é possível criar de maneira programática um job de carregamento, exportação, consulta ou cópia. Quando você faz isso, o job é programado e executado pelo BigQuery.
Como os jobs podem levar um longo tempo para serem concluídos, eles são executados de maneira assíncrona e podem ser pesquisados por status. As ações mais curtas, como listar recursos ou receber metadados, não são gerenciadas por um recurso de job.
Para mais informações sobre o BigQuery, consulte Noções básicas sobre jobs.
Reservas
Os slots são comprados, atribuídos a recursos e alocados a jobs em pools
chamados reservas. As reservas permitem atribuir slots de maneira que faça sentido para sua organização. Por exemplo, é possível criar uma reserva chamada prod
para cargas de trabalho
de produção e uma reserva separada chamada test
para teste, assim, os jobs de teste
não competem por recursos de cargas de trabalho de produção. Também
é possível criar reservas para departamentos diferentes da organização.
Se você adquirir compromissos de slot antes de criar uma reserva, uma reserva chamada default
será criada automaticamente para sua comodidade. A reserva default
não tem comportamento especial. É possível criar outras reservas, se necessário, ou usar a reserva padrão.
Para mais informações sobre preços, consulte preços baseados em capacidade e preços sob demanda.
Limitações de reserva
- As reservas que você cria não são 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 e reservas são
recursos regionais.
Compromissos comprados em uma região ou multirregião não podem ser usados para
reservas em outras regiões ou multirregiões, mesmo quando
o local de região única está contido no local multirregional.
Por exemplo, não é possível usar um compromisso adquirido na
multirregião
EU
para uma reserva emeurope-west1
. - Compromissos e reservas não podem ser movidos de uma região ou multirregião para outra.
- 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.
Atribuições de reserva
Para usar os slots comprados, você precisa atribuir um ou mais projetos, pastas ou organizações a uma reserva. Uma reserva é o nível mais baixo em que você pode especificar a alocação de slot. Quando um job em um projeto é executado, ele usa slots da reserva atribuída. Os recursos podem herdar atribuições de seus pais na hierarquia de recursos. Se um projeto não estiver atribuído a uma reserva, ele herda a atribuição da pasta pai ou da organização, se houver.
Os projetos usam a reserva mais específica na hierarquia de recursos a que são atribuídos. Uma atribuição de pasta substitui uma atribuição de organização, e uma atribuição de projeto modifica uma atribuição de pasta.
Se um projeto não tiver uma reserva atribuída ou herdada, o job usará preços sob demanda. Para mais informações sobre a hierarquia de recursos, consulte Como organizar recursos do BigQuery.
Os recursos podem ser atribuídos a None
para representar a ausência de uma atividade.
Os projetos atribuídos a None
sempre usam preços sob demanda. Um caso de uso comum para atribuições None
é atribuir uma organização a uma reserva e, em seguida, usar None
para remover determinados projetos ou pastas dessa reserva. Para mais informações,
consulte Atribuir um projeto a None
.
Ao criar uma atribuição, especifique o tipo de tarefa para essa atribuição:
BACKGROUND
: use essa reserva ao optar por use sua própria reserva para executar os jobs de gerenciamento de índice da Pesquisa do BigQuery, a Captura de dados alterados do BigQuery (CDC) ou os jobs em segundo plano do Caching de metadados do BigLake. 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. As reservasBACKGROUND
não estão disponíveis na edição Standard.CONTINUOUS
(pré-lançamento): use essa reserva para jobs de consulta contínua. Para usar consultas contínuas, é necessário se inscrever na prévia do recurso.ML_EXTERNAL
: use essa reserva para consultas CREATE MODEL do BigQuery ML que usam serviços externos ao BigQuery. Para mais informações, consulte Atribuir slots às cargas de trabalho do BigQuery ML. ReservasML_EXTERNAL
não estão disponíveis na edição Standard.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 disponibilidade de capacidade para esse pool compartilhado ou a capacidade que você vê. Se você estiver carregando grandes quantidades de dados, seu job poderá aguardar a disponibilidade dos slots. Nesse caso, talvez você queira comprar slots dedicados e atribuir jobs de
PIPELINE
a eles. Como prática recomendada, crie outra reserva dedicada com Ignorar slots inativos ativado. Para mais informações sobre slots inativos, consulte Slots inativos.Quando os jobs de carregamento e extração são atribuídos a uma reserva, eles perdem o acesso ao pool gratuito. Monitore a utilização de recursos e os jobs para garantir que as reservas tenham capacidade suficiente para ter um desempenho melhor do que usar o pool gratuito.
QUERY
: use essa reserva para jobs de consulta não contínua, incluindo consultas SQL, DDL, DML e BigQuery ML.
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. Para mais informações sobre como os slots são usados, consulte Alocação de slots em uma reserva.
Entenda o gerenciamento de cargas de trabalho
O BigQuery Reservations é um recurso com escopo de organização que normalmente pertence a um projeto, mas pode ser usado por outros projetos dentro da 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 comprando a capacidade comprometida e atribuindo essa capacidade ao departamento ou à 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, você define um projeo de administração para cada departamento e gerencia as reservas para esse departamento no 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.
Administrar cargas de trabalho da organizaçã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.
Como prática recomendada, crie um projeto dedicado para os recursos de reservas. 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 esse projeto poderá usar os slots atribuídos a ele.
O projeto de administração é cobrado pelos slots confirmados. Os projetos que usam slots de reservas do projeto de administração não são cobrados. É possível comprar mais de um tipo de plano (por exemplo, compromissos de um e três anos) e colocar os slots no mesmo projeto de administração.
Como prática recomendada, crie 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. Ative a API BigQuery Reservations somente no projeto de administração para que todos os compromissos sejam gerenciados por esse projeto.
Gerenciamento de departamentos e cargas de trabalho
É 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 a vantagem de que pode aproveitar a capacidade ociosa 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 à reservads
. - É possível criar uma reserva
elt
com 300 slots e atribuir projetos usados para as cargas de trabalho de ELT à reservaelt
. - É possível criar uma reserva
bi
com 200 slots e atribuir projetos conectados às ferramentas de BI à reservabi
.
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 comprados e as reservas criadas
em uma região não podem ser usados em outra região. Os locais de região única não
correspondem a locais multirregionais, mesmo que o local de região única esteja contido
no local multirregional. Por exemplo, não é possível usar uma reserva na
multirregião EU
para executar um job em europe-west1
. 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, faça o seguinte:
No Console do Google Cloud, acesse a página BigQuery.
No menu de navegação, clique em Gerenciamento de capacidade.
Na lista Local, selecione uma região em que você quer gerenciar reservas.
Depois de selecionar uma região, crie reservas, crie compromissos e atribua um projeto a uma reserva.
Compromissos
Um compromisso de capacidade é uma compra de slots por um período especificado. É possível comprar slots em incrementos de 100 slots, até a cota de slots. Compromissos de capacidade são opcionais, mas podem oferecer economia de custos para cargas de trabalho de estado estável. Não há limite para o número de compromissos que você pode criar. Você recebe cobranças assim que a compra do compromisso é feita. Para informações sobre preços atuais, consulte preços de compromisso de capacidade.
Compromisso de três anos Você compra um compromisso de três anos. É possível escolher renovar ou converter para um tipo diferente de plano de compromisso após 3x365 dias.
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.
No final do período de compromisso, ele será renovado com base no plano de renovação selecionado.
Você recebe cobranças mensais por planos de compromisso anuais ou de três anos. No entanto, seu compromisso financeiro é por todo o período e não pode ser cancelado mensalmente. Seu uso é atualizado diariamente no relatório de faturamento e pode ser visualizado a qualquer momento.
Compromissos de slots estão sujeitos à disponibilidade de capacidade. Quando você tenta adquirir compromissos de slots, o sucesso dessa compra não é garantido. No entanto, uma vez que sua compra do compromisso for bem-sucedida, a capacidade estará disponível até que o compromisso expire.
Renovar compromissos
Você seleciona um plano de renovação ao adquirir um compromisso. É possível alterar o plano de renovação de um compromisso a qualquer momento até que ele expire. Os planos de renovação a seguir estão disponíveis:
- Nenhum. Após o término do período do compromisso, ele é removido. As reservas não são afetadas.
- Anual. Após o fim do período do compromisso, ele será renovado por mais um ano.
- Três anos. Após o término do período, o compromisso será renovado por mais três anos.
Para informações sobre como adquirir e renovar compromissos, consulte Criar um compromisso de capacidade.
Por exemplo, se você comprou um compromisso anual às 18h do dia 5 de outubro de 2019, começou a ser cobrado nesse segundo. Seria possível excluir ou renovar o compromisso após as 18h de 4 de outubro de 2020, considerando que 2020 foi um ano bissexto. Você poderia alterar os planos de renovação antes das 18h de 4 de outubro de 2020 da seguinte maneira:
- Se você optar por renovar para um compromisso anual, às 18h do dia 4 de outubro de 2020, seu compromisso será renovado por mais um ano.
- Se você optar por renovar um compromisso de três anos, às 18h do dia 4 de outubro de 2020, o compromisso será renovado por três anos.
Observação:o processo de renovação pode levar até uma hora após o vencimento do compromisso. Por exemplo, se um compromisso expirar às 18h de 4 de outubro de 2020, o registro do compromisso renovado vai aparecer no sistema entre 18h e 19h do dia 4 de outubro de 2020. Nenhuma cobrança sob demanda é aplicada nesse período de atualização de dados, porque o horário de início efetivo do compromisso criado é 18h.
Expiração do compromisso
Depois de criar um compromisso, ele só poderá ser excluído depois que expirar.
Para excluir um compromisso anual ou de três anos, defina o plano de renovação como NONE
.
Depois que o compromisso expirar, ele será excluído automaticamente. Para saber mais sobre
expiração do compromisso, consulte Expiração do
compromisso.
Se você comprou um compromisso acidentalmente ou cometeu um erro ao configurá-lo, entre em contato com o suporte do Cloud Billing para receber ajuda.
A seguir
- Para começar a usar as reservas do BigQuery, consulte Introdução a reservas
- Noções básicas sobre os slots
- Saiba mais sobre os preços sob demanda
- Saiba mais sobre preços baseados em capacidade
- Estimar e controlar custos
- Criar controles de custo personalizados