יצירה וניהול של טבלאות

בדף הזה מוסבר איך ליצור טבלאות של Bigtable ולבצע בהן פעולות באמצעות מסוף Google Cloud , Google Cloud CLI או cbtCLI.

ב-CLI של cbt יש תמיכה בכמה פקודות שלא מתוארות בדף הזה. רשימה מלאה של הפקודות זמינה בחומר העזר בנושא cbt.

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

הוראות ליצירה ולניהול של תצוגות מורשות של טבלה מופיעות במאמר בנושא תצוגות מורשות.

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

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

  1. מתקינים את ה-CLI של gcloud.

  2. אופציונלי: אם אתם מתכננים להשתמש ב-CLI של cbt, פועלים לפי ההוראות במאמר התקנת ה-CLI של cbt , כולל השלב של יצירת קובץ .cbtrc.

    ההוראות ל-CLI של cbt בדף הזה מניחות שהגדרתם את מזהה הפרויקט ואת מזהה המופע בקובץ .cbtrc. אפשר גם להשתמש בדגלים -project ו--instance כדי להגדיר את הערכים האלה בכל פעם שמריצים פקודה ב-CLI של cbt.

צור טבלה

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

המסוף

כדי ליצור טבלה חדשה במופע:

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על Create table.

  5. מזינים מזהה טבלה לטבלה.

  6. אופציונלי: מוסיפים משפחות עמודות.

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

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

    1. בוחרים באפשרות הפעלת מקור נתונים לשינויים.

    2. בשדה Retention time (זמן השמירה), מזינים מספר מ-1 עד 7 כדי לציין את מספר הימים שבהם הנתונים של זרם השינויים יישמרו.

  8. אופציונלי: אם לא רוצים ש-Bigtable ייצור גיבוי יומי של הטבלה, מבטלים את הסימון בתיבת הסימון הפעלת גיבוי אוטומטי. מידע נוסף מופיע במאמר בנושא שימוש בגיבוי אוטומטי.

  9. אופציונלי: אפשר להפעיל גישה לא תדירה לטבלה כחלק מאחסון מדורג (תצוגה מקדימה):

    1. בוחרים באפשרות הפעלת אחסון מדורג.

    2. בשדה Age threshold (סף גיל), מזינים את מספר הימים שאחריהם Bigtable מעביר נתונים מאחסון SSD לאחסון עם גישה לא תדירה. המספר חייב להיות 30 או יותר.

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

  11. לוחצים על יצירה.

gcloud

כדי ליצור טבלה, מריצים את הפקודה הבאה. רשימת האפשרויות המלאה זמינה במאמר בנושא gcloud bigtable instances tables create.

gcloud bigtable instances tables create TABLE_ID \
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN-FAMILIES

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

  • TABLE_ID: מזהה ייחודי של הטבלה החדשה
  • INSTANCE_ID: המזהה של המכונה
  • PROJECT_ID: הפרויקט שיכיל את הטבלה החדשה
  • COLUMN-FAMILIES: רשימה מופרדת בפסיקים של שמות של משפחות עמודות. אפשר להוסיף עוד משפחות עמודות בהמשך.

אופציונלי:

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

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

    --change-stream-retention-period=RETENTION_PERIOD
    

    מחליפים את הערך RETENTION_PERIOD באורך הזמן שבו Bigtable צריך לשמור את נתוני שינוי הזרם של הטבלה. הזמן חייב להיות בין יום אחד לשבעה ימים. היחידות הקבילות הן ימים (d), שעות (h), דקות (m) ושניות (s). דוגמאות: 48h או 6d

  • כדי לאפשר ל-Bigtable ליצור גיבוי יומי של הטבלה ולשמור כל גיבוי למשך תקופת השמירה שמוגדרת כברירת מחדל של שבעה ימים, משתמשים בדגל --enable-automated-backup כשיוצרים את הטבלה.

    gcloud bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --column-families=COLUMN-FAMILIES \
        --enable-automated-backup
    

    כדי להגדיר תקופת שמירה אחרת, משתמשים בדגל --automated-backup-retention-period במקום בדגל --enable-automated-backup ומזינים ערך של עד 90 ימים במהדורת Enterprise או עד 365 ימים במהדורת Enterprise Plus. הערך חייב להיות מספר עם יחידת זמן של m, h או d (דקות, שעות או ימים), למשל 15d ל-15 ימים.

    מהדורת Enterprise Plus: כברירת מחדל, גיבוי יומי נוצר בכל האשכולות במופע של הטבלה. כדי להגדיר מיקומי אשכולות שבהם Bigtable צריך ליצור גיבוי יומי של הטבלה, משתמשים בדגל --automated-backup-locations במקום בדגל --enable-automated-backup. צריך לציין רשימה מופרדת בפסיקים של מיקומי אשכולות שבהם צריך להפעיל את הגיבוי האוטומטי. דוגמה: us-central1-a,us-east1-b,europe-west1-c.

  • כדי להפעיל גישה לא תדירה כחלק מאחסון מדורג (גרסת Preview), משתמשים בדגל
    --tiered-storage-infrequent-access-older-than ומחליפים את AGE_THRESHOLD בערך של 30 ימים לפחות. היחידות הקבילות הן ימים (d), שעות (h), דקות (m) ושניות (s). דוגמה: 32d או 32d12h.

    gcloud beta bigtable instances tables create TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD
    

