Storage Write API の概要
BigQuery Storage Write API は、レコードをリアルタイムで BigQuery にストリーミングするために使用できる統合データ取り込み API です。Storage Write API は、gRPC エンドポイントと REST エンドポイントの両方で使用できます。
ストリーミング アプローチを選択する
Storage Write API は、gRPC ストリーミングまたは REST エンドポイントの 2 つの方法で使用できます。gRPC ストリーミングは、長期間の接続と継続的なストリーミングに最適ですが、REST エンドポイントは、エフェメラル、ステートレス、制約のある環境に最適です。
新しいワークロードでは、次の理由から gRPC ストリーミングを使用することをおすすめします。
- 効率的なプロトコル。gRPC ストリーミングは、REST over HTTP よりも効率的です。また、プロトコル バッファのバイナリ形式と Apache Arrow カラム形式もサポートしています。これは JSON よりも効率的な転送方式です。書き込みリクエストは非同期ですが、順序指定が保証されます。
- 低コスト。gRPC ストリーミングは、REST よりも大幅に低コストです。さらに、1 か月あたり最大 2 TiB を無料で取り込むことができます。
- 1 回限りの配信セマンティクス。gRPC ストリーミングは、ストリーム オフセットを使用して 1 回限りのセマンティクスをサポートします。クライアントがレコードの追加時にストリーム オフセットを提供しても、ストリーム内に同じオフセットを持つ 2 つのメッセージを書き込むことはありません。
- ストリームレベルのトランザクション。gRPC ストリーミングを使用すると、ストリームにデータを書き込み、データを 1 つのトランザクションとして commit できます。commit オペレーションが失敗した場合、オペレーションを安全に再試行できます。
- ストリーム間でのトランザクション。gRPC ストリーミングを使用すると、複数のワーカーが独自のストリームを作成して、個別にデータを処理できます。すべてのワーカーが完了したら、すべてのストリームをトランザクションとして commit できます。
- スキーマ更新の検出。gRPC ストリーミングでは、クライアントがストリーミング中に基になるテーブル スキーマが変更された場合、API はクライアントに通知します。クライアントは、更新されたスキーマを使用して再接続するか、引き続き既存の接続に書き込むかを決定できます。
次の図は、ストリーミング アプローチを選択する際に注意すべきその他の技術的な詳細を示しています。
次のステップ
- BigQuery Storage Write API(gRPC)の詳細を確認する。
- BigQuery Storage Write API(REST)の詳細を確認する。