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

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

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

כדי לקבל את ההרשאות שדרושות לביצוע פעולות אדמיניסטרטיביות בתצוגה מורשית, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Bigtable Admin (roles/bigtable.admin) בטבלה הבסיסית. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

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

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

  • bigtable.authorizedViews.get
  • bigtable.authorizedViews.list
  • bigtable.authorizedViews.create
  • bigtable.authorizedViews.update
  • bigtable.authorizedViews.delete
  • bigtable.authorizedViews.getIamPolicy
  • bigtable.authorizedViews.setIamPolicy
  • bigtable.authorizedViews.readRows
  • bigtable.authorizedViews.sampleRowKeys
  • bigtable.authorizedViews.mutateRows

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

במאמר ניהול IAM ברמת התצוגה המורשית מוסבר איך לנהל תפקידים ב-IAM של Bigtable ברמת התצוגה המורשית.

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

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

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

אפשר לציין עד 100 פרמטרים של הגדרה לכל תצוגה מורשית.

המסוף

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על המופע שמכיל את הטבלה שרוצים ליצור עבורה תצוגה מורשית.

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

  4. לוחצים על Builder (בונה) כדי לפתוח את בונה השאילתות.

  5. בוחרים את הטבלה שרוצים ליצור עבורה תצוגה מורשית.

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

    • הסעיפים הקבילים לתצוגה מורשית הם מפתח שורה prefix ו-columns (מגדירי עמודות).
    • כדי לציין קידומת של מסווג עמודה, מוסיפים כוכבית אחרי הקידומת. לדוגמה, כדי לכלול את כל העמודות שמתחילות ב-data, מזינים data* בשדה Columns אחרי שם משפחת העמודות.
    • המערכת מתעלמת מסעיף Limit כששומרים את התצוגה המורשית.
    • מידע נוסף על שימוש בכלי ליצירת שאילתות זמין במאמר יצירת שאילתות במסוף.
  7. לוחצים על Run.

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

  9. מזינים מזהה קבוע לתצוגה המורשית שלא נמצא כבר בשימוש בטבלה.

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

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

    1. מוסיפים לפחות חשבון משתמש אחד ובוחרים את התפקיד שרוצים להקצות לו או לקבוצת חשבונות המשתמשים.
    2. אופציונלי: כדי להעניק גישה לעוד תפקידים, לוחצים על Add another role ואז מזינים את החשבון הראשי והתפקיד לכל תפקיד נוסף.
    3. לוחצים על Save.

gcloud

מריצים את הפקודה bigtable authorized-views create. מידע נוסף מופיע במאמרי עזרה בנושא gcloud bigtable authorized-views create.

gcloud bigtable authorized-views create AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID \
  --definition-file=DEFINITION_FILE_PATH

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

  • AUTHORIZED_VIEW_ID: מזהה קבוע לתצוגה המורשית שלא נמצא כבר בשימוש בטבלה
  • INSTANCE_ID: המזהה הקבוע של המופע שמכיל את הטבלה
  • TABLE_ID: המזהה הקבוע של הטבלה שיוצרים ממנה תצוגה מורשית
  • DEFINITION_FILE_PATH: הנתיב לייצוג בפורמט JSON תקין של תצוגה מורשית. דוגמאות לקובצי הגדרה בפורמט תקין זמינות במאמר דוגמאות לקובצי הגדרה.

אפשר גם להריץ את הפקודה בלי לספק את קובץ ההגדרה. במקרה הזה, ה-CLI של gcloud פותח עורך ומבקש מכם להזין ערכים.

כדי לוודא שהתצוגה המורשית נוצרה, מקבלים רשימה של תצוגות מורשות עבור הטבלה.

Java

מידע על התקנת ספריית הלקוח של Bigtable ושימוש בה מופיע במאמר ספריות הלקוח של Bigtable.

כדי לבצע אימות ב-Bigtable, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

