0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricks Vector Searchのシステムテーブル

Posted at

こちらのサンプルノートブックをウォークスルーします。

DatabricksのVector Searchとは

正式名称はMosaic AI Vector Searchです。

DatabricksのVector Searchは、大規模なベクトルデータを高速に検索できるマネージドサービスです。機械学習モデルで生成したエンべディングベクトルをインデックス化し、類似性検索を実行できます。RAGアプリケーションやレコメンデーションシステム、セマンティック検索などに活用でき、Delta Lakeとシームレスに統合されています。自動スケーリングとMLflowとの連携により、本番環境での運用も容易です。

上述のサンプルノートブックはこのVector Searchのコストやイベントをキャプチャしてくれていますので、このデータを用いた分析が可能となります。

Vector Searchシステムテーブルクエリ

Databricks Vector Searchの請求および監査情報をUnity Catalogシステムテーブルで取得します。以下のクエリは、この情報を取得する方法を示しています。

エンドポイントごとの「検索」の使用量(DBU: Databricks Units)を取得する方法

このクエリは、過去30日間にVector Searchエンドポイントごとに使用されたdbu数を取得するために system.billing.usage テーブルを使用します。

select
  usage_metadata.endpoint_name as endpoint_name, usage_quantity as dbus
from
  system.billing.usage
where
  billing_origin_product = 'VECTOR_SEARCH'
  and usage_metadata.endpoint_name is not null 
  and usage_date between date_add(current_date(), -30) and current_date()
  and sku_name like "ENTERPRISE_SERVERLESS_REAL_TIME_INFERENCE_%" 

Screenshot 2025-07-24 at 14.05.00.png

グラフもあります。
Screenshot 2025-07-24 at 14.05.41.png

パイプラインごとの「取り込み」の使用量(DBU)を取得する方法

このクエリは、過去30日間にIngestion DLTパイプラインIDごとに使用されたdbu数を system.billing.usage テーブルから取得します。

%sql
select
  usage_metadata.dlt_pipeline_id as dlt_pipeline, 
  usage_quantity as dbus,
  sku_name,
  usage_metadata
from
  system.billing.usage
where
  billing_origin_product = 'VECTOR_SEARCH'
  and usage_date between date_add(current_date(), -30) and current_date()
  and usage_metadata.dlt_pipeline_id is not null

Screenshot 2025-07-24 at 14.07.34.png

監査クエリ

監査されるアクション

次のクエリは、監査されるVector Searchのアクションを示します。

select
 distinct action_name
from
  system.access.audit
where 
  service_name = "vectorSearch" 
action_name
createVectorIndex
scanVectorIndex
queryVectorIndex
deleteVectorIndex
createEndpoint
deleteEndpoint
changeEndpointAcl

エンドポイント作成アクション

このクエリは、過去30日間のエンドポイント作成イベントを取得します。

select
 request_params.name as endpoint_name,
 request_params.endpoint_type as endpoint_type,
 *
from
  system.access.audit
where 
  service_name = "vectorSearch"
  and action_name = "createEndpoint"
  and event_date between date_add(current_date(), -30) and current_date()

エンドポイント削除アクション

このクエリは、過去30日間のエンドポイント削除イベントを取得します。

select
 request_params.name as endpoint_name,
 *
from
  system.access.audit
where 
  service_name = "vectorSearch"
  and action_name = "deleteEndpoint"
  and event_date between date_add(current_date(), -30) and current_date()

インデックス作成アクション

このクエリは、過去30日間のインデックス作成イベントを取得します。

select
  request_params.name as index_name,
  request_params.endpoint_name as endpoint_name,
  request_params.primary_key as primary_key,
  request_params.index_type as index_type,
  request_params.delta_sync_index_spec as delta_sync_index_spec,
  request_params.direct_access_index_spec as direct_access_index_spec,
  *
from
  system.access.audit
where
  service_name = "vectorSearch"
  and action_name = "createVectorIndex"
  and event_date between date_add(current_date(), -30) and current_date()  

Screenshot 2025-07-24 at 14.10.20.png

インデックス削除アクション

このクエリは、過去30日間のインデックス削除イベントを取得します。

select
  request_params.name as index_name,
  request_params.endpoint_name as endpoint_name,
  request_params.delete_embedding_writeback_table as delete_embedding_writeback_table,
  *
from
  system.access.audit
where
  service_name = "vectorSearch"
  and action_name = "deleteVectorIndex"
  and event_date between date_add(current_date(), -30) and current_date()  

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?