סקירה כללית של תצוגות מורשות

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

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

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

מה מגדיר צפייה מורשית

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

  • קידומת של מפתח שורה – לדוגמה, כל השורות שמתחילות ב-examplepetstore1|
  • קידומת של מגדיר העמודה – לדוגמה, כל העמודות שהמגדירים שלהן מתחילים ב-order# בקבוצת העמודות שצוינה
  • מגדיר העמודה – לדוגמה, רק העמודה order-examplepetstore בקבוצת העמודות שצוינה
  • שילוב של קידומת מפתח שורה ומגדיר עמודה

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

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

הכללה של עמודות במשפחה או בכל השורות

אם רוצים לוודא שכל עמודה שמוסיפים למשפחת עמודות בטבלה הבסיסית כלולה גם בתצוגה המורשית, צריך לציין את המחרוזת הריקה ("") כקידומת של מסווג העמודות. לדוגמה, קובץ הגדרה יכלול את השורה הבאה בקבוצת המשנה של המשפחה: "qualifierPrefixes": [""].

באופן דומה, אם רוצים להגדיר תצוגה מורשית שכוללת את כל השורות בטבלה, צריך לציין את המחרוזת הריקה ("") כקידומת של מפתח שורה. בקובץ הגדרה, זה נכתב כ-"rowPrefixes": [""] בקבוצת המשנה של התצוגה.

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

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

דוגמאות לקובצי הגדרה

בקטע הזה מוצגות דוגמאות של קובצי הגדרה של תצוגות מורשות בפורמט JSON.

בדוגמה הבאה מוצג קובץ הגדרה לתצוגה מורשית שכולל את העמודה address של משפחת העמודות customer ועמודות שמתחילות ב-tel בשורות עם קידומת של מפתח שורה examplepetstore1#.

    {
      "subsetView":
      {
        "rowPrefixes": ["examplepetstore1#"],
        "familySubsets":
        {
          "customer":
          {
            "qualifiers":["address"],
            "qualifierPrefixes":["tel"]
          }
        }
      },
      "deletionProtection": true
    }

הקובץ הבא הוא קובץ הגדרה של תצוגה מורשית שכולל את העמודה skus במשפחת העמודות order ואת כל העמודות במשפחת העמודות customer.

    {
      "subsetView": {
        "rowPrefixes": [""],
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          },
          "customer": {
            "qualifierPrefixes": [""]
          }
        }
      }
    }

הדוגמה הבאה היא של קובץ הגדרה לתצוגה מורשית שכוללת רק נתונים בעמודה skus במשפחת העמודות order בשורות שיש להן קידומת של מפתח שורה examplepetstore1#.

    {
      "subsetView": {
        "rowPrefixes": ["examplepetstore1#"]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus"]
          }
        }
      }
    }

זוהי דוגמה לקובץ הגדרה של תצוגה מורשית שכוללת רק נתונים בעמודות skus ו-agents במשפחת העמודות order, ובעמודות dog, ‏ cat ו-bird במשפחת העמודות pet_id.

    {
      "subsetView": {
        "rowPrefixes": [""]
        "familySubsets": {
          "order": {
            "qualifiers": ["skus", "agents"]
          "pet_id": {
            "qualifiers": ["dog", "cat", "bird"]
          }
          }
        }
      }
    }

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