יצירה וניהול של תצוגות לוגיות

תצוגות לוגיות ב-Bigtable מאפשרות לשמור שאילתות SQL כטבלאות וירטואליות ששאילתות SQL אחרות יכולות להפנות אליהן, בזמן שהנתונים נשארים בטבלת המקור. התצוגות האלה עוזרות לכם:

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

אתם יכולים ליצור ולנהל תצוגות לוגיות באמצעות Google Cloud CLI או עורך השאילתות של Bigtable Studio במסוף Google Cloud . אפשר לשלוח שאילתות לתצוגות לוגיות באמצעות עורך השאילתות או כל אחת מספריות הלקוח של Bigtable שתומכות ב-SQL. במאמר טבלאות ותצוגות תוכלו למצוא השוואה בין תצוגות מהותיות רציפות לבין תצוגות מורשות.

מידע על תצוגות לוגיות

תצוגות לוגיות מאפשרות לכם לבצע את הפעולות הבאות בנתונים שלכם ב-Bigtable:

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

תצוגה לוגית היא משאב ברמת המכונה, עם המאפיינים הבאים:

  • צריך להשתמש בתכונות SQL שנתמכות על ידי GoogleSQL ל-Bigtable
  • בשאילתת ה-SQL שמגדירה תצוגה לוגית אי אפשר להשתמש ב-SELECT *.
  • קריאה-בלבד
  • צריך לקרוא באמצעות SQL ולא באמצעות קריאה ל-ReadRows
  • אפשר לשלוח שאילתות באמצעות כל אחת מספריות הלקוח של Bigtable שתומכות ב-SQL.
  • משתמש בזכויות מגדיר. אתם יכולים לשלוח שאילתה לתצוגה לוגית אם יש לכם הרשאות לקרוא ממנה, גם אם אין לכם הרשאה לקרוא מטבלת המקור.

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

לפני שמתחילים

אם אתם מתכננים להשתמש ב-CLI של gcloud, בצעו את השלבים הבאים:

  1. התקינו את ה-CLI של Google Cloud.

  2. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  3. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init

התפקידים הנדרשים

כדי לעבוד עם תצוגות לוגיות, צריך את ההרשאות הבאות:

כדי לנהל תצוגות לוגיות:

  • כדי ליצור, לעדכן או למחוק תצוגות לוגיות, צריך את התפקיד "אדמין ב-Bigtable" (roles/bigtable.admin) במכונה.
  • לחלופין, אתם יכולים לבקש מהאדמין להקצות לכם את ההרשאות הבאות ברמת המכונה:
    • יצירה: bigtable.logicalViews.create
    • עדכון: bigtable.logicalViews.update
    • מחיקה: bigtable.logicalViews.delete

כדי להציג תצוגות לוגיות ולשלוח אליהן שאילתות:

  • כדי להציג רשימה של תצוגות לוגיות או לתאר אותן, צריך את התפקיד "קורא Bigtable"‏ (roles/bigtable.reader) במכונה.
  • לחלופין, אתם יכולים לבקש מהאדמין לתת לכם את ההרשאות הבאות ברמת המכונה:

    • רשימה: bigtable.logicalViews.list
    • תיאור: bigtable.logicalViews.get
  • כדי לשלוח שאילתה לתצוגה לוגית, צריך את ההרשאה bigtable.logicalViews.readRows בתצוגה הלוגית.

כדי ליצור תצוגה לוגית:

  • חייבת להיות לכם לפחות הרשאת bigtable.tables.readRows בטבלת המקור.

כדי לתת גישת קריאה לתצוגה ספציפית:

אתם יכולים לתת למשתמש הרשאה לקרוא תצוגה לוגית ספציפית, גם אם אין לו הרשאות אחרות ב-Bigtable. כדי לעשות את זה, משתמשים בתנאי IAM כדי לתת את ההרשאה bigtable.logicalViews.readRows רק בתצוגה הזו:

  1. מקצים למשתמש את התפקיד bigtable.reader בפרויקט.
  2. יוצרים תנאי IAM שמגביל את ההרשאה bigtable.logicalViews.readRows לתצוגה הלוגית הספציפית. לדוגמה:

    resource.name == projects/PROJECT_ID/instances/INSTANCE_ID/logicalViews/VIEW
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: הפרויקט ב- Google Cloud שבו נמצא המכונה של Bigtable.
    • ‫VIEW: מזהה באורך של עד 128 תווים לתצוגה הלוגית החדשה. המזהה חייב להיות ייחודי בין מזהי הטבלאות ומזהי התצוגות במכונה.
    • ‫INSTANCE_ID: המזהה של המכונה שבה יוצרים את התצוגה הלוגית.

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

