title: BigQueryのコスト最適化テクニック date: 2025-01-10 authors: [nomu] tags: [BigQuery, GCP, コスト最適化] summary: BigQueryの利用コストを削減するための実践的なテクニックを紹介します。 draft: false
はじめに
BigQueryは非常にパワフルなデータウェアハウスですが、使い方を誤ると予想外のコストが発生することがあります。今回は、コストを最適化するためのテクニックをご紹介します。
パーティショニングの活用
時系列データを扱う場合は、必ずパーティショニングを設定しましょう。
CREATE TABLE `project.dataset.events`
PARTITION BY DATE(event_timestamp)
AS
SELECT * FROM `project.dataset.raw_events`
これにより、クエリ時に必要なパーティションのみをスキャンするため、コストを大幅に削減できます。
クラスタリングとの組み合わせ
パーティショニングに加えて、クラスタリングを設定することで、さらにスキャン量を削減できます。
CREATE TABLE `project.dataset.events`
PARTITION BY DATE(event_timestamp)
CLUSTER BY user_id, event_type
AS
SELECT * FROM `project.dataset.raw_events`
SELECT * を避ける
必要なカラムのみを明示的に指定しましょう。
-- 悪い例
SELECT * FROM `project.dataset.large_table`
-- 良い例
SELECT user_id, event_type, event_timestamp
FROM `project.dataset.large_table`
まとめ
これらのテクニックを組み合わせることで、BigQueryのコストを50%以上削減できた事例もあります。ぜひ実践してみてください。