Gestão da carga de trabalho através de reservas
Esta página descreve como usar as reservas de slots para gerir as suas cargas de trabalho do BigQuery.
Reservas de slots
No BigQuery, os slots são atribuídos em conjuntos denominados reservas. As reservas permitem-lhe gerir a capacidade e isolar as cargas de trabalho
de formas que fazem sentido para a sua organização. Por exemplo, pode criar uma reserva denominada prod
para cargas de trabalho de produção e uma reserva separada denominada test
para testes, para que as tarefas de teste não concorram por recursos com as tarefas de produção. Em alternativa, pode criar reservas para diferentes departamentos na sua organização para atribuir custos de computação.
Apesar do nome, a capacidade numa reserva não está necessariamente reservada. Quando usa reservas de escalamento automático, a capacidade é automaticamente aumentada e diminuída com base na procura. Além disso, os espaços inativos podem ser partilhados entre reservas.
Atribuições de reservas
Para usar as vagas atribuídas numa reserva, tem de atribuí-las a um ou mais projetos, pastas ou organizações. Quando uma tarefa num projeto é executada, usa as posições da respetiva reserva atribuída. Os recursos podem herdar atribuições do respetivo elemento principal na Google Cloud hierarquia de recursos. Se um projeto não for atribuído a uma reserva, herda a atribuição da pasta principal ou da organização, se existir.
Os projetos usam a reserva mais específica na hierarquia de recursos à qual estão atribuídos. Uma atribuição de pasta substitui uma atribuição de organização e uma atribuição de projeto substitui uma atribuição de pasta.
Se um projeto não tiver uma reserva atribuída ou herdada, a tarefa usa os preços a pedido. Para mais informações acerca da hierarquia de recursos, consulte o artigo Organizar recursos do BigQuery.
Os recursos podem ser atribuídos a None
para representar a ausência de uma atribuição.
Os projetos atribuídos a None
usam sempre os preços a pedido. Um exemplo de utilização comum das atribuições de None
é atribuir uma organização a uma reserva e, em seguida, usar None
para desativar determinados projetos ou pastas dessa reserva. Para
mais informações, consulte Atribua um projeto a
None
.
Quando cria uma atribuição, especifica o tipo de trabalho para essa atribuição:
QUERY
: use esta reserva para tarefas de consulta não contínuas, incluindo consultas SQL, DDL, DML e BigQuery ML (modelos incorporados).BACKGROUND_CHANGE_DATA_CAPTURE
: use esta reserva quando optar por usar a sua própria reserva para executar tarefas em segundo plano de captura de dados de alterações (CDC) do BigQuery. As reservas doBACKGROUND_CHANGE_DATA_CAPTURE
não estão disponíveis na edição Standard.BACKGROUND_COLUMN_METADATA_INDEX
: use esta reserva quando optar por usar a sua própria reserva para executar tarefas em segundo plano de armazenamento em cache de metadados do BigLake. Use também esta reserva quando replicar bases de dados de origem para o BigQuery com as operações de aplicação em segundo plano do Datastream. As reservas doBACKGROUND_COLUMN_METADATA_INDEX
não estão disponíveis na edição Standard.BACKGROUND_SEARCH_INDEX_REFRESH
: use esta reserva quando optar por usar a sua própria reserva para executar tarefas em segundo plano de gestão do índice de pesquisa do BigQuery. As reservas doBACKGROUND_SEARCH_INDEX_REFRESH
não estão disponíveis na edição Standard.BACKGROUND
: use esta reserva quando optar por usar a sua própria reserva para replicar bases de dados de origem para o BigQuery com as operações de aplicação em segundo plano do Datastream. Esta reserva também vai ser usada para os trabalhos descritos porBACKGROUND_CHANGE_DATA_CAPTURE
,BACKGROUND_COLUMN_METADATA_INDEX
eBACKGROUND_SEARCH_INDEX_REFRESH
como alternativa se não existir uma reserva mais específica para esses tipos de trabalhos. As reservas doBACKGROUND
não estão disponíveis na edição Standard.CONTINUOUS
(Pré-visualização): use esta reserva para tarefas de consulta contínua. Para usar as consultas contínuas, tem de inscrever-se na pré-visualização da funcionalidade.ML_EXTERNAL
: use esta reserva para consultas do BigQuery MLCREATE MODEL
que usam serviços externos ao BigQuery. Para mais informações, consulte o artigo Atribua slots a cargas de trabalho do BigQuery ML. As reservas doML_EXTERNAL
não estão disponíveis na edição Standard.PIPELINE
: use esta reserva para tarefas de carregamento e extração.Por predefinição, os trabalhos de carregamento e extração são gratuitos e usam um conjunto partilhado de espaços. O BigQuery não garante a disponibilidade de capacidade para este conjunto partilhado nem o débito que vê. Se estiver a carregar grandes quantidades de dados, a sua tarefa pode aguardar que os slots fiquem disponíveis. Nesse caso, pode querer comprar espaços dedicados e atribuir-lhes
PIPELINE
tarefas. Como prática recomendada, crie uma reserva adicional dedicada com a opção Ignorar horários disponíveis inativos ativada. Para mais informações sobre os espaços inativos, consulte o artigo Espaços inativos.Quando as tarefas de carregamento e extração são atribuídas a uma reserva, perdem o acesso ao conjunto gratuito. Deve monitorizar a utilização de recursos e os trabalhos para garantir que as suas reservas têm capacidade suficiente para ter um desempenho melhor do que a utilização do conjunto gratuito.
Não pode atribuir espaços individuais a trabalhos específicos. O agendador do BigQuery processa a atribuição de slots para tarefas que usam uma reserva. Para mais informações sobre como os slots são usados, consulte a programação equitativa no BigQuery.
Atribua reservas de forma flexível
Para pedir apoio técnico ou enviar feedback sobre esta funcionalidade, contacte bigquery-wlm-feedback@google.com.
O BigQuery permite-lhe especificar em que reserva uma consulta deve ser executada no tempo de execução. Isto dá-lhe mais controlo sobre a afetação de recursos e permite-lhe evitar a criação de projetos desnecessários. Pode especificar uma reserva em tempo de execução através da CLI, da IU, do SQL> ou da API, substituindo a atribuição de reserva predefinida para o seu projeto, pasta ou organização. A reserva atribuída tem de estar na mesma região que a consulta que está a executar. Estes trabalhos são suportados em todas as edições.
Tem de ter acesso à reserva para a usar quando executar a consulta.
Para atribuir reservas de forma flexível, execute uma consulta interativa e especifique a reserva.
Combine reservas com faturação a pedido
Pode usar a capacidade numa região e a pedido noutra região. Por predefinição, todos os projetos usam a faturação a pedido. Numa região, pode optar por um projeto, uma pasta ou uma organização pela faturação baseada na capacidade atribuindo-o a uma reserva. Por exemplo, se comprar um compromisso de capacidade na região multirregional dos EUA e atribuir a sua organização à reserva predefinida, a sua organização vai usar a faturação baseada na capacidade na região multirregional dos EUA, mas vai continuar a usar a faturação a pedido em todas as outras regiões.
Numa região, pode combinar a faturação baseada na capacidade e a faturação a pedido atribuindo explicitamente projetos a uma reserva. Qualquer projeto não atribuído a uma reserva
permanece na faturação a pedido. Também pode atribuir explicitamente um projeto para usar a faturação a pedido atribuindo o ID da reserva none
. Isto é útil se
atribuir uma pasta ou uma organização a uma reserva, mas quiser que alguns projetos
nessa pasta ou organização usem a faturação a pedido. Para mais
informações, consulte
não atribua um projeto.
Os projetos com faturação a pedido usam capacidade separada da sua capacidade comprometida. Esses projetos não afetam a disponibilidade da sua capacidade comprometida.
Especificar um projeto de administração
Quando cria compromissos e reservas, estes são associados a um Google Cloud projeto. Este projeto gere os recursos de reservas do BigQuery e é a principal origem de faturação destes recursos. Este projeto não tem de ser o mesmo que contém as suas tarefas ou conjuntos de dados do BigQuery.
Como prática recomendada, crie um projeto dedicado para recursos de reserva. Este projeto chama-se projeto de administração porque centraliza a faturação e a gestão dos seus compromissos. Atribua um nome descritivo a este projeto, como
bq-COMPANY_NAME-admin
. Em seguida, crie um ou mais projetos separados para alojar as suas tarefas do BigQuery.
Só é possível atribuir projetos no mesmo recurso de organização que o projeto de administração a uma reserva. Se o projeto de administração não fizer parte de uma organização, apenas esse projeto pode usar os espaços.
O projeto de administração é faturado pelos slots comprometidos. Os projetos que usam os slots são faturados pelo armazenamento, mas não pelos slots. Pode comprar mais do que um tipo de plano (por exemplo, anual e de três anos) e colocar os slots no mesmo projeto de administração.
Como prática recomendada, limite o número de projetos de administração. Isto ajuda a simplificar a gestão da faturação e a atribuição de espaços. Recomendamos um projeto de administração para todas as reservas da sua organização sempre que for prático. As organizações complexas podem exigir projetos de administração adicionais para cumprir os requisitos de gestão ou faturação.
Usar vários projetos de administração
Em alguns casos, é recomendável criar mais do que um projeto de administração:
- Para separar os custos de várias reservas e compromissos em diferentes unidades organizacionais.
- Mapear um ou mais compromissos de espaço a diferentes conjuntos de reservas.
A capacidade de espaço disponível não é partilhada entre reservas em diferentes projetos de administração.
Quando está na página Gestão de capacidade da consola do BigQuery Google Cloud , pode ver as reservas e os compromissos apenas para o projeto administrativo selecionado.
Dimensionar reservas de slots
O BigQuery foi arquitetado para ser dimensionado de forma linear com o aumento dos recursos. Consoante a carga de trabalho, a capacidade de incremento provavelmente proporcionará um desempenho incremental. No entanto, a adição de capacidade também aumenta os custos. Por conseguinte, a escolha do número ideal de slots a comprar depende dos seus requisitos de desempenho, débito e utilidade.
Pode experimentar espaços de base e de dimensionamento automático para determinar a melhor configuração de espaços. Por exemplo, pode testar a sua carga de trabalho com 500 vagas de base, depois 1000, 1500 e 2000, e observar o impacto no desempenho.
Depois de atribuir slots e executar as cargas de trabalho durante, pelo menos, sete dias, pode usar o estimador de slots para analisar o desempenho e modelar o efeito da adição ou redução de slots.
Também pode examinar a utilização atual de slots dos seus projetos, juntamente com o preço mensal escolhido que quer pagar. As cargas de trabalho a pedido têm um limite máximo de 2000 slots, mas é importante verificar quantos slots estão a ser usados pelos seus projetos através das
INFORMATION_SCHEMA.JOBS*
vistas>,
do Cloud Logging, da API Jobs ou dos registos de auditoria do BigQuery. Para mais informações, consulte o artigo
Monitorize as reservas.
Faça a gestão das cargas de trabalho através de reservas
Pode usar reservas do BigQuery para atribuir capacidade entre cargas de trabalho, equipas ou departamentos criando reservas adicionais e atribuindo projetos a estas reservas. Uma reserva é um conjunto isolado de recursos com a vantagem adicional de poder tirar partido da capacidade inativa em toda a sua organização.
Por exemplo, pode ter uma capacidade comprometida total de 1000 espaços e três tipos de carga de trabalho: ciência de dados, ELT e BI.
- Pode criar uma reserva
ds
com 500 horários disponíveis e atribuir todos os projetos relevantes Google Cloud à reservads
. - Pode criar uma reserva
elt
com 300 horários disponíveis e atribuir projetos que usa para cargas de trabalho de ELT à reservaelt
. - Pode criar uma reserva
bi
com 200 horários disponíveis e atribuir projetos associados às suas ferramentas de BI à reservabi
.
Em vez de dividir a capacidade por tipos de carga de trabalho, pode optar por criar reservas para equipas ou departamentos individuais.
Faça a gestão de reservas em diferentes regiões
As reservas são recursos regionais. Não é possível usar noutra região os horários comprados e as reservas criadas numa região. Os projetos, as pastas e as organizações podem ser atribuídos a reservas numa região e executados a pedido noutra. Para gerir reservas noutra região, tem de alterar a região na página Gestão de capacidade do BigQuery:
- Na consola do BigQuery, clique em Reservas.
- Clique no seletor de Localização e selecione uma região onde quer gerir as reservas.
- Depois de selecionar uma região, pode comprar espaços, criar reservas e atribuir um projeto a uma reserva.
Faça a gestão de reservas em organizações complexas
As reservas são recursos ao nível da organização. Quando cria reservas, pode atribuir capacidade a qualquer projeto na mesma Google Cloud organização. A maioria dos utilizadores do BigQuery usa um único projeto de administração para as respetivas reservas e compromissos. Este projeto de administração está associado a uma conta do Cloud Billing, que é faturada pela capacidade.
No entanto, se tiver uma organização complexa com várias divisões que gerem as suas próprias faturas, é recomendável usar vários projetos de administração. Tenha em atenção que os espaços disponíveis só podem ser partilhados entre reservas criadas no mesmo projeto de administração. Deve ter em atenção as quotas e os limites para projetos de administração e reservas.
Se usar várias Google Cloud organizações, tem de criar, pelo menos, um projeto de administração para cada organização e, em seguida, gerir as reservas e os compromissos de cada organização no respetivo projeto de administração relacionado. Não pode partilhar capacidade entre organizações.
Faça a gestão do controlo melhorado das reservas
Para pedir apoio técnico ou enviar feedback sobre esta funcionalidade, contacte bigquery-wlm-feedback@google.com.
As reservas no BigQuery oferecem um controlo melhorado sobre a forma como as reservas são usadas e disponibilizam funcionalidades de segurança adicionais. Pode definir políticas que especifiquem que utilizadores ou grupos podem aceder e usar reservas específicas. Isto garante que os dados e as cargas de trabalho confidenciais estão isolados e protegidos. Como administrador de reservas, pode controlar com precisão que utilizadores ou contas de serviço (diretores) estão autorizados a usar reservas específicas. Para o fazer, usa condições do IAM aplicadas ao projeto administrativo (o projeto onde as reservas são geridas).
Por exemplo, pode criar uma condição do IAM que conceda a autorização
reservations.use
a um grupo específico de utilizadores para todas as reservas
cujos nomes comecem por um determinado prefixo. Isto permite-lhe gerir o acesso
a conjuntos de reservas relacionadas.
Os utilizadores têm de ter a autorização reservations.use
para substituir a reserva predefinida dos respetivos trabalhos. As funções roles/bigquery.resourceAdmin
e roles/bigquery.resourceEditor
concedem esta autorização. Pode conceder
acesso a utilizadores individuais, grupos ou contas de serviço. Também pode definir políticas com base em atributos de reserva, como o nome, uma vez que as condições do IAM suportam o controlo de acesso baseado em atributos.
Para conceder condições de IAM em reservas, consulte o artigo Controle o acesso às reservas.
Compromissos de slots
Um compromisso de espaço é uma compra de espaços durante um período específico. Pode comprar espaços em incrementos de 50 espaços, até à sua quota de espaços regional. Os compromissos de capacidade são opcionais, mas podem gerar poupanças de custos para cargas de trabalho em estado estacionário. Não existe um limite para o número de compromissos que pode criar. A cobrança é feita a partir do momento em que a compra de compromisso é bem-sucedida. Para ver informações de preços atuais, consulte os preços de compromisso de capacidade.
Compromisso anual. Compra um compromisso de 365 dias. Pode optar por renovar ou converter o plano de compromisso num tipo diferente após 365 dias.
Compromisso de três anos. Compra um compromisso de três anos. Pode optar por renovar ou converter para um tipo diferente de plano de compromisso após 3 anos (1095 dias).
No final do período de compromisso, o compromisso é renovado com base no plano de renovação selecionado.
A faturação dos planos de compromisso anual ou de três anos é feita mensalmente. No entanto, o seu compromisso financeiro é para todo o período de compromisso e não pode ser cancelado mensalmente. A sua utilização é atualizada diariamente no relatório de faturação, que pode ver em qualquer altura.
Os compromissos de slots estão sujeitos à disponibilidade de capacidade. Quando tenta comprar compromissos de slots, o êxito da compra não é garantido. No entanto, assim que a compra do compromisso for bem-sucedida, a capacidade fica disponível até o compromisso expirar.
Se comprar compromissos de horários disponíveis antes de criar uma reserva, é criada automaticamente uma reserva denominada default
para sua conveniência. A reserva default
não tem um comportamento especial. Pode criar reservas adicionais, se necessário, ou usar a reserva predefinida.
Recomendamos que atribua uma base diferente de zero às suas reservas para ter o desempenho mais previsível e a capacidade inicial. Embora possa configurar uma reserva com zero espaços base e definir uma capacidade máxima com a intenção de usar funcionalidades de dimensionamento automático, a eficácia desta abordagem depende inteiramente de o dimensionamento automático estar corretamente ativado e a adquirir ativamente espaços. Se o dimensionamento automático não estiver a funcionar de forma eficaz para uma reserva de base zero, reverte para depender apenas da capacidade de slots inativos disponíveis, o que não oferece qualquer garantia de desempenho e pode levar a velocidades de consulta imprevisíveis ou degradadas.
Renove os compromissos
Seleciona um plano de renovação quando compra um compromisso. Pode alterar o plano de renovação de um compromisso em qualquer altura até este expirar. Estão disponíveis os seguintes planos de renovação:
- Nenhum. Após o fim do período de compromisso, o compromisso é removido. As reservas não são afetadas.
- Anual. Após o fim do período de compromisso, o compromisso é renovado por mais um ano.
- Três anos. Após o fim do período de compromisso, o compromisso é renovado por mais três anos.
Para informações sobre a compra e a renovação de compromissos, consulte o artigo Crie um compromisso de capacidade.
Por exemplo, se comprou um compromisso anual às 18:00 a 5 de outubro de 2019, começou a receber cobranças nesse segundo. Pode eliminar ou renovar o compromisso após as 18:00 de 4 de outubro de 2020, tendo em atenção que 2020 é um ano bissexto. Pode alterar os planos de renovação antes das 18:00 de 4 de outubro de 2020 da seguinte forma:
- Se optar por renovar o compromisso anual, este é renovado por mais um ano às 18:00 a 4 de outubro de 2020.
- Se optar por renovar para um compromisso de três anos, às 18:00 de 4 de outubro de 2020, o seu compromisso é renovado por três anos.
Nota: o processo de renovação pode demorar cerca de uma hora após a expiração do compromisso. Por exemplo, se um compromisso expirar às 18:00 a 4 de outubro de 2020, o registo do compromisso renovado aparece no sistema entre as 18:00 e as 19:00 de 4 de outubro de 2020. Não são aplicados custos a pedido neste período de atualização de dados, uma vez que a hora de início efetiva do compromisso criado é às 18:00.
Expiração do compromisso
Não pode eliminar um compromisso depois de o criar.
Para eliminar um compromisso anual ou de três anos, defina o respetivo plano de renovação como NONE
.
Após a expiração do compromisso, este é eliminado automaticamente. Para saber mais sobre o vencimento dos compromissos, consulte o artigo Vencimento do
compromisso.
Se comprar acidentalmente um compromisso ou cometer um erro ao configurá-lo, contacte o apoio técnico do Cloud Billing para obter ajuda.
Limitações de reservas
- Não é possível partilhar reservas de uma organização com outras organizações.
- Tem de usar reservas separadas e projetos de administração separados para cada organização.
- Cada organização pode ter um máximo de 10 projetos de administração com reservas ativas numa única localização.
- Não é possível partilhar a capacidade inativa entre organizações ou entre diferentes projetos de administração numa única organização.
- Os compromissos e as reservas são
recursos regionais.
Os compromissos comprados numa região ou em várias regiões não podem ser usados para reservas noutras regiões ou em várias regiões, mesmo quando a localização de região única está localizada juntamente com a localização de várias regiões.
Por exemplo, não pode usar um compromisso comprado na região
EU
para uma reserva emeurope-west4
. - Não é possível mover compromissos nem reservas de uma região ou de uma região múltipla para outra.
- Não é possível mover compromissos comprados num projeto de administração para um projeto de administração diferente.
- Os compromissos comprados com uma edição não podem ser usados com reservas de outra edição.
- Os espaços livres não são partilhados entre reservas de diferentes edições.
- Os espaços com escala automática não são partilháveis, uma vez que são reduzidos quando já não são necessários.
Previsibilidade das reservas
Para pedir apoio técnico ou enviar feedback sobre esta funcionalidade, contacte bigquery-wlm-feedback@google.com.
Para usar a previsibilidade das reservas, primeiro tem de ativar a equidade das reservas.
A previsibilidade das reservas permite-lhe definir o número máximo absoluto de vagas consumidas numa reserva. O BigQuery oferece slots de base, slots inativos e slots de escalabilidade automática como potenciais recursos de capacidade. Quando criar uma reserva com um tamanho máximo, confirme o número de vagas base e a configuração adequada do dimensionamento automático e das vagas inativas com base nas suas cargas de trabalho anteriores.
Para ativar a previsibilidade das reservas, tem de definir o valor dos intervalos máximos e o modo de escalabilidade na reserva. O número máximo de espaços tem de ser um número positivo e superior ao número de espaços de base atribuídos à reserva. Para saber como trabalhar com a previsibilidade das reservas, consulte o artigo
Crie uma reserva com intervalos
dedicados.
Não pode configurar o valor de autoscale_max_slots
quando define o valor máximo de
vagas na reserva.
O valor de ignore_idle_slots
tem de estar alinhado com o modo de dimensionamento. Se o modo de dimensionamento for ALL_SLOTS
ou IDLE_SLOTS_ONLY
, ignore_idle_slots
tem de ser
falso. Se o modo de escala for AUTSOCALE_ONLY
, ignore_idle_slots
tem de ser
verdadeiro.
Pode configurar as suas reservas para consumir apenas as seguintes combinações de recursos de capacidade até ao máximo definido:
Slots de base + slots inativos: a capacidade de slots de reserva é superior a zero e o modo de escalabilidade é
IDLE_SLOTS_ONLY
. A reserva consome o número configurado de espaços disponíveis e de base até ao número máximo de espaços. A reserva pode não atingir o máximo se não existirem espaços disponíveis suficientes.Espaços de base + espaços inativos + espaços de dimensionamento automático: a capacidade do espaço de reserva é superior a zero e o modo de dimensionamento é
ALL_SLOTS
. A reserva consome primeiro o número configurado de espaços base, depois todos os espaços inativos disponíveis e, por fim, os espaços de escalamento automático.Slots de base + slots de escala automática: a capacidade de slots de reserva é superior a zero e o modo de escalabilidade é
AUTOSCALE_ONLY
. A reserva consome primeiro os espaços base configurados e, em seguida, os espaços de escalamento automático.Slots inativos + slots de dimensionamento automático: a capacidade de slots de reserva é zero e o modo de dimensionamento é
ALL_SLOTS
. A reserva consome primeiro todos os espaços inativos disponíveis e, em seguida, os espaços de dimensionamento automático.Slots inativos: a capacidade do slot de reserva é zero e o modo de escalabilidade é
IDLE_SLOTS_ONLY
. A reserva consome todas as ranhuras inativas disponíveis até ao máximo configurado. A reserva pode não atingir o máximo se não existirem espaços inativos suficientes disponíveis.
O diagrama seguinte mostra as diferentes opções de configuração disponíveis:
No diagrama, as cinco opções de configuração mostram como o BigQuery consome slots até ao máximo configurado. As três primeiras opções contêm espaços base, enquanto as restantes não têm espaços base configurados.
Limitações
A previsibilidade das reservas está sujeita às seguintes limitações:
A previsibilidade das reservas só está disponível com as edições Enterprise e Enterprise Plus, a menos que escolha a opção
AUTOSCALE_ONLY
.A previsibilidade das reservas é o melhor possível. A utilização geral pode continuar a exceder o máximo configurado.
O que se segue?
- Para saber como trabalhar com a previsibilidade das reservas, consulte o artigo Crie uma reserva com vagas dedicadas.
Resolva problemas com reservas
Esta secção destina-se a ajudar a resolver problemas comuns encontrados durante a interação com reservas, como determinar os motivos pelos quais uma reserva não está a ser usada para uma tarefa do BigQuery, identificar reservas desconhecidas ou problemas ao adicionar slots.
Não é possível adicionar mais horários ao tamanho da reserva
Se encontrar erros como Failed to allocate slots for reservation in the current system state
ou Failed to update reservation: Failed to allocate slots for reservation
ao tentar adicionar mais horários à sua reserva, normalmente trata-se de um problema temporário. Para mitigar, faça o seguinte:
- Tente novamente com um número inferior de espaços
- Se tentar com um número inferior de espaços falhar, aguarde 15 minutos e tente novamente a operação
Se, depois de tentar várias vezes e aguardar 30 minutos, continuar a receber o mesmo erro, contacte o apoio técnico do BigQuery.
Não existe quota suficiente para concluir este pedido
Se a mensagem de erro indicar There is insufficient quota to complete this request
, significa que o pedido excede o limite de quota definido para o projeto.
Para resolver este erro, experimente uma das seguintes opções:
- Adicione um número menor de espaços à reserva para que o limite de quota não seja excedido.
- Peça um aumento da quota na região correspondente. Consulte o artigo Pedir um aumento da quota.
Reserva não usada pelo BigQuery para executar uma tarefa
Existem vários cenários em que uma tarefa pode ser executada com recursos a pedido ou um conjunto de slots partilhados gratuito, em vez de usar a reserva que foi criada.
A consulta e a reserva estão em regiões diferentes
As reservas são recursos regionais. A consulta é executada na mesma localização que as tabelas referenciadas na consulta.
Se a localização de uma tabela não corresponder à localização da reserva, a consulta é executada através do conjunto de slots partilhado e não usa a reserva.
Consultar tabelas do BigQuery Omni
Quando consultar uma tabela do BigQuery Omni, certifique-se de que a reserva é criada na mesma região que a tabela e não numa região de colocação. Se criar a reserva na região do BigQuery colocada, a consulta é executada a pedido.
A reserva foi criada, mas o projeto não lhe foi atribuído
Para usar as vagas que comprou, tem de criar uma atribuição que atribua o projeto à reserva específica. Certifique-se de que o projeto tem uma atribuição correspondente para a reserva.
Falta de correspondência do tipo de serviço
Certifique-se de que seleciona o tipo de tarefa correto quando cria uma atribuição. Caso contrário, as tarefas são executadas através do conjunto de intervalos partilhado.
Por exemplo, se selecionar PIPELINE
como o tipo de tarefa, todas as tarefas de consulta são executadas a pedido. Altere o tipo de atribuição para QUERY
para que os trabalhos de consulta sejam executados através da reserva.
Consultas com várias declarações
Se estiver a executar consultas com várias declarações, o objeto de tarefa principal não tem uma reserva associada, mesmo que as tarefas secundárias tenham sido executadas ao abrigo de uma reserva.
Para confirmar se a tarefa estava realmente a usar uma reserva, consulte os metadados da tarefa secundária para esclarecimento.
A obter resultados em cache
Quando a tarefa de consulta obtém resultados em cache, o campo de reserva fica vazio porque não está a ser feito nenhum cálculo real e os resultados são obtidos diretamente da tabela temporária.
Alterar operações de modificação de linhas de captura de dados
Se tiver tabelas de captura de dados de alterações (CDC), o BigQuery aplica as modificações de linhas pendentes no intervalo de max_staleness
como tarefas em segundo plano que usam o tipo de atribuição BACKGROUND
. Se não existirem atribuições de BACKGROUND
, usam os preços a pedido. Pondere criar uma atribuição BACKGROUND
para o projeto para evitar custos elevados a pedido. Pode identificar estes trabalhos com a substring queueworker_cdc_background_merge_coalesce
no identificador do trabalho.
Tipos de modelos do BigQuery ML que usam serviços externos
Se não for encontrada nenhuma atribuição de reserva com um tipo de trabalho ML_EXTERNAL
no projeto, o trabalho de consulta é executado com preços a pedido. A atribuição do tipo de tarefa QUERY
só pode ser usada para modelos do BigQuery ML que não sejam modelos externos nem modelos de fatorização de matrizes. Leia a documentação sobre a atribuição de reservas para saber mais.
Reservas não reconhecidas identificadas no projeto
Existem reservas pertencentes ao BigQuery que representam um conjunto de slots partilhado gratuito usado para determinadas operações no BigQuery:
default-pipeline
Por predefinição, a realização do carregamento em lote ou da exportação em lote de dados no BigQuery usa um conjunto de slots gratuitos partilhados. Se inspecionar estas tarefas de carregamento ou extração, a reserva usada é apresentada como default-pipeline
.
Não existem custos pela utilização do conjunto de espaços partilhado. Se quiser um desempenho previsível consistente, considere comprar uma PIPELINE
reserva.