למידע נוסף על כל התפקידים וההרשאות הזמינים, קראו את המאמר בקרת גישה ל-Bigtable באמצעות IAM.

יצירת תצוגה לוגית

המסוף

  1. במסוף Google Cloud , פותחים את רשימת המכונות של Bigtable.

    פתיחת רשימת המכונות

  2. בוחרים מכונה.

  3. בחלונית הניווט, לוחצים על Bigtable Studio.

  4. פותחים כרטיסייה חדשה בלחיצה על ואז בוחרים באפשרות עורך.

    1. כותבים את השאילתה בעורך השאילתות. אם השאילתה היא SQL תקין, תוצג ההודעה Valid.

    2. אופציונלי: כדי לעצב את ההצהרה בסגנון SQL, לוחצים על Format.

    3. לוחצים על Run. תוצאות השאילתה מופיעות בטבלה Results.

    4. כשהשאילתה מוכנה, לוחצים על החץ להרחבה Save as ובוחרים באפשרות Save as logical view.

  5. בתיבת הדו-שיח Save your logical view, נותנים שם לתצוגה ולוחצים על Save.

    למידע נוסף על השימוש בעורך השאילתות, קראו את המאמר ניהול הנתונים באמצעות Bigtable Studio.

gcloud

כדי ליצור תצוגה לוגית, משתמשים בפקודה gcloud bigtable logical-views create.

gcloud bigtable logical-views create VIEW \
  --instance=INSTANCE --query=QUERY

מחליפים את מה שכתוב בשדות הבאים:

  • ‫VIEW: מזהה באורך של עד 128 תווים לתצוגה הלוגית החדשה. המזהה חייב להיות ייחודי בין מזהי הטבלאות ומזהי התצוגות במכונה.
  • ‫QUERY: שאילתת GoogleSQL תקינה ל-Bigtable. אי אפשר להשתמש ב-SELECT * בשאילתה.
  • ‫INSTANCE: המזהה של המכונה שבה יוצרים את התצוגה הלוגית

אופציונלי:

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

עדכון תצוגה לוגית

המסוף

אי אפשר לעדכן את ההגנה מפני מחיקה של תצוגה לוגית במסוףGoogle Cloud . כדי להפעיל או להשבית את ההגנה מפני מחיקה, משתמשים ב-Google Cloud CLI.

  1. במסוף Google Cloud , פותחים את רשימת המכונות של Bigtable.

    פתיחת רשימת המכונות

  2. בוחרים מכונה מהרשימה.

  3. בחלונית הניווט, לוחצים על Bigtable Studio. רשימה של תצוגות מופיעה בסייר.

  4. אופציונלי: 10 התצוגות הראשונות במכונה מופיעות ברשימה. כדי לראות עוד 10, לוחצים על הצגת פרטים נוספים.

  5. ליד התצוגה שרוצים לעדכן, לוחצים על תפריט הפעולות more_vert ואז על View definition.

  6. משנים את השאילתה.

  7. לוחצים על Run.

  8. אחרי שמוודאים שבחלונית התוצאות מוצגים הנתונים שצריכים להיכלל בתצוגה, לוחצים על Save as.

  9. בתיבת הדו-שיח, מזינים את המזהה של התצוגה ששיניתם.

    בתיבת הדו-שיח תוצג הודעת אזהרה על כך שאתם מחליפים את התצוגה הקיימת.

  10. לוחצים על Save.

gcloud

כדי לעדכן תצוגה לוגית כך שתריץ שאילתה אחרת או כדי לשנות את ההגנה מפני מחיקה, משתמשים בפקודה gcloud bigtable logical-views update. צריך לציין את השאילתה, את ההגנה מפני מחיקה או את שתיהן.

כדי לעדכן שאילתה של תצוגה לוגית:

