BigQuery will happily scan your entire table and bill you for it without a single warning. The dangerous part is the queries that do this aren't obviously wrong. They pass review, they work fine in dev, and then they run in production against a 2TB table and you're looking at a bill you weren't expecting.
The patterns that cause it are pretty consistent. SELECT * when you only needed three columns. No partition filter on a partitioned table. Wildcard table queries with no date range. Joins where the larger table isn't filtered before the join. Unbounded aggregations on wide tables.
Built SlowQL to catch these statically before anything runs. You point it at your sql files and it flags the cost traps along with security issues, missing WHERE clauses, injection patterns and more. Works offline, zero dependencies, plugs into CI.
171 rules total.
pip install slowql
What's the most unexpected BigQuery bill you've seen from a query that looked totally reasonable?