Bigtable Data Boost の概要

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

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

最適な用途

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

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

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

不得意分野

ポイント読み取り - 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 を使用できます。ワークロードやアプリケーションごとに個別のアプリ プロファイルを使用することをおすすめします。

整合性トークン

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

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

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

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

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

割り当てと課金

Data Boost は、独立したオンデマンド コンピューティング リソースであるサーバーレス プロセッシング ユニット(SPU)を使用して、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 リソースのモニタリング グラフをご覧ください。

Metrics Explorer で SPU 使用量である(data_boost/spu_usage_count)指標を確認すると、サーバーレス プロセッシング ユニット(SPU)の使用量をモニタリングできます。

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

制限事項

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

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

プレビューでは、以下はサポートされていません。

  • Google Cloud コンソールでの Data Boost アプリ プロファイルの作成と構成
  • BigQuery または Spark からの Bigtable データの読み取り

次のステップ