gcloud bigtable logical-views update VIEW  \
    --instance=INSTANCE --query=QUERY

כדי להפעיל הגנה מפני מחיקה בתצוגה לוגית:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --deletion-protection=true

כדי להשבית את ההגנה מפני מחיקה של תצוגה לוגית:

gcloud bigtable logical-views update VIEW \
    --instance=INSTANCE \
    --deletion-protection=false

מחליפים את מה שכתוב בשדות הבאים:

  • ‫VIEW: המזהה של התצוגה הלוגית שרוצים לעדכן
  • ‫INSTANCE: המזהה של המכונה שמכילה את התצוגה הלוגית
  • ‫QUERY: שאילתת GoogleSQL תקינה

מחיקת תצוגה לוגית

חשוב לדעת שזו פעולה בלתי הפיכה.

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

המסוף

  1. במסוף Google Cloud , פותחים את רשימת המכונות של Bigtable.

    פתיחת רשימת המכונות

  2. בוחרים מכונה מהרשימה.

  3. בחלונית הניווט, לוחצים על Bigtable Studio. רשימה של תצוגות מופיעה בסייר.

  4. אופציונלי: 10 התצוגות הראשונות במכונה מופיעות ברשימה. כדי לראות עוד 10, לוחצים על הצגת פרטים נוספים.

  5. מרחיבים את האפשרות Views.

  6. ליד התצוגה שרוצים למחוק, לוחצים על תפריט הפעולות more_vert ואז על Delete.

gcloud

כדי למחוק תצוגה לוגית, משתמשים בפקודה gcloud bigtable logical-views delete.

  gcloud bigtable logical-views delete VIEW \
    --instance=INSTANCE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫VIEW: המזהה של התצוגה הלוגית שרוצים לעדכן
  • ‫INSTANCE: המזהה של המכונה שמכילה את התצוגה הלוגית

איך מקבלים רשימה של תצוגות לוגיות של מכונה

אתם יכולים לראות רשימה של תצוגות לוגיות של מכונה.

המסוף

  1. במסוף Google Cloud , פותחים את רשימת המכונות של Bigtable.

    פתיחת רשימת המכונות

  2. בוחרים מכונה מהרשימה.

  3. בחלונית הניווט, לוחצים על Bigtable Studio. רשימה של תצוגות מופיעה בסייר.

  4. אופציונלי: 10 התצוגות הראשונות במופע מופיעות ברשימה. כדי לראות עוד 10, לוחצים על הצגת פריטים נוספים.

gcloud

כדי לראות רשימה של תצוגות לוגיות של מכונה, משתמשים בפקודה gcloud bigtable logical-views list.

gcloud bigtable logical-views list --instance=INSTANCE

מחליפים את INSTANCE במזהה המכונה.

תיאור של תצוגה לוגית

כדי לקבל פרטים על תצוגה לוגית, משתמשים בפקודה gcloud bigtable logical-views describe.

  gcloud bigtable logical-views describe VIEW \
      --instance=INSTANCE

בטרמינל יוצגו פרטים דומים לאלה:

  createTime: '2025-03-07T19:49:56.316578Z'
  etag: W/"/v1/17919275593532352351"
  name: projects/my-project/instances/my-instance/logicalViews/my-view
  query: SELECT street FROM addresses
  updateTime: '2025-03-07T19:49:56.316578Z'
  deletion_protection: true

שליחת שאילתה לתצוגה לוגית

אחרי שיוצרים תצוגה לוגית, אפשר לשלוח אליה שאילתות באמצעות SQL, בדומה לשליחת שאילתות לטבלה רגילה. אפשר להשתמש בתצוגות לוגיות בסעיף FROM של הצהרות SELECT.

בעורך השאילתות, מזינים שאילתת GoogleSQL שמפנה לשם התצוגה. לדוגמה, אם שם התצוגה הוא MyLogicalView:

SELECT *
FROM MyLogicalView
LIMIT 100;

מידע נוסף על הרצת שאילתות SQL ב-Bigtable זמין במאמר הרצת שאילתות על הנתונים באמצעות SQL בעורך השאילתות.

מגבלות

  • אי אפשר ליצור תצוגות לוגיות בטבלאות עם חותמות זמן ברמת פירוט של מיקרו-שניות.

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