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 アプリ プロファイルでは、インスタンスのクラスタの 1 つに単一クラスタ ルーティング ポリシーを構成し、そのアプリ プロファイルを使用するトラフィックでは、クラスタのノードの代わりにサーバーレス コンピューティングを使用します。
新しい Data Boost アプリ プロファイルを作成することも、Data Boost を使用するように標準のアプリ プロファイルを変換することもできます。ワークロードやアプリケーションごとに個別のアプリ プロファイルを使用することをおすすめします。
整合性トークン
読み取りリクエストの 35 分以上前にターゲット クラスタに書き込まれたデータまたはレプリケートされたデータは、Data Boost で読み取ることができます。
整合性トークンを作成して使用することで、Data Boost ワークロードを開始する前に、特定の書き込みジョブまたは期間のデータが Data Boost で読み取り可能であることを確認できます。ワークフローの例を以下に示します。
- テーブルにデータを書き込む
- 整合性トークンを作成する。
DataBoostReadLocalWrites
モードでトークンを送信して、ターゲット クラスタの Data Boost が書き込みを読み取ることができるタイミングを判断します。
必要に応じて、Data Boost の整合性を確認する前に、まず StandardReadRemoteWrites
モードで整合性トークンを送信して、レプリケーションの整合性を確認できます。
詳しくは、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 以降を使用する必要があります。
BigtableIO
を使用して Bigtable データを読み取る Dataflow ジョブの場合は、Apache Beam バージョン 2.54.0 以降を使用する必要があります。CloudBigtableIO
を使用して Bigtable データを読み取る Dataflow ジョブの場合は、bigtable-hbase-beam
バージョン 2.14.1 以降を使用する必要があります。
以下はプレビュー版ではサポートされていません。
- Google Cloud コンソールでの Data Boost アプリ プロファイルの作成と構成
- BigQuery からの Bigtable データの読み取り