Bigtable Data Boost の概要

Data Boost は、アプリケーション トラフィックを処理するクラスタのパフォーマンスに影響を与えることなく、Bigtable データに対して高スループットの読み取りジョブを実行するように設計されたサーバーレス コンピューティング サービスです。これにより、コア アプリケーションがコンピューティングにクラスタノードを使用し続けながら、サーバーレス コンピューティングを使用して大規模な読み取りジョブとクエリを送信できます。サーバーレス コンピューティングの SKU と料金は、プロビジョニングされたノードの SKU と料金とは別です。Data Boost では、書き込みリクエストや削除リクエストを送信できません。

このドキュメントでは、Data Boost と、その使用するタイミングと使用方法について説明します。このページを読む前に、インスタンス、クラスタ、ノードについて理解しておく必要があります。

最適な用途

Data Boost は、データ分析とデータ処理のワークロードに最適です。Data Boost を使用して分析や処理のトラフィックを分離することで、分析ワークロードに対応するためにクラスタの容量やノード数を調整する必要がなくなります。Data Boost を使用して単一のクラスタ上で高スループットの分析ジョブを実行しながら、進行中のアプリケーション トラフィックをクラスタ ノード経由でルーティングできます。

Data Boost の理想的なユースケースは次のとおりです。

  • データ拡充、分析、アーカイブ、オフライン ML モデルのトレーニング、お客様のサードパーティ パートナーによる取り込みを目的とする、Bigtable から Cloud Storage へのエクスポートまたは ETL パイプライン ジョブのスケジュールまたはトリガー
  • インプレース集計、MDM のルールベースの変換、または ML ジョブをサポートする短いスキャンまたはバッチ読み取りプロセスに Dataflow などのツールを使用する ETL
  • Bigtable Spark コネクタを使用して Bigtable データを読み取る Spark アプリケーション

不得意分野

ポイント読み取り - Data Boost は、単一行に対して送信される読み取りリクエストであるポイント読み取りオペレーションには最適なオプションではありません。これにはバッチのポイント読み取りも該当します。ご請求の仕組みにより、多くの単一行ポイント読み取りは 1 回の長いスキャンよりもかなり高額になります。

書き込み直後のデータの読み取り - Data Boost でデータを読み取る場合、最新の 30 分間に書き込まれたデータの一部も読み取るとは限りません。これは、インスタンスがレプリケーションを使用していて、読み取り元とは異なるリージョンのクラスタに書き込まれたデータを読み取る場合に特に当てはまります。詳細については、整合性トークンをご覧ください。

レイテンシの影響を受けやすいワークロード - Data Boost はスループット用に最適化されているため、Data Boost を使用する場合の読み取りレイテンシは、クラスタとノードを使用して読み取る場合よりも遅くなります。このため、Data Boost はアプリケーション サービング ワークロードには適していません。

Data Boost と互換性のないワークロード、構成、機能の詳細については、制限事項をご覧ください。

Data Boost アプリ プロファイル

Data Boost を使用するには、標準のアプリ プロファイルではなく、Data Boost アプリ プロファイルを使用して読み取りリクエストを送信します。

標準アプリ プロファイルでは、アプリ プロファイルを使用するリクエストのルーティング ポリシー優先度レベル、および単一行のトランザクションを許可するかどうかを指定できます。標準アプリ プロファイルを使用して送信されたトラフィックはクラスタにルーティングされ、そのクラスタのノードがトラフィックをディスクに転送します。詳しくは、標準アプリ プロファイルの概要をご覧ください。

一方、Data Boost アプリ プロファイルでは、インスタンスのクラスタのいずれかに単一クラスタ ルーティング ポリシーを構成します。このアプリ プロファイルを使用するトラフィックは、クラスタのノードではなくサーバーレス コンピューティングを使用します。

新しい Data Boost アプリ プロファイルを作成することも、Data Boost を使用するように標準のアプリ プロファイルを変換することもできます。ワークロードまたはアプリケーションごとに個別のアプリ プロファイルを使用することをおすすめします。

