יצירה ועדכון של מוניטורים ב-Bigtable

במאמר הזה מוסבר איך ליצור ולעדכן מונים ב-Bigtable באמצעות aggregates, תאים בטבלה שמצטברים בהם ערכים בזמן הכתיבה. במדריך למתחילים הזה משתמשים ב-Google Cloud CLI וב-cbt CLI כדי ליצור שלושה מונים:

  • מונה שמציג סכום מצטבר
  • מונה שעוקב אחרי הערך המינימלי מבין כל הערכים שנוספו
  • מונה שעוקב אחרי הערך המקסימלי מכל הערכים שנוספו

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

  1. נכנסים לחשבון Google.

    אם עדיין אין חשבון, יוצרים חשבון חדש.

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

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

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

    gcloud init
  5. אחרי שתאתחלו את ה-CLI של gcloud, עדכנו אותו והתקינו את הרכיבים הנדרשים:

    gcloud components update
    gcloud components install cbt
  6. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  7. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  8. מפעילים את ממשקי Cloud Bigtable API ו-Cloud Bigtable Admin API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  9. התקינו את ה-CLI של Google Cloud.

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

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

    gcloud init
  12. אחרי שתאתחלו את ה-CLI של gcloud, עדכנו אותו והתקינו את הרכיבים הנדרשים:

    gcloud components update
    gcloud components install cbt
  13. יוצרים או בוחרים Google Cloud פרויקט.

    תפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים
    • יוצרים Google Cloud פרויקט:

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של פרויקט Google Cloud שיוצרים.

    • בוחרים את הפרויקט שיצרתם: Google Cloud

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  14. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  15. מפעילים את ממשקי Cloud Bigtable API ו-Cloud Bigtable Admin API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com
  16. מריצים את הפקודות הבאות כדי לוודא ש-CLI של gcloud מעודכן וכולל את cbt CLI:
    gcloud components update
    gcloud components install cbt

יצירת מכונה של Bigtable

  1. משתמשים בפקודה bigtable instances create כדי ליצור מכונה.

    gcloud bigtable instances create counters-quickstart-instance \
        --display-name="Counters quickstart instance" \
        --cluster-config=id="counters-quickstart-cluster",zone="us-east1-c"
    

התחברות למכונה

  1. כדי להגדיר את ה-CLI של cbt כך שישתמש בפרויקט ובמופע שלכם, צריך ליצור קובץ .cbtrc.

    echo project = PROJECT_ID >> ~/.cbtrc && echo instance = counters-quickstart-instance >> ~/.cbtrc
    

    מחליפים את PROJECT_ID במזהה הפרויקט שבו אתם משתמשים.

  2. מוודאים שהגדרתם את הקובץ .cbtrc בצורה נכונה.

    cat ~/.cbtrc
    

    במסוף מוצג התוכן של הקובץ .cbtrc, שנראה כך:

    project = PROJECT_ID
    instance = counters-quickstart-instance

    עכשיו אפשר להשתמש ב-cbt CLI עם המופע.

יצירת טבלה עם משפחות עמודות מצטברות

  1. משתמשים בפקודה cbt createtable כדי ליצור טבלה בשם counters_quickstart_table עם שלוש משפחות של עמודות מצטברות. מגדירים לכל קבוצת עמודות סוג צבירה שונה:

    • קבוצת עמודות max_family היא מסוג Max עם סוג קלט של Integer.
    • קבוצת עמודות min_family היא מסוג Min עם סוג קלט של Integer.
    • קבוצת עמודות sum_family היא מסוג Sum עם סוג קלט של Integer.
    cbt createtable counters_quickstart_table families=sum_family:never:intsum,min_family:never:intmin,max_family:never:intmax
    
  2. מריצים את הפקודה cbt ls כדי לראות את רשימת העמודות.

    cbt ls counters_quickstart_table
    

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

    Family Name     GC Policy
    -----------     ---------
    max_family      <never>
    min_family      <never>
    sum_family      <never>
    

יצירת מוני נתונים בטבלה

  1. משתמשים בפקודה cbt addtocell כדי לכתוב ערך ראשוני של 5 בעמודה חדשה בכל אחת משלוש משפחות העמודות, באמצעות מפתח שורה של row-key1 וחותמת זמן של 0. הפעולה הזו יוצרת תאים מצטברים, שמשמשים כדלפקים.

    cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=5@0
    cbt addtocell counters_quickstart_table row-key1 min_family:min_column=5@0
    cbt addtocell counters_quickstart_table row-key1 max_family:max_column=5@0
    

