BigQueryのクエリ料金メモ
BigQueryのクエリ課金にビビっていたので、課金ルールを確認した。
- テーブルスキャンした対象の列のデータ量に応じて課金される
SELECT *
やると全列分に課金されるので、必要な分だけに絞る。
- インデックスはないのでフルスキャン
- whereに何書いてもフルスキャンされる
- テーブル分割することでスキャン対象を絞ることができる
- キャッシュ
- クエリの結果は匿名データセット(=キャッシュ)に保存される
- クエリはまずキャッシュがあるかチェックする
- キャッシュを返す場合はコストゼロ
- dry-runで走査するデータ量を確認できる
- dry-runはbqコマンドのオプション指定で実行できる
- 2021-01-05時点でconsoleからはできない模様 → でもクエリ実行前に走査量は確認できる
- link