try {
  AuthorizedView.SubsetView subsetView =
      AuthorizedView.SubsetView.newBuilder()
          .addRowPrefixes(ByteString.EMPTY)
          .putFamilySubsets(
              COLUMN_FAMILY,
              AuthorizedView.FamilySubsets.newBuilder()
                  .addQualifierPrefixes(ByteString.copyFromUtf8(COLUMN_QUALIFIER_NAME))
                  .build())
          .build();
  AuthorizedView authorizedViewObj =
      AuthorizedView.newBuilder().setSubsetView(subsetView).build();
  CreateAuthorizedViewRequest request =
      CreateAuthorizedViewRequest.newBuilder()
          .setParent(
              "projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId)
          .setAuthorizedViewId(authorizedViewId)
          .setAuthorizedView(authorizedViewObj)
          .build();
  AuthorizedView authorizedView = adminClient.createAuthorizedViewAsync(request).get();
  System.out.printf("AuthorizedView: %s created successfully%n", authorizedView.getName());
} catch (Exception e) {
  System.err.println("Failed to create an authorized view: " + e.getMessage());
}

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

המסוף

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על המופע שמכיל את התצוגה המפורטת המורשית.

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

  4. בכלי לבדיקת נתונים, מרחיבים את הטבלה ואת התצוגות המורשות.

  5. לצד התצוגה המורשית שרוצים לשנות, לוחצים על סמל התפריט more_vert ואז על פתיחה.

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

    • הסעיפים הקבילים לתצוגה מורשית הם מפתח שורה prefix ו-columns (מגדירי עמודות).
    • כדי לציין קידומת של מסווג עמודה, מוסיפים כוכבית אחרי הקידומת. לדוגמה, כדי לכלול את כל העמודות שמתחילות ב-data, מזינים data* בשדה Columns אחרי שם משפחת העמודות.
    • המערכת מתעלמת מסעיף Limit כששומרים את התצוגה המורשית.
    • מידע נוסף על שימוש בכלי ליצירת שאילתות זמין במאמר יצירת שאילתות במסוף.
  7. לוחצים על Run.

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

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

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

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

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

    1. מוסיפים לפחות חשבון משתמש אחד ובוחרים את התפקיד שרוצים להקצות לו או לקבוצת חשבונות המשתמשים.
    2. אופציונלי: כדי להעניק גישה לעוד תפקידים, לוחצים על Add another role ואז מזינים את החשבון הראשי והתפקיד לכל תפקיד נוסף.
    3. לוחצים על Save.

gcloud

משנים תצוגה מורשית באמצעות הפקודה bigtable authorized-views update. מידע נוסף מופיע במאמרי עזרה בנושא gcloud bigtable authorized-views update.

gcloud bigtable authorized-views update AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID \
  --definition-file=DEFINITION_FILE_PATH

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

  • AUTHORIZED_VIEW_ID: המזהה הקבוע של התצוגה המורשית
  • INSTANCE_ID: המזהה הקבוע של המכונה
  • TABLE_ID: המזהה הקבוע של טבלת המקור
  • DEFINITION_FILE_PATH: הנתיב לייצוג בפורמט JSON תקין של תצוגה מורשית. דוגמאות לקובצי הגדרה בפורמט תקין זמינות במאמר דוגמאות לקובצי הגדרה.

אפשר גם להריץ את הפקודה בלי לספק את קובץ ההגדרה. במקרה הזה, ה-CLI של gcloud פותח עורך ומבקש מכם להזין ערכים.

אופציונלי: כדי למנוע מה-CLI של gcloud להציג בקשת אישור שמראה את ההבדל בין המבנה הנוכחי של התצוגה המורשית לבין המבנה אחרי שהעדכון יבוצע, מוסיפים את הדגל --no-interactive לפקודה.

Java

מידע על התקנת ספריית הלקוח של Bigtable ושימוש בה מופיע במאמר ספריות הלקוח של Bigtable.

כדי לבצע אימות ב-Bigtable, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

try {
  // Update to an authorized view permitting everything.
  AuthorizedView.SubsetView subsetView =
      AuthorizedView.SubsetView.newBuilder()
          .addRowPrefixes(ByteString.EMPTY)
          .putFamilySubsets(
              COLUMN_FAMILY,
              AuthorizedView.FamilySubsets.newBuilder()
                  .addQualifierPrefixes(ByteString.EMPTY)
                  .build())
          .build();
  AuthorizedView authorizedViewObj =
      AuthorizedView.newBuilder()
          .setSubsetView(subsetView)
          .setName(
              "projects/"
                  + projectId
                  + "/instances/"
                  + instanceId
                  + "/tables/"
                  + tableId
                  + "/authorizedViews/"
                  + authorizedViewId)
          .build();
  UpdateAuthorizedViewRequest request =
      UpdateAuthorizedViewRequest.newBuilder()
          .setAuthorizedView(authorizedViewObj)
          .setUpdateMask(FieldMask.newBuilder().addPaths("subset_view").build())
          .build();
  AuthorizedView authorizedView = adminClient.updateAuthorizedViewAsync(request).get();
  System.out.printf("AuthorizedView: %s updated successfully%n", authorizedView.getName());
} catch (Exception e) {
  System.err.println("Failed to modify authorized view: " + e.getMessage());
}

הפעלה או השבתה של הגנה מפני מחיקה

כדי להפעיל הגנה מפני מחיקה של תצוגה מורשית, משנים את קובץ ה-JSON שמגדיר את התצוגה המורשית על ידי הגדרת הדגל deletionProtection לערך true.

כדי להשבית את ההגנה מפני מחיקה, משנים את קובץ ה-JSON שמגדיר את התצוגה המורשית על ידי הגדרת הדגל deletionProtection לערך false.

מריצים את הפקודה bigtable authorized-views update עם השם של קובץ ה-JSON המעודכן כדי להשלים את השינויים בתצוגה המורשית. מידע נוסף זמין במאמרי עזרה בנושא gcloud bigtable authorized-views update.

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

אם מוחקים טבלה, גם כל התצוגות המורשות של הטבלה נמחקות.

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

המסוף

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על המופע שמכיל את התצוגה המפורטת המורשית.

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

  4. בכלי לבדיקת נתונים, מרחיבים את הטבלה ואת התצוגות המורשות.

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

gcloud

כדי למחוק תצוגה מורשית, משתמשים בפקודה bigtable instances tables authorized-views delete. מידע נוסף מופיע במאמרי עזרה בנושא gcloud bigtable authorized-views delete.

gcloud bigtable authorized-views delete AUTHORIZED_VIEW_ID \
  --instance=INSTANCE_ID \
  --table=TABLE_ID

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

  • AUTHORIZED_VIEW_ID: המזהה הקבוע של התצוגה המורשית
  • INSTANCE_ID: המזהה הקבוע של המכונה
  • TABLE_ID: המזהה הקבוע של טבלת המקור

אופציונלי: כדי למנוע מה-CLI של gcloud להציג הנחיית אישור שדורשת מכם לאשר או לבטל את המחיקה, מוסיפים את הדגל --nointeractive לפקודה.

Java

מידע על התקנת ספריית הלקוח של Bigtable ושימוש בה מופיע במאמר ספריות הלקוח של Bigtable.

כדי לבצע אימות ב-Bigtable, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

try {
  adminClient.deleteAuthorizedView(
      "projects/"
          + projectId
          + "/instances/"
          + instanceId
          + "/tables/"
          + tableId
          + "/authorizedViews/"
          + authorizedViewId);
  System.out.printf("AuthorizedView: %s deleted successfully%n", authorizedViewId);
} catch (NotFoundException e) {
  System.err.println("Failed to delete a non-existent authorized view: " + e.getMessage());
}

קבלת רשימה של תצוגות מורשות לטבלה

המסוף

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על המופע שמכיל את התצוגה המפורטת המורשית.

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

  4. בכלי לבדיקת נתונים, מרחיבים את הטבלה ואת התצוגות המורשות.

gcloud

מריצים את הפקודה bigtable authorized-views list. מידע נוסף מופיע במאמרי עזרה בנושא gcloud bigtable authorized-views list.

gcloud bigtable authorized-views list \
  --instance=INSTANCE_ID \
  --table=TABLE_ID

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

  • INSTANCE_ID: המזהה הקבוע של המכונה
  • TABLE_ID: המזהה הקבוע של הטבלה

Java

מידע על התקנת ספריית הלקוח של Bigtable ושימוש בה מופיע במאמר ספריות הלקוח של Bigtable.

כדי לבצע אימות ב-Bigtable, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

List<String> authorizedViewIds = new ArrayList<>();
try {
  ListAuthorizedViewsRequest request =
      ListAuthorizedViewsRequest.newBuilder()
          .setParent(
              "projects/" + projectId + "/instances/" + instanceId + "/tables/" + tableId)
          .build();
  for (AuthorizedView view : adminClient.listAuthorizedViews(request).iterateAll()) {
    String id = AuthorizedViewName.parse(view.getName()).getAuthorizedView();
    System.out.println(id);
    authorizedViewIds.add(id);
  }
} catch (NotFoundException e) {
  System.err.println(
      "Failed to list authorized views from a non-existent table: " + e.getMessage());
}

הצגת פרטים על תצוגה מורשית

המסוף

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על המופע שמכיל את התצוגה המפורטת המורשית.

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

  4. בכלי לבדיקת נתונים, מרחיבים את הטבלה ואת התצוגות המורשות.

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

gcloud

כדי לקבל פרטים על תצוגה מורשית, מריצים את הפקודה bigtable instances tables authorized-views describe. מידע נוסף מופיע במאמרי עזרה בנושא gcloud bigtable authorized-views describe.

gcloud bigtable authorized-views describe \
–-instance=INSTANCE_ID \
–-table=TABLE_ID \
AUTHORIZED_VIEW_ID

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

  • INSTANCE_ID: המזהה הקבוע של המכונה
  • TABLE_ID: המזהה הקבוע של הטבלה
  • AUTHORIZED_VIEW_ID: המזהה הקבוע של התצוגה המורשית

Java

מידע על התקנת ספריית הלקוח של Bigtable ושימוש בה מופיע במאמר ספריות הלקוח של Bigtable.

כדי לבצע אימות ב-Bigtable, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

AuthorizedView authorizedView = null;
try {
  authorizedView =
      adminClient.getAuthorizedView(
          "projects/"
              + projectId
              + "/instances/"
              + instanceId
              + "/tables/"
              + tableId
              + "/authorizedViews/"
              + authorizedViewId);
  AuthorizedView.SubsetView subsetView = authorizedView.getSubsetView();

  for (ByteString rowPrefix : subsetView.getRowPrefixesList()) {
    System.out.printf("Row Prefix: %s%n", rowPrefix.toStringUtf8());
  }
  for (Map.Entry<String, AuthorizedView.FamilySubsets> entry :
      subsetView.getFamilySubsetsMap().entrySet()) {
    for (ByteString qualifierPrefix : entry.getValue().getQualifierPrefixesList()) {
      System.out.printf(
          "Column Family: %s, Qualifier Prefix: %s%n",
          entry.getKey(), qualifierPrefix.toStringUtf8());
    }
    for (ByteString qualifier : entry.getValue().getQualifiersList()) {
      System.out.printf(
          "Column Family: %s, Qualifier: %s%n", entry.getKey(), qualifier.toStringUtf8());
    }
  }
} catch (NotFoundException e) {
  System.err.println(
      "Failed to retrieve metadata from a non-existent authorized view: " + e.getMessage());
}

הענקת גישה לתצוגה מורשית

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

המסוף

  1. פותחים את רשימת מופעי Bigtable במסוף Google Cloud .

    פתיחת רשימת המופעים

  2. לוחצים על המופע שמכיל את התצוגה המפורטת המורשית.

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

  4. בחלונית של הכלי לבחירת נתונים, מרחיבים את הטבלה ואת התצוגות המורשות.

  5. ליד השם של התצוגה המורשית, לוחצים על תפריט הפעולות more_vert ואז על Grant access.

  6. מוסיפים לפחות חשבון משתמש אחד ובוחרים את התפקיד שרוצים להקצות לו או לקבוצת חשבונות המשתמשים.

  7. אופציונלי: כדי לתת גישה לעוד תפקידים, לוחצים על Add another role ואז מזינים את החשבון הראשי ואת התפקיד לכל תפקיד נוסף.

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

gcloud

כדי להעניק גישה לתצוגה מורשית, משתמשים בפקודה bigtable authorized-views add-iam-policy-binding. מידע נוסף מופיע במאמרי עזרה בנושא gcloud bigtable authorized-views add-iam-policy-binding.

gcloud bigtable authorized-views add-iam-policy-binding AUTH_VIEW_ID \
--instance=INSTANCE_ID --table=TABLE_ID \
--member=PRINCIPAL --role=ROLE

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

  • AUTH_VIEW_ID: המזהה של התצוגה המורשית
  • TABLE_ID: המזהה של הטבלה שעליה מבוססת התצוגה המורשית
  • INSTANCE_ID: המופע שמכיל את הטבלה
  • PRINCIPAL: חשבון המשתמש שרוצים להעניק לו גישה, למשל user:222larabrown@gmail.com
  • ROLE: התפקיד שאתם מקצים, כמו roles/bigtable.reader.

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