こちらのサンプルノートブックをウォークスルーします。
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_%"
パイプラインごとの「取り込み」の使用量(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
監査クエリ
監査されるアクション
次のクエリは、監査される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()
インデックス削除アクション
このクエリは、過去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()