ビッグデータ分析サービスとして注目されている Google Cloud の BigQuery ですが、環境構築が不要で手軽に利用できることもあり、データ分析を行うプラットフォームとして多くの方に利用されています。一方で思わぬ出費にならないよう、正しく料金体系を理解しておくことが大切です。本稿では BigQuery の価格面と利用時に注意すべきポイントについてご紹介します。
BigQuery の料金体系
まずは、Google が発表している BigQuery の料金体系を表にまとめました。
< BigQuery の料金体系>
東京(asia-northeast)
課金対象 |
料金 |
詳細 |
アクティブストレージ |
$0.023 / GB |
毎月10GBまで無料。 |
長期保存 |
$0.016 / GB |
毎月10 GBまで無料 |
BigQuery Storage API |
Unavailable※ |
BigQuery Storage APIは無料枠に含まれません。 |
ストリーミング挿入 |
$0.012 / 200MB |
挿入に成功した行が対象課金となります。 最小サイズ1KBで各行が計算されます。 |
クエリ(オンデマンド) |
$6.00 / TB |
毎月1TBまで無料。 |
クエリ(月定額) |
$12,000 / 500 slots |
追加スロットは500スロット単位で購入できます。 |
クエリ(年定額) |
$10,200 / 500 slots |
追加スロットは500スロット単位で購入できます。 |
※米国(マルチリージョン)の場合、$0.010 / GB
引用:「Google Cloud BigQuery 」の料金
BigQuery の大きな特徴は、上表にまとめた項目だけを課金対象としており、それ以外の操作に関しては課金が発生しないということです。たとえば、ストリーミングインサートではバッチ処理のようなインポート・エクスポートには料金が発生しません。
さらに、データを1TB保存したとしても、月額料金はわずか$23.00(約2,550円)です。50TBのデータをクエリで処理したとしても$60.00(約6,655円)です。加えて BigQuery では毎月最初の1TBのクエリ処理は無料になるので、想像以上に低価格なビッグデータ分析サービスということが分かります。
BigQuery 無料のオペレーション
次の表にまとめられている BigQuery のオペレーションは、どのロケーションを選択したとしても無料で使えます。
オペレーション |
詳細 |
データの読み込み |
BigQuery でデータセットを作成するときは、データのロケーションを選択する必要があります。US を選択すると、他のリージョンにある Cloud Storage バケットからデータセットのテーブルにデータを読み込むことができます。現在のところ、米国以外のリージョンのデータを米国のデータセットに読み込む場合には、インターネット下りの料金は発生しません。
US以外のロケーションを選択する場合は、次のいずれかを行う必要があります l そのリージョンの Cloud Storage バケット(マルチリージョン バケット、またはデータセットと同じリージョンにあるリージョン バケット)からデータを読み込みます。 l そのリージョンのバケットにデータをコピーします。 |
データのコピー |
テーブルのコピーは無料ですが、新しいテーブルやコピーしたテーブルの保存には料金が発生します。 |
データをエクスポートする |
BigQuery から Cloud Storage にデータをエクスポートする場合、エクスポート オペレーションは無料ですが、Cloud Storage へのデータの保存では料金が発生します。 |
データセットの削除 |
データセットの削除は無料です。 |
テーブル、ビュー、パーティション、関数の削除 |
テーブルの削除、ビューの削除、個々のテーブル パーティションの削除、ユーザー定義関数の削除は無料です。 |
メタデータオペレーション |
list、get、patch、update、delete の呼び出しは無料です。たとえば、データセットの一覧表示、データセットのアクセス制御リストの更新、テーブルの説明文の更新、データセット内のユーザー定義関数の一覧表示などが該当します。 |
疑似列の読み取り |
次の擬似列のコンテンツに対するクエリは無料です。 l _TABLE_SUFFIX - ワイルドカード テーブルにクエリを実行する場合 l 標準 SQL でテーブル デコレータのセマンティクスを実現する場合 l _PARTITIONDATE - 取り込み時間パーティション分割テーブルにクエリを実行する場合 l _PARTITIONTIME - 取り込み時間パーティション分割テーブルにクエリを実行する場合 l _FILE_NAME - 外部データソースのテーブルにクエリを実行する場合 |
メタテーブルの読み取り |
次のメタテーブルのコンテンツに対するクエリは無料です。 l __PARTITIONS_SUMMARY__ - パーティション分割テーブルまたは取り込み時間パーティション分割テーブルのパーティションに関するメタデータを取得する場合 l __TABLES_SUMMARY__ - データセットのテーブルとビューのメタデータを取得する場合 |
UDFの作成、置換、呼び出し |
現時点では、永続的なユーザー定義関数(UDF)の作成、置換、呼び出しは無料です。現在、永続的 UDF はベータ版リリースです。料金設定は変更されることがあります。 |
BigQuery を利用する際の注意ポイント
では最後に、 BigQuery を利用するにあたって価格面で注意すべきポイントを紹介します。
1. 「SELECT *」を避ける
「SELECT *」の使用はデータを照会するにあたって、最も費用がかかる方法です。これを使用すると BigQuery はテーブル内のすべての列をフルスキャンします。データのテスト、または探索には「SELECT *」ではなく、データプレビューオプションを使用しましょう。
2. プレビューオプションを使用してデータをサンプリングする
テーブルデータを検索またはプレビューするためにクエリを実行してはいけません。データを調べる場合はテーブルプレビューオプションを使用すると、割り当てに影響することなく無料でデータを表示できます。
3. クエリを実行する前に料金を見積もる
クエリを実行する前に、プレビューして費用を見積もります。クエリは読み取られえたバイト数に基づいて課金されます。クエリを実行する前に費用を見積もるには、以下の操作を行ってください。
- Cloud Console または従来のウェブ UI でクエリ検証ツールを表示する
- Google Cloud Platform 料金計算ツールを使用する
- 以下を使用して、ドライランを実行する
- CLI の --dry_run フラグ
- dryRun パラメータ(API を使用してクエリジョブを送信する場合)
BigQuery は注意ポイントさえしっかりと押さえていれば、かなりお得に利用できるビッグデータ分析サービスです。ビッグデータ分析に関するあらゆるニーズに応えるための機能が揃っています。
まとめ
いかがでしょうか。今後ビッグデータ分析に取り組みたいという場合は、プラットフォームやツールの選定が重要になります。まずは手軽に始められ大規模なデータプラットフォームとしても利用できる BigQuery は大変おすすめです。
また、電算システムでは、GCP資格所有者による独自トレーニングなど BiqQuery を快適に利用するために必要な Google Cloud Platform 向けに各種GCPサービスをご提供しています。是非お気軽にご相談ください。
- カテゴリ:
- Google Cloud Platform
- キーワード:
- GCP