cbt

משתמשים בפקודה הבאה ומחליפים את TABLE_NAME בשם הטבלה: אי אפשר להשתמש ב-cbt CLI כדי ליצור טבלה עם מקור נתונים לשינויים.

cbt createtable TABLE_ID

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

cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE

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

  • TABLE_ID: מזהה ייחודי של הטבלה החדשה
  • FAMILY_NAME: : רשימה מופרדת בפסיקים של שמות של משפחות עמודות. אפשר להוסיף עוד משפחות עמודות בהמשך.
  • TYPE: סוג הצבירה. הערך חייב להיות intsum, intmin, intmax או inthll.

אפשרויות נוספות מפורטות במאמר יצירת טבלה במאמרי העזרה בנושא cbt CLI.

אם מחקתם טבלה בטעות, אל תנסו ליצור את הטבלה שנמחקה באופן ידני. משתמשים ב-CLI של gcloud bigtable instances tables undelete כדי לשחזר את הטבלה.

אופציונלי: פיצול הטבלה לפי מפתח שורה

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

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

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

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

המסוף

אי אפשר לפצל מראש את השורות כשיוצרים טבלה באמצעותGoogle Cloud המסוף.

gcloud

כדי לפצל טבלה לפי מפתח שורה, מריצים את הפקודה הבאה. רשימת האפשרויות המלאה זמינה במאמר בנושא gcloud bigtable instances tables create.

gcloud bigtable instances tables create TABLE_ID\
    --instance=INSTANCE_ID \
    --project=PROJECT_ID \
    --column-families=COLUMN-FAMILIES \
    --splits=SPLITS

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

  • TABLE_ID: מזהה ייחודי של הטבלה החדשה
  • INSTANCE_ID: המזהה של המכונה
  • PROJECT_ID: הפרויקט שיכיל את הטבלה החדשה
  • COLUMN-FAMILIES: רשימה מופרדת בפסיקים של שמות של משפחות עמודות. אפשר להוסיף עוד משפחות עמודות בהמשך.
  • SPLITS: מפתחות השורות שבהם הטבלה אמורה להתפצל בהתחלה, לדוגמה 10,20.

cbt

כדי לפצל מראש טבלה על סמך מפתח השורה, משתמשים בתחביר הבא כדי ליצור את הטבלה. מחליפים את [TABLE_NAME] בשם הטבלה ואת [SPLITS] ברשימה מופרדת בפסיקים של קידומות של מפתחות שורות שבהן רוצים להשתמש לפיצול מראש.

```none
cbt createtable [TABLE_NAME] splits=[SPLITS]
```

לדוגמה, כדי לפצל מראש את הטבלה my-table לפי מפתחות שורה שמתחילים ב-10 וב-20:

```none
cbt createtable my-table splits=10,20
```

שינוי של משפחות עמודות בטבלה

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

הוספת קבוצות עמודות

המסוף

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על עריכה בטבלה שרוצים לשנות.

  5. לכל קבוצת עמודות שרוצים להוסיף, מבצעים את הפעולות הבאות:

    1. לוחצים על הוספת משפחת עמודות.
    2. מזינים מזהה ייחודי לקבוצת העמודות.
    3. הגדר את מדיניות איסוף האשפה עבור משפחת העמודות.
    4. לוחצים על סיום.
    5. לוחצים על Save.