קריאת הנתונים

  1. כדי להציג את ערכי המונה כמספרים שלמים ולא כבייטים, צריך להגדיר קובץ yaml ש-cbt CLI יכול להשתמש בו כדי לעצב את הפלט. מריצים את הפקודה הבאה:

    echo "families:" > cbtformat.yaml
    echo "  max_family:" >> cbtformat.yaml
    echo "    default_encoding: BigEndian" >> cbtformat.yaml
    echo "    default_type: INT64" >> cbtformat.yaml
    echo "  min_family:" >> cbtformat.yaml
    echo "    default_encoding: BigEndian" >> cbtformat.yaml
    echo "    default_type: INT64" >> cbtformat.yaml
    echo "  sum_family:" >> cbtformat.yaml
    echo "    default_encoding: BigEndian" >> cbtformat.yaml
    echo "    default_type: INT64" >> cbtformat.yaml
    
  2. מוודאים שהגדרתם את הקובץ cbtformat.yaml בצורה נכונה.

    cat ~/cbtformat.yaml
    

    במסוף מוצג התוכן של הקובץ cbtformat.yaml, שנראה בערך כך:

    families:
      max_family:
        default_encoding: BigEndian
        default_type: INT64
      min_family:
        default_encoding: BigEndian
        default_type: INT64
      sum_family:
        default_encoding: BigEndian
        default_type: INT64
    
  3. כדי להעביר את הקובץ yaml ולקרוא את הנתונים שהוספתם לטבלה, משתמשים בפקודה cbt read. עכשיו בטבלה יש שלוש עמודות, ולכל אחת מהן יש סוג צבירה שונה.

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    הפלט שמוצג ב-Shell אמור להיראות כך: הערכים מפורמטים כמספרים שלמים, וחותמות הזמן הן בפורמט UTC.

    row-key1
      max_family:max_column                    @ 1970/01/01-00:00:00.000000
        5
      min_family:min_column                    @ 1970/01/01-00:00:00.000000
        5
      sum_family:sum_column                    @ 1970/01/01-00:00:00.000000
        5
    

עדכון המונים

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

    cbt addtocell counters_quickstart_table row-key1 sum_family:sum_column=3@0
    cbt addtocell counters_quickstart_table row-key1 min_family:min_column=3@0
    cbt addtocell counters_quickstart_table row-key1 max_family:max_column=3@0
    
  2. משתמשים שוב בפקודה cbt read כדי לקרוא את הנתונים בטבלה. כל תא מכיל עכשיו ערך מצטבר.

    cbt read counters_quickstart_table format-file=$HOME/cbtformat.yaml
    

    התא sum_column מכיל את הסכום של 5 ו-3 (8), התא min_column מכיל את הערך המינימלי מבין שני הערכים שנכתבו בו (3), והתא max_column מכיל את הערך המקסימלי מבין שני הערכים שנכתבו בו (5).

    row-key1
        max_family:max_column                    @ 1970/01/01-00:00:00.000000
            5
        min_family:min_column                    @ 1970/01/01-00:00:00.000000
            3
        sum_family:sum_column                    @ 1970/01/01-00:00:00.000000
            8
    
  3. אופציונלי: מריצים שאילתה בטבלה במסוף Google Cloud באמצעות SQL.

    1. במסוף Google Cloud , פותחים את הדף Bigtable instances.

      כניסה לרשימת המקרים

    2. בוחרים באפשרות counters-quickstart-instance מהרשימה.

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

    4. לוחצים על הכרטיסייה עורך.

    5. מדביקים את השאילתה הזו בעורך:

      SELECT * FROM `counters_quickstart_table`
      
    6. לוחצים על Run. תוצאות השאילתה מוצגות בטבלה Results ודומות לתוצאות הבאות:

    _key max_family min_family sum_family
    row-key1 { "max_column": 5 } { "min_column": 5 } { "sum_column": 8 }

הסרת המשאבים

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

  1. בטרמינל, מוחקים את הטבלה counters_quickstart_table:

    cbt deletetable counters_quickstart_table
    
  2. מוחקים את המכונה:

    cbt deleteinstance counters-quickstart-instance
    
  3. מוחקים את הקובץ .cbtrc:

    rm ~/.cbtrc
    
  4. מחיקת קובץ העיצוב:

    rm ~/cbtformat.yaml
    
  5. אם רוצים, מבטלים את פרטי הכניסה של ה-CLI של gcloud:

    gcloud auth revoke
    

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