תצוגת VECTOR_INDEXES
התצוגה INFORMATION_SCHEMA.VECTOR_INDEXES מכילה שורה אחת לכל אינדקס וקטורי בקבוצת נתונים.
ההרשאות הנדרשות
כדי לראות את המטא-נתונים של אינדקס וקטורי, צריך הרשאה לניהול זהויות והרשאות גישה (IAM) bigquery.tables.get או bigquery.tables.list בטבלה עם האינדקס. כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל לפחות אחת מההרשאות האלה:
roles/bigquery.adminroles/bigquery.dataEditorroles/bigquery.dataOwnerroles/bigquery.dataViewerroles/bigquery.metadataViewerroles/bigquery.user
מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.
סכימה
כששולחים שאילתה לתצוגה המפורטתINFORMATION_SCHEMA.VECTOR_INDEXES, תוצאות השאילתה מכילות שורה אחת לכל אינדקס וקטורי במערך נתונים.
לתצוגה INFORMATION_SCHEMA.VECTOR_INDEXES יש את הסכימה הבאה:
| שם העמודה | סוג נתונים | ערך |
|---|---|---|
index_catalog |
STRING |
שם הפרויקט שמכיל את מערך הנתונים. |
index_schema |
STRING |
השם של מערך הנתונים שמכיל את האינדקס. |
table_name |
STRING |
שם הטבלה שבה נוצר האינדקס. |
index_name |
STRING |
השם של אינדקס הווקטורים. |
index_status |
STRING |
סטטוס האינדקס: ACTIVE, PENDING
DISABLEMENT, TEMPORARILY DISABLED או PERMANENTLY DISABLED.
|
creation_time |
TIMESTAMP |
השעה שבה נוצר האינדקס. |
last_modification_time |
TIMESTAMP |
הפעם האחרונה שבה שונתה הגדרת האינדקס. לדוגמה, מחיקה של עמודה עם אינדקס. |
last_refresh_time |
TIMESTAMP |
הפעם האחרונה שבה נתוני הטבלה נוספו לאינדקס. הערך NULL מציין שהאינדקס עדיין לא זמין. |
disable_time |
TIMESTAMP |
השעה שבה הוגדר סטטוס האינדקס ל-DISABLED. הערך הוא NULL אם סטטוס האינדקס הוא לא DISABLED. |
disable_reason |
STRING |
הסיבה להשבתת האינדקס. NULL אם סטטוס האינדקס הוא לא DISABLED. |
DDL |
STRING |
הצהרת שפת הגדרת הנתונים (DDL) ששימשה ליצירת האינדקס. |
coverage_percentage |
INTEGER |
האחוז המשוער של נתוני הטבלה שעברו אינדוקס.
הערך 0% מציין שלא ניתן להשתמש באינדקס בשאילתת VECTOR_SEARCH, גם אם חלק מהנתונים כבר עברו אינדוקס.
|
unindexed_row_count |
INTEGER |
מספר השורות בטבלה שלא עברו אינדוקס. |
total_logical_bytes |
INTEGER |
מספר הבייטים הלוגיים לחיוב באינדקס. |
total_storage_bytes |
INTEGER |
מספר הבייטים של נפח האחסון שחויבו עבור האינדקס. |
last_index_alteration_info |
RECORD |
הפרטים של השינוי האחרון באינדקס שהופעל על ידי משתמש, כולל השדות הבאים:
|
last_model_build_time |
TIMESTAMP |
שעת ההתחלה של הבנייה האחרונה של מודל האינדקס. |
כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כל כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.
היקף ותחביר
שאילתות שמופעלות על התצוגה הזו צריכות לכלול מזהה מערך נתונים. בטבלה הבאה מוסבר היקף האזור בתצוגה הזו:
| שם התצוגה המפורטת | היקף המשאבים | היקף האזור |
|---|---|---|
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VECTOR_INDEXES |
רמת מערך הנתונים | מיקום מערך הנתונים |
-
אופציונלי:
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. -
DATASET_ID: המזהה של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מאפיין מסנן של מערך נתונים.
דוגמה
-- Returns metadata for vector indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VECTOR_INDEXES;
דוגמה
בדוגמה הבאה מוצגים כל האינדקסים הפעילים של וקטורים בטבלאות במערך הנתונים my_dataset, שנמצא בפרויקט my_project. הוא כולל את השמות שלהם, את הצהרות ה-DDL ששימשו ליצירתם ואת אחוז הכיסוי שלהם. אם טבלת בסיס עם אינדקס קטנה מ-10MB, האינדקס שלה לא יאוכלס, ובמקרה כזה הערך של coverage_percentage יהיה 0.
SELECT table_name, index_name, ddl, coverage_percentage FROM my_project.my_dataset.INFORMATION_SCHEMA.VECTOR_INDEXES WHERE index_status = 'ACTIVE';
התוצאה אמורה להיראות כך:
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table_name | index_name | ddl | coverage_percentage |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table1 | indexa | CREATE VECTOR INDEX `indexa` ON `my_project.my_dataset.table1`(embeddings) | 100 |
| | | OPTIONS (distance_type = 'EUCLIDEAN', index_type = 'IVF', ivf_options = '{"num_lists": 100}') | |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table2 | indexb | CREATE VECTOR INDEX `indexb` ON `my_project.my_dataset.table2`(vectors) | 42 |
| | | OPTIONS (distance_type = 'COSINE', index_type = 'IVF', ivf_options = '{"num_lists": 500}') | |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+
| table3 | indexc | CREATE VECTOR INDEX `indexc` ON `my_project.my_dataset.table3`(vectors) | 98 |
| | | OPTIONS (distance_type = 'DOT_PRODUCT', index_type = 'TREE_AH', | |
| | | tree_ah_options = '{"leaf_node_embedding_count": 1000, "normalization_type": "NONE"}') | |
+------------+------------+-------------------------------------------------------------------------------------------------+---------------------+