ai.vectorizer_statusビューを参照することでベクトル変換定義ごとのベクトル変換を待っているテキストの件数を確認できます。またai.vectorizer_queue_pending関数を使用することで特定のベクトル変換定義についての件数を確認できます。
例) ai.vectorizer_statusビューを確認する
rag_database=> SELECT * FROM ai.vectorizer_status; -[ RECORD 1 ]-+-------------------------------------- id | 1 source_table | public.sample_table target_table | public.sample_embeddings_store view | public.sample_embeddings pending_items | 1000 disabled | f
例) ai.vectorizer_queue_pending関数で確認する
SELECT ai.vectorizer_queue_pending( pgx_vectorizer.get_vectorizer_id(view_name => 'sample_embeddings') ); -[ RECORD 1 ]------------+-- vectorizer_queue_pending | 1000
この値が0や低い状態を維持している場合はベクトル変換処理が間に合っていると判断できます。この値がスケジュールで指定した実行間隔やデータ追加の間隔を超えて増加傾向にある場合には、“3.6.2 ベクトル変換処理の状況の確認”を参照してベクトル変換処理でエラーが発生していないか、また、“3.6.3 ベクトル変換処理のスケジューラの確認”を参照してvectorize schedulerが起動しているかを確認します。
エラーが発生していない場合はデータの追加速度に比較してベクトル変換の処理速度が遅いと考えられます。負荷が一時的に高くなった場合はpgx_vectorizer.run_vectorize_worker関数で臨時のベクトル変換処理を起動してください。そうでない場合は、pgx_vectorizer.alter_vectorizer_schedule関数でスケジュールを変更する、またはpgx_vectorizer.alter_vectorizer_processing関数で並列度や一度の起動で処理するデータ量の上限を変更してください。
例) 実行間隔を5分に変更する場合
SELECT pgx_vectorizer.alter_vectorizer_schedule(pgx_vectorizer.get_vectorizer_id(view_name => 'sample_embeddings'), interval '5 m');
例) 並列度を2、一度に処理するデータ量を200に変更する場合
SELECT pgx_vectorizer.alter_vectorizer_processing(pgx_vectorizer.get_vectorizer_id(view_name => 'sample_embeddings'), batch_size => 200, concurrency => 2);
ベクトル変換を待っているテキスト件数の時間的な変化傾向を確認するには、モニタリングツールを利用してください。set_worker_settingによって設定したパラメータの値に不備があった場合は、ベクトル変換処理は実行されません。サーバログにメッセージが出力されるためai.vectorizer_statusビューと合わせて確認してください。