gcloud

אי אפשר להשתמש ב-CLI של gcloud כדי להוסיף משפחות עמודות לטבלה.

cbt

כדי להוסיף קבוצת עמודות לטבלה, משתמשים בפקודה הבאה:

cbt createfamily TABLE_ID FAMILY_NAME

לדוגמה, כדי להוסיף את משפחות העמודות cf1 ו-cf2 לטבלה my-table:

cbt createfamily my-table cf1
cbt createfamily my-table cf2

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

cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE

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

  • TABLE_ID: מזהה הטבלה
  • FAMILY_NAME: : רשימה מופרדת בפסיקים של שמות של משפחות עמודות. אפשר להוסיף עוד משפחות עמודות בהמשך.
  • TYPE: סוג הצבירה. הערך חייב להיות intsum, ‏intmin, ‏intmax או inthll.

מחיקת קבוצות עמודות

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

המסוף

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על עריכה בטבלה שרוצים לשנות.

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

    1. מעבירים את העכבר מעל השורה של קבוצת העמודות שרוצים למחוק.
    2. לחץ על .
  6. לוחצים על Save.

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

  8. לוחצים על אישור.

gcloud

אי אפשר להשתמש ב-CLI של gcloud כדי למחוק משפחות עמודות מטבלה.

cbt

כדי למחוק קבוצת עמודות מטבלה, משתמשים בפקודה הבאה, ומחליפים את [TABLE_NAME] בשם הטבלה ואת [FAMILY_NAME] בשם קבוצת העמודות:

cbt deletefamily [TABLE_NAME] [FAMILY_NAME]

לדוגמה, כדי למחוק את קבוצת העמודות cf2 מהטבלה my-table:

cbt deletefamily my-table cf2

צפייה ברשימת הטבלאות

המסוף

כדי לראות רשימה של טבלאות במופע:

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

gcloud

כדי לראות רשימה של טבלאות, מריצים את הפקודה gcloud bigtable instances tables list.

gcloud bigtable instances tables list --instances=INSTANCE_IDS

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

  • INSTANCE_IDS: רשימה מופרדת בפסיקים של מזהי מופעים.

cbt

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

    cbt ls INSTANCE_ID

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

  • INSTANCE_ID: המזהה הקבוע של המופע.

C++‎

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

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

namespace cbt = ::google::cloud::bigtable;
namespace cbta = ::google::cloud::bigtable_admin;
using ::google::cloud::StreamRange;
[](cbta::BigtableTableAdminClient admin, std::string const& project_id,
   std::string const& instance_id) {
  std::string instance_name = cbt::InstanceName(project_id, instance_id);

  google::bigtable::admin::v2::ListTablesRequest r;
  r.set_parent(instance_name);
  r.set_view(google::bigtable::admin::v2::Table::NAME_ONLY);

  StreamRange<google::bigtable::admin::v2::Table> tables =
      admin.ListTables(std::move(r));
  for (auto& table : tables) {
    if (!table) throw std::move(table).status();
    std::cout << table->name() << "\n";
  }
}

C#‎

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

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

// Lists tables in intance.
// Initialize request argument(s).
ListTablesRequest request = new ListTablesRequest
{
    ParentAsInstanceName = s_instanceName
};
try
{
    // Make the request.
    PagedEnumerable<ListTablesResponse, Table> response = bigtableTableAdminClient.ListTables(request);

}
catch (Exception ex)
{
    Console.WriteLine($"Error listing tables {ex.Message}");
}

Java

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

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

// Lists tables in the current instance.
try {
  String parent = "projects/" + projectId + "/instances/" + instanceId;
  ListTablesRequest request = ListTablesRequest.newBuilder().setParent(parent).build();
  for (Table table : adminClient.listTables(request).iterateAll()) {
    System.out.println(table.getName());
  }
} catch (NotFoundException e) {
  System.err.println("Failed to list tables from a non-existent instance: " + e.getMessage());
}

Node.js

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

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

// List tables in current project
const [tables] = await adminClient.listTables({parent: instance.name});
tables.forEach(table => {
  console.log(table.name);
});

PHP

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

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

