高QPSでエンドポイントのスループットをスケーリングする
プレビュー
この機能は パブリック プレビュー段階です。
デフォルトでは、標準エンドポイントはインデックスのサイズに応じて20~200 QPSをサポートしています。検索バー、レコメンデーションシステム、エンティティマッチングのようなリアルタイムアプリケーションは、多くの場合、100〜1,000以上のQPSを必要とします。標準エンドポイントのみ、ターゲットQPSを設定できます。Databricks は、そのスループットレベルに最適に一致するようにインフラストラクチャをプロビジョニングします(ベストエフォートであり、保証されません)。
ターゲットQPSを設定すると、追加の容量がプロビジョニングされ、エンドポイントのコストが増加します。この追加のキャパシティには、実際のクエリトラフィックに関わらず課金されます。スループットのスケーリングはベストエフォートであり、パブリックプレビュー期間中は保証されません。
高QPSを使用するのは、次のような場合です:
- お客様のアプリケーションには、50 QPSを超える持続的なスループットが必要です。
- 通常の負荷時に429 (リクエストが多すぎます) エラーが発生します。
- トラフィックが増加すると、平均利用率が低く見える場合でも、レイテンシは低下します。
要件
- High QPSは標準エンドポイントでのみ利用可能です。ストレージ最適化エンドポイントはサポートされていません。
- 高QPSの本番運用ワークロード向けに、サービスプリンシパル(OAuth)認証を使用します。サービスプリンシパルのトラフィックは、高QPSワークロード向けに構築されたパフォーマンス最適化ネットワークを経由します。パーソナルアクセストークン(PAT)は、数十QPSに制限されたネットワークを介してルーティングされます—これはプロトタイピングには適していますが、本番運用には適していません。「OAuthトークンを使用したサービスプリンシパル」を参照してください。
ターゲットQPSを設定する
新しいエンドポイントを作成する際、または既存のエンドポイントを更新する際に、ターゲットQPSを設定します。ターゲットスループットに最適に一致させるために必要な追加容量は、自動的にプロビジョニングされます。Public Preview では、スループットのスケーリングはベストエフォートであり、保証されません:実際の QPS は、インデックスのサイズ、ベクトルの次元数、クエリーの複雑さ、およびフィルターの使用状況によって異なります。
- Databricks UI
- Python SDK
- REST API
新しいエンドポイントを作成する際:
-
左側のサイドバーで、 コンピュート をクリックします。
-
「**AI Search**」タブをクリックし、「**エンドポイントを作成**」をクリックします。

-
「高度な設定」で、ターゲットQPS値を入力してください。

既存のエンドポイントを更新する際:
-
エンドポイントの詳細ページに移動してください。
-
右側のパネルで、
「ターゲットQPS」 の横にある鉛筆アイコン をクリックします。

-
新しい値を入力し、「 保存 」をクリックします。
from databricks.vector_search.client import VectorSearchClient
client = VectorSearchClient()
# Create a new endpoint with target QPS
endpoint = client.create_endpoint(
name="my-high-qps-endpoint",
endpoint_type="STANDARD",
target_qps=500,
)
# Update an existing endpoint's target QPS
response = client.update_endpoint(name="my-endpoint", target_qps=500)
# Check scaling status
scaling_info = response.get("endpoint", {}).get("scaling_info", {})
print(f"Requested target QPS: {scaling_info.get('requested_target_qps')}")
print(f"State: {scaling_info.get('state')}")
# State is "SCALING_CHANGE_IN_PROGRESS" while capacity is being provisioned,
# then transitions to "SCALING_CHANGE_APPLIED"
ターゲットQPSを指定してエンドポイントを作成します:
POST /api/2.0/vector-search/endpoints
{
"name": "my-high-qps-endpoint",
"endpoint_type": "STANDARD",
"target_qps": 500
}
既存のエンドポイントでのターゲットQPSの更新:
PATCH /api/2.0/vector-search/endpoints/<ENDPOINT_NAME>
{
"target_qps": 500
}
スケーリングステータスを確認する
GET /api/2.0/vector-search/endpoints/<ENDPOINT_NAME>
応答 scaling_info フィールドには、requested_target_qps とスケーリング state が表示されます。容量がプロビジョニングされている間は状態がSCALING_CHANGE_IN_PROGRESSとなり、その後SCALING_CHANGE_APPLIEDに移行します。
スケーリングの適用方法
ターゲットQPSの設定後、必要な容量が自動的にプロビジョニングされます。新しいスループットレベルは、プロビジョニングが完了した後に適用されます;変更をトリガーするためにインデックスを同期する必要はありません。
スケーリング操作の進行中にターゲットQPSの更新を試行すると、RESOURCE_CONFLICTエラーが返されます。現在の操作が完了するのを待ってから、再試行してください。
制限事項:
- オートスケールなし:予測されるトラフィックに基づいて、ターゲットQPSを手動で設定する必要があります。トラフィックがプロビジョニングされたレベルを超過した場合、429エラーが発生します。「クエリ スパイクの計画」を参照してください。
- 標準エンドポイントに限り:ストレージ最適化エンドポイントは
target_qpsをサポートしていません。