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%以上削減できた事例もあります。ぜひ実践してみてください。