In Google BigQuery it is cheap to store a GB of data compared to run a query against 1 GB of data. To reduce your billing create multiple tables instead of one table to store your data. For example: You can create tables Order_2011, Order_2012, Order_2013 to store orders at year level. Most of the times the query is run against latest data. If you need historical data union the tables or use table wild card characters.