5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BigQueryのコスト最適化のベストプラクティス(要約)

Posted at

Cost optimization best practices for BigQuery

↑の記事が参考になったので簡単に要約しました。
詳細は元記事を読んでください。

コスト最適化(ストレージ編)

1. 必要なデータだけ残しとく

適切にexpirationを設定する。
datasetのexpirationを変えても既存のテーブルには反映されないから気をつける。

2. データの編集には注意する

90日間テーブルを編集しなければ、自動的に long-term storageに移行されて、storage金額は50%になる。streaming, copy, loadingとかすると、また active storage になって90日間は long-term storage にならないからそのあたりを考えて運用する。

1年に一回以上編集しないならば、BigQeuryのデータをGCSの Coldline class のGCSに移したほうがいい。

3. データの重複コピーは避ける

federated data access model 機能があるから、BigTableとか、GCSとか、CloudSQLのデータをBQにコピーするのは避ける。

4. Streaming Insertを使ってないかチェックする

Streaming Insert 使ってたら、ほんとにこの処理はリアルタイムである必要があるのかを考える。
例えば1時間ごとのloadでもよければbatch loadingに切り替える。

5. バックアップとデータリカバリについて理解しておく

BQは7日間のテーブル変更履歴を持つ。つまり、リカバリーバックアップなしにリバートできる。テーブルが消えても、履歴が消えるのはその2日後。

コスト最適化(クエリ編)

1. 必要なクエリだけ投げる

カラムナーテーブルだから必要なカラムだけ宣言する。 * とか使わない。

2. 事故的なニューマンエラー用の設定しておく

課金されるバイト数を制限してクエリ費用を抑える

3. キャッシュを賢く使う

デフォルトでキャッシュ設定はONになってて24時間有効

4. テーブルを分割する

分割テーブルの概要

5. クラスタリングでさらに節約

パーティションあと、最大4カラム指定してクラスタリングできる

クラスタテーブルの概要

flat-rate vs on-demand

月の請求が$10,000(約100万円)を超えたら、flat-rateに移行することを考えよう。
一定slotを購入し、あとは料金を気にせず好きなだけqueryを実行できる。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?