Advertencia: cargo de $14k en BigQuery en 2 horas

Un investigador que consultaba BigQuery de Google sobre el conjunto de datos público HTTP Archive recibió inesperadamente un cargo de $14,000 en dos horas, lo que provocó un escrutinio más amplio sobre cómo los servicios de datos en la nube exponen (o esconden) los costos. Los comentaristas explican que el conjunto de datos es gratuito pero que las consultas se facturan por terabyte escaneado, y que una consulta mal optimizada y repetida probablemente leyó petabytes de datos; aun así, muchos sostienen que la interfaz de Google, la falta de topes de gasto duros y los indicadores de costo vagos hacen que estos errores sean demasiado fáciles. Otros contraargumentan que los precios y advertencias de BigQuery están documentados y que los usuarios comparten la responsabilidad de establecer cuotas y comprender la facturación, usando este incidente para resaltar el riesgo más amplio de precios opacos basados en el uso para individuos y pequeñas startups.

Resumen del incidente

  • Un usuario ejecutó consultas históricas contra el conjunto de datos público HTTP Archive en BigQuery e incurrió en cargos de ~$14k en ~2 horas.
  • La carga de trabajo parece haber realizado repetidamente escaneos completos de tablas grandes (del orden de varios petabytes escaneados en total), probablemente mediante un bucle sobre muchos meses/sitios.
  • Según se informó, el soporte inicial se negó a condonar la factura; más adelante en el hilo, el usuario dice que Google comenzó a ayudar a resolverlo.

Cómo funciona el precio de BigQuery (según el hilo)

  • El almacenamiento de los conjuntos de datos públicos está cubierto por Google; los usuarios pagan por el procesamiento de consultas.
  • El precio bajo demanda de BigQuery se cobra por TiB de datos escaneados, con un pequeño nivel gratuito.
  • La interfaz muestra los bytes estimados procesados antes de ejecutar una consulta, pero esto se puede pasar por alto fácilmente y se muestra en TB/PB, no en dólares.

Responsabilidad y culpa

  • Un bando sostiene que esto es principalmente un error del usuario: la documentación de BigQuery y la guía de “getting started” de HTTP Archive mencionan la facturación por byte y los límites del nivel gratuito.
  • Otro bando argumenta que, aunque el usuario cometió errores (por ejemplo, SELECT *, filtros LIKE, sin límites, consultas en bucle), el diseño del sistema hace que los errores costosos sean demasiado fáciles y que las advertencias sean insuficientes.

UI/UX y transparencia de costos

  • Varios comentarios critican la abstracción de BigQuery de “TB escaneados” y los pequeños indicadores de costo poco prominentes como hostiles para el usuario o cercanos a un “dark pattern”.
  • Varios sugieren que la interfaz debería mostrar explícitamente una estimación en dólares y lanzar una advertencia bloqueante para consultas muy costosas (por ejemplo, “esto puede costar $14k — ¿confirmar?”).

Cuotas, topes y salvaguardas

  • BigQuery admite cuotas personalizadas (por ejemplo, un máximo de TB escaneados por consulta/usuario) y límites a nivel de proyecto, pero no son obvios ni topes duros de gasto.
  • Existen alertas de facturación de GCP y notificaciones de presupuesto, pero llegan con retraso y no pueden garantizar un techo estricto en dólares.
  • Muchos comentaristas piden límites de presupuesto realmente duros o modelos prepago, especialmente para individuos, estudiantes y aficionados.

Consejos y alternativas

  • Consejos prácticos: evita SELECT * en tablas columnares enormes, usa particiones/clústeres, prefiltra en tablas más pequeñas, prueba con muestras y establece cuotas conservadoras.
  • Algunos recomiendan no usar tarjetas personales en grandes nubes, o usar LLCs, proveedores con tope de presupuesto o alternativas autoalojadas / de código abierto.