サーバーレスなビッグデータ分析サービスとして注目されている Google Cloud (旧 GCP )の Google BigQuery™ ( 以降BigQueryと略 )ですが、環境構築が不要で手軽に利用できることもあり、データ分析を行うプラットフォームとして多くの方に利用されています。一方で思わぬ出費にならないよう、正しく料金体系を理解しておくことが大切です。本稿では BigQuery の価格面と利用時に注意すべきポイントについてご紹介します。
BigQuery の料金体系
まずは、Google が発表している BigQuery の料金体系を表にまとめました。
< BigQuery の料金体系>
東京(asia-northeast)
カテゴリ |
課金対象 |
料金 |
詳細 |
ストレージ
|
アクティブストレージ |
$0.023 / GB |
毎月10GBまで無料。 |
長期保存 |
$0.016 / GB |
毎月10 GBまで無料 |
|
データ取り込み |
BigQuery Storage API |
$0.03 / GB |
毎月最初の 2 TB まで無料 |
|
ストリーミング挿入 |
$0.012 / 200MB |
挿入に成功した行が対象課金となります。 最小サイズ1KBで各行が計算されます。 |
データ分析 |
クエリ(オンデマンド) |
$6.00 / TB |
毎月1TBまで無料。 |
|
クエリ(月定額) |
$2,400 / 100 slots |
追加スロットは100スロット単位で購入できます。 |
|
クエリ(年定額) |
$2,040 / 100 slots |
追加スロットは100スロット単位で購入できます。 |
引用:「Google Cloud BigQuery 」の料金
BigQuery の大きな特徴は、基本的には上表にまとめた項目だけを課金対象としており、それ以外の操作に関しては基本的には課金が発生しないということです。たとえば、上記料金表のように「ストリーミング挿入」では料金が発生しますが、次の章で紹介するバッチ処理(一括処理)としての「バッチ読み込み」「バッチ エクスポート」を利用したインポート・エクスポートには料金が発生しません。
さらに、データを1TB保存したとしても、月額料金はわずか$23.00(約2,550円)です。5TBのデータをクエリで処理したとしても$30.00(約3,448円)です。加えて BigQuery では毎月最初の10GBのストレージと1TBのクエリ処理は無料になるので、想像以上に低価格なビッグデータ分析サービスということが分かります。
BigQuery 無料のオペレーション
次の表にまとめられている BigQuery のオペレーションは、どのロケーションを選択したとしても無料で使えます。
オペレーション |
詳細 |
データの読み込み |
共有スロットプールの使用は無料。定額料金を選択すると、保証された容量を獲得できます。データが BigQuery に読み込まれると、ストレージの料金が発生します。 |
データのコピー |
テーブルのコピーは無料ですが、新しいテーブルやコピーしたテーブルの保存には料金が発生します。 |
データをエクスポートする |
BigQuery から Cloud Storage にデータをエクスポートする場合、エクスポート オペレーションは無料ですが、Cloud Storage へのデータの保存では料金が発生します。 |
データセットの削除 |
データセットの削除は無料です。 |
テーブル、ビュー、パーティション、関数の削除 |
テーブルの削除、ビューの削除、個々のテーブル パーティションの削除、ユーザー定義関数の削除は無料です。 |
メタデータオペレーション |
list、get、patch、update、delete の呼び出しは無料です。たとえば、データセットの一覧表示、データセットのアクセス制御リストの更新、テーブルの説明文の更新、データセット内のユーザー定義関数の一覧表示などが該当します。 |
疑似列の読み取り |
次の擬似列のコンテンツに対するクエリは無料です。 l _TABLE_SUFFIX - ワイルドカード テーブルにクエリを実行する場合 l _PARTITIONDATE - 取り込み時間パーティション分割テーブルにクエリを実行する場合 l _PARTITIONTIME - 取り込み時間パーティション分割テーブルにクエリを実行する場合 l _FILE_NAME - 外部データソースのテーブルにクエリを実行する場合 |
メタテーブルの読み取り |
次のメタテーブルのコンテンツに対するクエリは無料です。 l __PARTITIONS_SUMMARY__ - パーティション分割テーブルまたは取り込み時間パーティション分割テーブルのパーティションに関するメタデータを取得する場合 l __TABLES_SUMMARY__ - データセットのテーブルとビューのメタデータを取得する場合 |
UDFの作成、置換、呼び出し |
永続的な UDF の作成、置換、呼び出しは無料です。 |
BigQuery を利用する際の注意ポイント
では最後に、 BigQuery を利用するにあたって価格面で注意すべきポイントを紹介します。
1. 「SELECT *」を避ける
「SELECT *」の使用はデータを照会するにあたって、最も費用がかかる方法です。これを使用すると BigQuery はテーブル内のすべての列をフルスキャンします。データのテスト、または検索には「SELECT *」ではなく、データプレビューオプションを使用し、実際にクエリを実行する際には必要な列のみを選択して実行するようにしましょう。
2. プレビューオプションを使用してデータをサンプリングする
テーブルデータを探索またはプレビューするためにクエリを実行してはいけません。データを調べる場合はテーブルプレビューオプションを使用すると、割り当てに影響することなく無料でデータを表示できます。
BigQuery は、次のデータ プレビュー オプションをサポートしています。
- Cloud Console のテーブルの詳細ページで、[プレビュー] タブをクリックしてデータをサンプリングします。
- bq コマンドライン ツールで、bq head コマンドを使用して、プレビューする行数を指定します。
- API で tabledata.list を使用して、指定した行のセットからテーブルデータを取得する。
3. クエリを実行する前に料金を見積もる
クエリを実行する前に、プレビューして費用を見積もります。クエリは読み取られたバイト数に基づいて課金されます。クエリを実行する前に費用を見積もるには、以下の操作を行ってください。
- Cloud Console でクエリ検証ツールを表示する
- Google Cloud Platform 料金計算ツールを使用する
- 以下を使用して、ドライランを実行する
- bq コマンドライン ツールの --dry_run フラグ
- dryRun パラメータ(API を使用してクエリジョブを送信する場合)
4. 課金されるバイト数を制限してクエリ費用を抑える
課金される最大バイト数の設定を使用して、クエリ費用を抑えることができます。課金される最大バイト数を設定した場合は、クエリが実行される前に、クエリで読み取られるバイト数が推定されます。推定バイト数が上限を超えると、クエリが失敗し、料金は発生しません。
5. クラスタ化テーブルまたはパーティション分割テーブルの使用
クラスタリングとパーティショニングにより、クエリで処理されるデータの量を削減することにより、クエリ費用を抑えることができます。クラスタ化テーブルにクエリを実行する場合、そのクエリにクラスタ化された列のフィルタが含まれていると、BigQuery はフィルタ式とブロック メタデータを使用して、クエリでスキャンされるブロックをプルーニングします。パーティション分割テーブルをクエリすると、パーティショニング列のフィルタがパーティションのプルーニングに使用され、クエリの費用を抑えることができます。
6. ダッシュボードを使用して費用を表示し、監査ログを照会する
BigQuery に課金データをエクスポートすると、Google データポータルなどのツールで可視化できます。また、監査ログを BigQuery にストリーミングして、ユーザー別のクエリ費用などの使用パターンに関するログを分析することもできます。
7. 大容量の結果セットの費用を検討する
大容量のクエリ結果を宛先テーブルに書き込む場合は、デフォルトのテーブル有効期限を適用して不要になったデータを削除します。BigQuery ストレージで大容量の結果セットを維持するには費用がかかります。結果に永続的にアクセスする必要がなければ、デフォルトのテーブル有効期限を使用して自動的にデータを削除するようにします。
BigQuery は注意ポイントさえしっかりと押さえていれば、かなりお得に利用できるサーバーレスなビッグデータ分析サービスです。ビッグデータ分析に関するあらゆるニーズに応えるための機能が揃っています。
まとめ
いかがでしょうか。今後ビッグデータ分析に取り組みたいという場合は、プラットフォームやツールの選定が重要になります。まずは手軽に始められ大規模でサーバーレスなデータプラットフォームとしても利用できる BigQuery は大変おすすめです。
また、電算システムでは、Google Cloud 認定資格所有者によるGoogle Cloud 技術コンサルティングなど BigQuery を快適に利用するために必要な Google Cloud 向けの各種Google Cloud サービスをご提供しています。是非お気軽にご相談ください。
- カテゴリ:
- Google Cloud(GCP)
- キーワード:
- Google Cloud