מבוא לחיפוש ב-BigQuery

אינדקסים של חיפוש ב-BigQuery מאפשרים לכם למצוא ביעילות רכיבי נתונים ייחודיים שקבורים בטקסט לא מובנה ובנתוני JSON מובנים למחצה, בלי לדעת מראש את הסכימות של הטבלאות. אינדקסי חיפוש משלבים אחסון עמודות עם חיפוש טקסט, כדי שתוכלו לבצע חיפושי שורות יעילים למשימות כמו ניתוח נתוני יומן, ביקורות אבטחה ודיווח רגולטורי.

האינדקסים נשמרים ומנוהלים ב-BigQuery, כך שברגע שהנתונים זמינים ב-BigQuery, אפשר לאחזר אותם מיד באמצעות הפונקציה SEARCH או אופרטורים ופונקציות נתמכים אחרים. כדי לבצע אופטימיזציה של החיפושים, קראו את השיטות המומלצות.

תרחישים לדוגמה

אינדקסים של חיפוש ב-BigQuery עוזרים לכם לבצע את המשימות הבאות:

  • חיפוש ביומני מערכת, רשת או אפליקציה שמאוחסנים בטבלאות ב-BigQuery.
  • לזהות רכיבי נתונים למחיקה כדי לעמוד בתהליכים רגולטוריים.
  • תמיכה בפתרון בעיות של מפתחים.
  • לבצע ביקורות אבטחה.
  • ליצור מרכז בקרה שדורש מסנני חיפוש סלקטיביים מאוד.
  • חיפוש התאמות מדויקות בנתונים שעברו עיבוד מראש.

מידע נוסף זמין במאמרים יצירת אינדקס חיפוש וחיפוש באמצעות אינדקס.

תמחור

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

תפקידים והרשאות

כדי ליצור אינדקס חיפוש, אתם צריכים את הרשאת ה-IAM‏ bigquery.tables.createIndex בטבלה שבה אתם יוצרים את האינדקס. כדי למחוק אינדקס חיפוש, צריך את ההרשאה bigquery.tables.deleteIndex. כל אחד מהתפקידים הבאים שמוגדרים מראש ב-IAM כולל את ההרשאות שנדרשות כדי לעבוד עם אינדקסי חיפוש:

  • בעלי נתונים ב-BigQuery‏ (roles/bigquery.dataOwner)
  • עריכה של נתוני BigQuery‏ (roles/bigquery.dataEditor)
  • אדמין ב-BigQuery‏ (roles/bigquery.admin)

מגבלות

  • אי אפשר ליצור אינדקס חיפוש ישירות בתצוגה או בתצוגה מהותית, אבל קריאה לפונקציה SEARCH בתצוגה של טבלה שנוסף לה אינדקס משתמשת באינדקס החיפוש הבסיסי.
  • אי אפשר ליצור אינדקס חיפוש בטבלה חיצונית.
  • אם משנים את השם של טבלה אחרי שיוצרים בה אינדקס חיפוש, האינדקס הופך ללא חוקי.
  • הפונקציה SEARCH מיועדת לחיפושים נקודתיים. אי אפשר לבצע חיפוש מטושטש, תיקון שגיאות הקלדה, חיפוש עם תווים כלליים לחיפוש וסוגים אחרים של חיפושי מסמכים.
  • גם אם אינדקס החיפוש עדיין לא הגיע ל-100% כיסוי, עדיין תחויבו על כל נפח האחסון של האינדקס שמדווח בתצוגה INFORMATION_SCHEMA.SEARCH_INDEXES.
  • שאילתות שמשתמשות בפונקציה SEARCH או שעברו אופטימיזציה על ידי אינדקס החיפוש לא מואצות על ידי BigQuery BI Engine.
  • אינדקסי חיפוש לא משמשים כשמשנים את הטבלה שנוסף לה אינדקס באמצעות פקודת DML, אבל אפשר להשתמש בהם כשהפרדיקט שאפשר לבצע לו אופטימיזציה באמצעות אינדקסי חיפוש הוא חלק משאילתת משנה בפקודת DML.

    • בשאילתה הבאה לא נעשה שימוש באינדקס חיפוש:
    DELETE FROM my_dataset.indexed_table
    WHERE SEARCH(user_id, '123');
    • אפשר להשתמש באינדקס חיפוש בשאילתה הבאה:
    DELETE FROM my_dataset.other_table
    WHERE
      user_id IN (
        SELECT user_id
        FROM my_dataset.indexed_table
        WHERE SEARCH(user_id, '123')
      );
  • אינדקס החיפוש לא משמש כשהשאילתה מפנה לתצוגות מהותיות.

  • אינדקס החיפוש לא משמש בשאילתת טרנזקציה עם כמה הצהרות.

  • אינדקס החיפוש לא משמש בשאילתת Time Travel.

המאמרים הבאים