use Google\Cloud\Bigtable\Admin\V2\Client\BigtableInstanceAdminClient;
use Google\Cloud\Bigtable\Admin\V2\Client\BigtableTableAdminClient;
use Google\Cloud\Bigtable\Admin\V2\ListTablesRequest;

/**
 * List tables in an instance
 *
 * @param string $projectId The Google Cloud project ID
 * @param string $instanceId The ID of the Bigtable instance
 */
function list_tables(
    string $projectId,
    string $instanceId
): void {
    $instanceAdminClient = new BigtableInstanceAdminClient();
    $tableAdminClient = new BigtableTableAdminClient();

    $instanceName = $instanceAdminClient->instanceName($projectId, $instanceId);

    printf('Listing Tables:' . PHP_EOL);
    $listTablesRequest = (new ListTablesRequest())
        ->setParent($instanceName);
    $tables = $tableAdminClient->listTables($listTablesRequest)->iterateAllElements();
    $tables = iterator_to_array($tables);
    if (empty($tables)) {
        print('No table exists.' . PHP_EOL);
        return;
    }
    foreach ($tables as $table) {
        print($table->getName() . PHP_EOL);
    }
}

Python

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

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

tables = instance.list_tables()
print("Listing tables in current project...")
if tables != []:
    for tbl in tables:
        print(tbl.table_id)
else:
    print("No table exists in current project...")

Ruby

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

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

# instance_id = "my-instance"
bigtable.tables(instance_id).all.each do |t|
  puts "Table: #{t.name}"
end

הצגת מידע על טבלה

המסוף

כדי לראות מידע על טבלה:

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע. בכל טבלה, Google Cloud במסוף מוצג מספר האשכולות שבהם הטבלה מאוחסנת, הסטטוס של הטבלה, ניצול האחסון והמזהים של הגיבויים הנוכחיים של הטבלה. בטבלאות שמופעל בהן אחסון מדורג (גרסת Preview), אפשר לראות את השימוש באחסון SSD ואת השימוש באחסון לגישה לא תדירה.

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

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

gcloud

כדי לראות מידע על טבלה, מריצים את הפקודה gcloud bigtable instances tables describe.

gcloud bigtable instances tables describe TABLE_ID \
    --instance=INSTANCE_ID

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

  • TABLE_ID: מזהה ייחודי של הטבלה
  • INSTANCE_ID: המזהה של המכונה

cbt

אפשר להשתמש ב-CLI‏ cbt כדי לקבל רשימה של משפחות עמודות קיימות בטבלה.

משתמשים בפקודה הבאה ומחליפים את [TABLE_NAME] בשם הטבלה:

cbt ls [TABLE_NAME]

קביעת מדיניות איסוף אשפה

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

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

  • אם יוצרים את משפחת העמודות באמצעות לקוח Cloud Bigtable HBase ל-Java או באמצעות HBase shell, או כלי אחר שמשתמש בלקוח HBase ל-Java,‏ Bigtable שומר רק תא אחד לכל שורה או לכל נקודת חיתוך של עמודה במשפחת העמודות. הגדרת ברירת המחדל הזו תואמת ל-HBase.

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

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

גיבוי ושחזור של טבלה

הוראות לגיבוי טבלה ולשחזור מגיבוי לטבלה חדשה זמינות במאמר ניהול גיבויים.

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

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

הוראות לביצוע המשימות הבאות מופיעות במאמר הגדרת זרם שינויים.

  • הפעלת עדכון תוכן בטבלה קיימת
  • השבתה של שינוי השידור
  • עדכון תקופת השמירה של מקור נתונים לשינויים

מחיקת טבלה

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

המסוף

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על ליד הטבלה שרוצים למחוק.

  5. לוחצים על Delete.

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

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

gcloud

  1. כדי למחוק טבלאות, מריצים את הפקודה gcloud bigtable instances tables delete.

    gcloud bigtable instances tables delete TABLE_ID --instance=INSTANCE_ID
    

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

    • TABLE_ID: המזהה הייחודי של הטבלה
    • INSTANCE_ID: המזהה של המכונה
  2. במסוף, מזינים y כדי לאשר את מחיקת הטבלה.

cbt

כדי למחוק טבלה, משתמשים בפקודה הבאה ומחליפים את [TABLE_NAME] בשם הטבלה:

cbt deletetable [TABLE_NAME]

