Bigtable Data Boost の概要
Data Boost は、アプリケーション トラフィックを処理するクラスタのパフォーマンスに影響を与えることなく、Bigtable データに対して高スループットの読み取りジョブを実行するように設計されたサーバーレス コンピューティング サービスです。これにより、コア アプリケーションがコンピューティングにクラスタノードを使用し続けながら、サーバーレス コンピューティングを使用して大規模な読み取りジョブとクエリを送信できます。サーバーレス コンピューティングの SKU と料金は、プロビジョニングされたノードの SKU と料金とは別です。Data Boost では、書き込みリクエストや削除リクエストを送信できません。
このドキュメントでは、Data Boost と、その使用するタイミングと使用方法について説明します。このページを読む前に、インスタンス、クラスタ、 ノードについて理解しておく必要があります。
エディションの要件
Enterprise エディションまたは Enterprise Plus エディションを使用している場合は、Data Boost を利用できます。Enterprise Plus エディションでは、次の追加機能が提供されます。
- SQL クエリのサポート: Data Boost でアクセスしたデータのクエリを実行する
- HDD と階層化ストレージへのアクセス: より包括的な分析を行うために、 Data Boost のアクセス範囲を SSD データだけでなく Bigtable クラスタ上のすべてのデータに拡張する
詳細については、エディションの概要をご覧ください。
最適な用途
Data Boost は、データ分析とデータ処理のワークロード に最適です。 Data Boost を使用して分析や処理のトラフィックを分離することで、分析ワークロードに対応するためにクラスタの容量やノード数を調整する必要がなくなります。Data Boost を使用して単一のクラスタ上で高スループットの分析ジョブを実行しながら、進行中のアプリケーション トラフィックをクラスタ ノード経由でルーティングできます。
Data Boost の理想的なユースケースは次のとおりです。
- データ拡充、分析、アーカイブ、オフライン ML モデルのトレーニング、お客様のサードパーティ パートナーによる取り込みを目的とする、Bigtable から Cloud Storage へのエクスポートまたは ETL パイプライン ジョブのスケジュールまたはトリガー
- インプレース集計、MDM のルールベースの変換、または ML ジョブをサポートする短いスキャンまたはバッチ読み取りプロセスに Dataflow などのツールを使用する ETL
- Bigtable Spark コネクタを使用して Bigtable データを読み取る Spark アプリケーション
- BigQuery 外部テーブルを使用して Bigtable データを読み取るアドホック クエリとスケジュールされた分析ジョブ。
- HDD または階層化ストレージに保存されている、アクセス頻度の低い履歴データに対する長時間実行の分析(Enterprise Plus エディションのみ)。
不得意分野
ポイント読み取り - 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 が書き込みを読み取れるタイミングを判断します。
必要に応じて、最初に StandardReadRemoteWrites モードで整合性トークンを送信して、Data Boost
の整合性を確認する前にレプリケーションの整合性を確認できます。
詳しくは、CheckConsistencyRequest の API リファレンスをご覧ください。
割り当てと課金
Data Boost の使用量は、サーバーレス プロセッシング ユニット(SPU)で測定されます。 1,000 SPU は 1 ノードのパフォーマンスに相当します。HDD または階層化ストレージに対して実行する場合、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 トラフィックをモニタリングするには、 コンソールの Bigtable システム分析情報ページで Google Cloud Data Boost アプリプロファイルの指標を確認します。アプリ プロファイルで使用できる指標の一覧については、 Bigtable リソースのシステム分析情報グラフをご覧ください。
Bigtable システム分析情報ページの [アプリ プロファイル] タブで SPU 使用量(data_boost/spu_usage_count)指標を確認すると、サーバーレス
プロセッシング ユニット(SPU)の使用量をモニタリングできます。
Data Boost の使用を開始した後も、アプリ プロファイルの利用条件 に関する指標 を引き続きモニタリングすることもできます。
制限事項
次のワークロード プロパティとリソース構成は、Data Boost ではサポートされていません。
- 書き込みと削除
- 大部分がポイント読み取り(単一行の読み取り)であるトラフィック
- クラスタあたり 1 秒につき 1,000 件以上の読み取り
- リバース スキャン
- 変更ストリーム
- リクエスト優先度
- 複数クラスタのルーティング
- 単一行のトランザクション
- リージョン エンドポイント
- 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 以降を使用する必要があります。
次のステップ
- アプリ プロファイルを作成または更新する。
- Bigtable Beam コネクタについて確認する。
- Bigtable Spark コネクタを使用する。
- BigQuery で Bigtable データのクエリと分析を行う。