Aviso: cobrança de US$14 mil no BigQuery em 2 horas

Um pesquisador consultando o BigQuery do Google no conjunto de dados público HTTP Archive foi cobrado inesperadamente em US$14 mil em duas horas, o que levou a um escrutínio mais amplo de como serviços de dados em nuvem expõem (ou obscurecem) custos. Os comentaristas explicam que o conjunto de dados é gratuito, mas as consultas são cobradas por terabyte escaneado, e que uma consulta repetida e mal otimizada provavelmente leu petabytes de dados; ainda assim, muitos argumentam que a interface do Google, a falta de limites rígidos de gastos e os indicadores de custo vagos tornam erros assim fáceis demais. Outros contra-argumentam que a precificação e os avisos do BigQuery estão documentados e que os usuários compartilham a responsabilidade de definir cotas e entender a cobrança, usando este incidente para destacar o risco mais amplo da precificação em nuvem baseada em uso e opaca para indivíduos e pequenas startups.

Visão geral do incidente

  • Um usuário executou consultas históricas no conjunto de dados público HTTP Archive no BigQuery e incorreu em ~US$14 mil em cobranças em ~2 horas.
  • A carga de trabalho aparentemente escaneou repetidamente tabelas grandes por completo (na ordem de vários petabytes escaneados no total), provavelmente por meio de um loop sobre muitos meses/sites.
  • O suporte inicial teria se recusado a isentar a cobrança; mais tarde na discussão, o usuário diz que o Google começou a ajudar a resolver o problema.

Como funciona a precificação do BigQuery (segundo a discussão)

  • O armazenamento de conjuntos de dados públicos é coberto pelo Google; os usuários pagam pelo processamento das consultas.
  • A precificação sob demanda do BigQuery é por TiB de dados escaneados, com uma pequena faixa gratuita.
  • A interface mostra os bytes processados estimados antes de executar uma consulta, mas isso é fácil de passar despercebido e é exibido em TB/PB, não em dólares.

Responsabilidade e culpa

  • Um grupo argumenta que isso é principalmente erro do usuário: a documentação do BigQuery e o guia “getting started” do HTTP Archive mencionam cobrança por byte e limites da faixa gratuita.
  • Outro grupo argumenta que, embora o usuário tenha cometido erros (por exemplo, SELECT *, filtros LIKE, sem limites, consultas em loop), o design do sistema torna erros caros fáceis demais e fornece avisos insuficientes.

UI/UX e transparência de custos

  • Vários comentários criticam a abstração do BigQuery de “TBs escaneados” e pequenos indicadores de custo pouco visíveis como hostis ao usuário ou próximos de um “dark pattern”.
  • Vários sugerem que a interface deveria mostrar explicitamente uma estimativa em dólares e exibir um aviso bloqueante para consultas muito caras (por exemplo, “isso pode custar US$14 mil – confirmar?”).

Quotas, limites e salvaguardas

  • O BigQuery oferece cotas personalizadas (por exemplo, máximo de TB escaneados por consulta/usuário) e limites no nível do projeto, mas eles não são óbvios nem limites rígidos de gasto.
  • Alertas de faturamento do GCP e notificações de orçamento existem, mas são atrasados e não garantem um teto rígido em dólares.
  • Muitos comentaristas pedem verdadeiros limites rígidos de orçamento ou modelos pré-pagos, especialmente para indivíduos, estudantes e hobbistas.

Conselhos e alternativas

  • Dicas práticas: evite SELECT * em tabelas colunares grandes, use partições/clusters, filtre previamente para tabelas menores, teste em amostras e defina cotas conservadoras.
  • Alguns recomendam não usar cartões pessoais em grandes clouds, ou usar LLCs, provedores com teto de orçamento, ou alternativas auto-hospedadas / open source.