高い QPS でエンドポイントのスループットを拡張 (ベータ版)
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。「Databricks プレビューの管理」を参照してください。
デフォルトでは、標準エンドポイントはインデックス サイズに応じて 20~200 QPS をサポートします。検索バー、推奨システム、エンティティ マッチングなどのリアルタイム アプリケーションでは、多くの場合、100 ~ 1000 以上の QPS が必要になります。標準エンドポイントのみ、最小 QPS を設定できます。Databricks は、インデックスが作成または同期されるときに、そのスループット レベルをサポートするインフラストラクチャをプロビジョニングします。
最小 QPS を設定すると追加の容量がプロビジョニングされ、エンドポイントのコストが増加します。実際のクエリ トラフィックに関係なく、この追加容量に対して料金が発生します。これらの料金の発生を停止するには、 min_qps=-1を使用してエンドポイントをデフォルト構成にリセットします。スループットのスケーリングはベストエフォートであり、ベータ期間中は保証されません。
次の場合には高い QPS を使用します。
- アプリケーションでは 50 QPS を超える持続的なスループットが必要です。
- 通常の負荷では 429 (リクエストが多すぎます) エラーが発生します。
- 平均使用率が低いように見えても、トラフィックが増加するとレイテンシは低下します。
要件
- 高 QPS は標準エンドポイントでのみ利用できます。ストレージ最適化エンドポイントはサポートされていません。
- 70~100 QPS を超える処理を実行するエンドポイントには OAuth 認証が必要です。Personal ACCESS (PAT) のレートは 70 ~ 100 QPS に制限されています。 OAuthクラウドでサービスプリンシパルを使用する」を参照してください。
最小QPSを設定する
新しいエンドポイントを作成するとき、または既存のエンドポイントを更新するときに、最小 QPS を設定します。ターゲット スループットを達成するために必要な追加容量は、エンドポイントのインデックスが次に作成または同期されるときに自動的に計算されます。ベータ版では、スループットのスケーリングはベストエフォートであり、保証されません。実際の QPS は、インデックス サイズ、ベクターの次元、クエリの複雑さ、およびフィルターの使用状況によって異なります。
- Databricks UI
- Python SDK
- REST API
新しいエンドポイントを作成する場合:
- 左側のサイドバーで 「コンピュート」 をクリックします。
- 「 ベクトル検索 」タブをクリックし、「 作成 」をクリックします。
- [詳細設定] で、 最小 QPS 値を入力します。
既存のエンドポイントを更新する場合:
- エンドポイントの詳細ページに移動します。
- 右側のパネルで 「Min QPS」 フィールドを見つけて、現在の値の横にある鉛筆アイコンをクリックします。
- 新しい値を入力し、 「保存」 をクリックします。
最小 QPS を変更した後、インデックスを同期して新しい構成を適用します。
from databricks.vector_search.client import VectorSearchClient, MIN_QPS_RESET_TO_DEFAULT
client = VectorSearchClient()
# Create a new endpoint with minimum QPS
endpoint = client.create_endpoint(
name="my-high-qps-endpoint",
endpoint_type="STANDARD",
min_qps=500,
)
# Update an existing endpoint's minimum QPS
response = client.update_endpoint(name="my-endpoint", min_qps=500)
# Check scaling status
scaling_info = response.get("endpoint", {}).get("scaling_info", {})
print(f"Requested min QPS: {scaling_info.get('requested_min_qps')}")
print(f"State: {scaling_info.get('state')}")
# State is "SCALING_CHANGE_IN_PROGRESS" until the next index sync,
# then transitions to "SCALING_CHANGE_APPLIED"
# Reset to default (remove high QPS configuration)
client.update_endpoint(name="my-endpoint", min_qps=MIN_QPS_RESET_TO_DEFAULT)
最小 QPS のエンドポイントを作成します。
POST /api/2.0/vector-search/endpoints
{
"name": "my-high-qps-endpoint",
"endpoint_type": "STANDARD",
"min_qps": 500
}
既存のエンドポイントの最小 QPS を更新します。
PATCH /api/2.0/vector-search/endpoints/<ENDPOINT_NAME>
{
"min_qps": 500
}
スケーリングステータスを確認します。
GET /api/2.0/vector-search/endpoints/<ENDPOINT_NAME>
応答scaling_infoフィールドには、要求された最小 QPS とスケーリングstateが表示されます。次のインデックス同期が完了するまで状態はSCALING_CHANGE_IN_PROGRESSであり、その後SCALING_CHANGE_APPLIEDに遷移します。
デフォルトにリセット(高 QPS を削除):
PATCH /api/2.0/vector-search/endpoints/<ENDPOINT_NAME>
{
"min_qps": -1
}
スケーリングの適用方法
最小 QPS を設定すると、そのエンドポイントのインデックスが次に作成または同期されるときに、必要な容量がプロビジョニングされます。変更をすぐに適用するには、エンドポイントでホストされている各インデックスで同期をトリガーします。
スケーリング操作の進行中に最小 QPS を更新しようとすると、 RESOURCE_CONFLICTエラーが返されます。再試行する前に、現在の操作が完了するまで待機してください。
制限事項
- オートスケールなし : 予想されるトラフィックに基づいて最小 QPS を手動で設定する必要があります。 トラフィックがプロビジョニングされたレベルを超えると、429 エラーが発生します。「クエリの急増に対する計画」を参照してください。
- 標準エンドポイントのみ : ストレージ最適化エンドポイントは
min_qpsをサポートしません。