התצוגה SEARCH_INDEXES

התצוגה INFORMATION_SCHEMA.SEARCH_INDEXES מכילה שורה אחת לכל אינדקס חיפוש בקבוצת נתונים.

ההרשאות הנדרשות

כדי לראות את המטא-נתונים של אינדקס החיפוש, צריך לקבל את ההרשאה bigquery.tables.get או bigquery.tables.list לניהול זהויות והרשאות גישה (IAM) בטבלה עם האינדקס. כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל לפחות אחת מההרשאות האלה:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer
  • roles/bigquery.user

מידע נוסף על הרשאות ב-BigQuery זמין במאמר בקרת גישה באמצעות IAM.

סכימה

כששולחים שאילתה לתצוגה INFORMATION_SCHEMA.SEARCH_INDEXES, תוצאות השאילתה מכילות שורה אחת לכל אינדקס חיפוש במערך נתונים.

לתצוגה INFORMATION_SCHEMA.SEARCH_INDEXES יש את הסכימה הבאה:

שם עמודה סוג נתונים ערך
index_catalog STRING שם הפרויקט שמכיל את מערך הנתונים.
index_schema STRING השם של מערך הנתונים שמכיל את האינדקס.
table_name STRING השם של טבלת הבסיס שעליה נוצר האינדקס.
index_name STRING שם האינדקס.
index_status STRING הסטטוס של האינדקס: ACTIVE,‏ PENDING DISABLEMENT,‏ TEMPORARILY DISABLED או PERMANENTLY DISABLED.
  • ACTIVE מציין שאפשר להשתמש באינדקס או שהוא נמצא בתהליך יצירה. אפשר לעיין בcoverage_percentage כדי לראות את התקדמות היצירה של האינדקס.
  • PENDING DISABLEMENT מציין שהגודל הכולל של טבלאות הבסיס שעברו אינדוקס חורג מהמגבלה של הארגון, והאינדקס הוכנס לתור למחיקה. במצב הזה, אפשר להשתמש באינדקס בשאילתות חיפוש, ואתם מחויבים על אחסון אינדקס החיפוש.
  • TEMPORARILY DISABLED מציין שהגודל הכולל של טבלאות הבסיס שעברו אינדוקס חורג מהמגבלה של הארגון, או שטבלת הבסיס שעברה אינדוקס קטנה מ-10GB. במצב הזה, האינדקס לא משמש לשאילתות חיפוש ולא נגבה תשלום על אחסון אינדקס החיפוש.
  • PERMANENTLY DISABLED מציין שיש שינוי לא תואם בסכימה בטבלת הבסיס, למשל שינוי הסוג של עמודה עם אינדקס מ-STRING ל-INT64.
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% מציין שלא ניתן להשתמש באינדקס בשאילתה SEARCH, גם אם חלק מהנתונים כבר עברו אינדוקס.
unindexed_row_count INTEGER מספר השורות בטבלת הבסיס שלא נוספו לאינדקס.
total_logical_bytes INTEGER מספר הבייטים הלוגיים לחיוב באינדקס.
total_storage_bytes INTEGER מספר הבייטים של האחסון שניתן לחיוב עבור האינדקס.
analyzer STRING כלי לניתוח טקסט שמשמש ליצירת טוקנים לאינדקס החיפוש.

כדי לשמור על יציבות, מומלץ לציין במפורש את העמודות בשאילתות של סכימת המידע, במקום להשתמש בתו כללי (SELECT *). ציון מפורש של העמודות מונע את השבירה של השאילתות אם הסכימה הבסיסית משתנה.

היקף ותחביר

בשביל להריץ שאילתות בתצוגה הזו, צריך להוסיף מגדיר מערך נתונים. בטבלה הבאה מוסבר היקף האזור בתצוגה הזו:

שם התצוגה המפורטת היקף המשאבים היקף האזור
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.SEARCH_INDEXES רמת מערך הנתונים מיקום מערך הנתונים
מחליפים את מה שכתוב בשדות הבאים:
  • אופציונלי: PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . אם לא מציינים פרויקט, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל.
  • DATASET_ID: המזהה של מערך הנתונים. מידע נוסף מופיע במאמר בנושא מאפיין מסנן של מערך נתונים.

דוגמה

-- Returns metadata for search indexes in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.SEARCH_INDEXES;

דוגמה

בדוגמה הבאה מוצגים כל אינדקסים החיפוש הפעילים בטבלאות של מערך הנתונים my_dataset, שנמצא בפרויקט my_project. הוא כולל את השמות שלהם, את הצהרות ה-DDL ששימשו ליצירתם, את אחוז הכיסוי שלהם ואת כלי ניתוח הטקסט שלהם. אם טבלת בסיס מאונדקסת קטנה מ-10GB, האינדקס שלה לא יאוכלס, ובמקרה כזה הערך של coverage_percentage הוא 0.

SELECT table_name, index_name, ddl, coverage_percentage, analyzer
FROM my_project.my_dataset.INFORMATION_SCHEMA.SEARCH_INDEXES
WHERE index_status = 'ACTIVE';

התוצאות אמורות להיראות כך:

+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| table_name  | index_name  | ddl                                                                                  | coverage_percentage | analyzer       |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+
| small_table | names_index | CREATE SEARCH INDEX `names_index` ON `my_project.my_dataset.small_table`(names)      | 0                   | NO_OP_ANALYZER |
| large_table | logs_index  | CREATE SEARCH INDEX `logs_index` ON `my_project.my_dataset.large_table`(ALL COLUMNS) | 100                 | LOG_ANALYZER   |
+-------------+-------------+--------------------------------------------------------------------------------------+---------------------+----------------+

פתרון בעיות

כדי להפעיל את התצוגה הזו, אפשר להגדיר את הערך של enable_info_schema_storage ל-TRUE בפרויקט או בארגון. מידע נוסף על ניהול ההגדרות זמין במאמר ניהול הגדרות.

אם לא הגדרתם את ההגדרה הזו, תופיע השגיאה הבאה:

INFORMATION_SCHEMA.SEARCH_INDEXES hasn't been enabled for project <myproject>.
Consider using one of the following SQL statements to enable data collection:
ALTER PROJECT `<myproject>`
SET OPTIONS (`region-<region>.enable_info_schema_storage` = TRUE)

Or to enable for the entire organization:
ALTER ORGANIZATION
SET OPTIONS (`region-<region>.enable_info_schema_storage` = TRUE)

After enabling, please allow around 1 day for the complete historical data to
become available.

מריצים את הצהרות ה-SQL שמתוארות בהודעת השגיאה כדי להפעיל את התצוגה.