ביטול מחיקה של טבלה

אם מוחקים טבלה בטעות, אפשר להשתמש בפקודה bigtable instances tables undelete של ה-CLI של gcloud כדי לבטל את המחיקה או לשחזר את הטבלה. אל תנסו ליצור מחדש את הטבלה שנמחקה באופן ידני.

כדי לבטל מחיקה של טבלה, מריצים את הפקודה הבאה במסוף:

gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID

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

  • TABLE_ID: המזהה הייחודי של הטבלה
  • INSTANCE_ID: המזהה של המכונה

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

ההגבלות הבאות חלות:

  • אפשר לבטל את המחיקה של טבלה במשך שבעה ימים ממועד המחיקה.
  • אי אפשר לבטל מחיקה של טבלה באמצעות מסוף Google Cloud , ספריות הלקוח של Cloud Bigtable או cbt CLI.
  • אי אפשר לבטל את המחיקה של טבלה ממופע שנמחק.
  • אי אפשר לבטל את המחיקה של טבלה שהופעל בה CMEK.
  • כשמבטלים את המחיקה של טבלה, Bigtable לא משחזר קישורים של מדיניות IAM עם הרשאות ברמת דיוק גבוהה לטבלה שנמחקה.

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

שינוי ההגנה מפני מחיקה

אתם יכולים להפעיל או להשבית את ההגנה מפני מחיקה של טבלה אם אתם חשבון משתמש בתפקיד שכולל את ההרשאה bigtable.tables.update, כמו roles/bigtable.admin. הגנה מפני מחיקה מונעת את המחיקה של הטבלה, של כל קבוצות העמודות בטבלה ושל המופע שמכיל את הטבלה.

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

המסוף

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על לצד מזהה הטבלה.

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

gcloud

כדי להפעיל הגנה מפני מחיקה של טבלה, מריצים את הפקודה gcloud bigtable instances table update:

```sh
gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --deletion-protection
```

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

```sh
gcloud bigtable instances tables update TABLE_ID \
    --instance=INSTANCE_ID \
    --no-deletion-protection
```

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

+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance

cbt

אי אפשר להשתמש ב-CLI של cbt כדי להפעיל או להשבית את ההגנה מפני מחיקה.

שינוי סף הגיל של אחסון עם גישה לא תדירה

אפשר לשנות את סף הגיל של גישה לא תדירה שכלולה באחסון מדורג בכל שלב.

המסוף

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על עריכה בטבלה שרוצים לשנות.

  5. בשדה סף הגיל, מזינים את מספר הימים החדש שאחריו Bigtable מעביר נתונים מאחסון ה-SSD לאחסון עם גישה לא תדירה. המספר חייב להיות 30 או יותר.

gcloud

כדי לשנות את סף הגיל של אחסון עם גישה לא תדירה, מריצים את הפקודה gcloud beta bigtable instances tables update עם הדגל --tiered-storage-infrequent-access-older-than:

    gcloud beta bigtable instances tables update TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --tiered-storage-infrequent-access-older-than=AGE_THRESHOLD

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

  • TABLE_ID: המזהה של הטבלה שרוצים לעדכן.
  • INSTANCE_ID: מזהה המכונה.
  • PROJECT_ID: הפרויקט שמכיל את הטבלה שרוצים לעדכן.
  • AGE_THRESHOLD: סף הגיל, שחייב להיות לפחות 30 ימים. יחידות המידה הקבילות הן ימים (d), שעות (h), דקות (m) ושניות (s). לדוגמה: מ-32d בעבר ל-33d.

השבתה של אחסון לגישה לא תדירה

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

המסוף

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

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

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

  3. בחלונית הימנית לוחצים על טבלאות.

    בדף Tables מוצגת רשימה של טבלאות במופע.

  4. לוחצים על עריכה בטבלה שרוצים לשנות.

  5. מבטלים את הסימון בתיבה הפעלת אחסון מדורג.

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

gcloud

כדי להשבית את האחסון בגישה לא תדירה, משתמשים בפקודה gcloud beta bigtable instances tables update עם הדגל --clear-tiered-storage-config:

    gcloud beta bigtable instances tables update TABLE_ID \
        --instance=INSTANCE_ID \
        --project=PROJECT_ID \
        --clear-tiered-storage-config

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

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

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