整合性トークン

読み取りリクエストの 35 分以上前にターゲット クラスタに書き込まれたデータまたは複製されたデータは、Data Boost で読み取ることができます。

整合性トークンを作成して使用することで、Data Boost ワークロードを開始する前に、特定の書き込みジョブまたは期間のデータが Data Boost で読み取り可能であることを確認できます。ワークフローの例は次のとおりです。

  1. テーブルにデータを書き込む
  2. 整合性トークンを作成する。
  3. DataBoostReadLocalWrites モードでトークンを送信して、ターゲット クラスタの Data Boost が書き込みを読み取れるタイミングを判断します。

必要に応じて、まず StandardReadRemoteWrites モードで整合性トークンを送信して、Data Boost の整合性を確認する前にレプリケーションの整合性を確認できます。

詳しくは、CheckConsistencyRequest の API リファレンスをご覧ください。

割り当てと課金

Data Boost の使用量はサーバーレス プロセッシング ユニット(SPU)で測定されます。1,000 SPU = 1 ノードのパフォーマンスです。プロビジョニング済みのノードとは異なり、Data Boost を使用する場合にのみ SPU に対して料金が発生します。各リクエストには最低でも 60 SPU 秒分の料金が発生し、1 秒あたり最小で 10 SPU 分が課金されます。Data Boost の料金の詳細については、Bigtable の料金をご覧ください。

ノードの割り当てや料金とは別に数量に基づき割り当てられ、SPU の料金が発生します。

利用条件の指標

Data Boost は高スループットのスキャン用に設計されており、ワークロードは Data Boost の使用に対応している必要があります。標準のアプリ プロファイルを Data Boost を使用できるように変換する前、または既存のワークロードに Data Boost アプリ プロファイルを作成する前に、Data Boost の適格性に関する指標を表示して、構成と使用が必要な条件を満たしていることを確認してください。制限事項もご確認ください。

モニタリング

Data Boost トラフィックをモニタリングするには、Google Cloud コンソールの Bigtable モニタリング ページで Data Boost アプリ プロファイルの指標を確認します。アプリ プロファイルで使用可能な指標の一覧については、Bigtable リソースのモニタリング グラフをご覧ください。

Bigtable Monitoring ページの [アプリ プロファイル] タブで SPU 使用量(data_boost/spu_usage_count)指標を確認すると、サーバーレス プロセッシング ユニット(SPU)の使用量をモニタリングできます。

Data Boost の使用を開始した後も、アプリ プロファイルの利用条件に関する指標を引き続きモニタリングすることもできます。

制限事項

Data Boost では、次のワークロード プロパティとリソース構成はサポートされていません。

  • 書き込みと削除
  • 大部分がポイント読み取り(単一行の読み取り)であるトラフィック
  • クラスタあたり 1 秒につき 1,000 件以上の読み取り
  • リバース スキャン
  • 変更ストリーム
  • リクエスト優先度
  • 複数クラスタのルーティング
  • 単一行のトランザクション
  • リージョン エンドポイント
  • HDD インスタンス
  • Bigtable 用の GoogleSQL クエリ
  • Bigtable Studio クエリビルダーのクエリ
  • CMEK 暗号化を使用するインスタンス
  • 互換性のないクライアント ライブラリ。Java 用 Bigtable クライアント バージョン 2.31.0 以降を使用する必要があります。

    • BigtableIO を使用して Bigtable データを読み取る Dataflow ジョブの場合は、Apache Beam バージョン 2.54.0 以降を使用する必要があります。
    • CloudBigtableIO を使用して Bigtable データを読み取る Dataflow ジョブの場合は、bigtable-hbase-beam バージョン 2.14.1 以降を使用する必要があります。プレビュー版では、以下の機能はサポートされていません。
  • BigQuery からの Bigtable データの読み取り

    次のステップ

  • アプリ プロファイルを作成または更新する。

  • Bigtable Beam コネクタの詳細を確認する。

  • Bigtable Spark コネクタを使用する。