יצירה של טבלה עם הפעלה של זרם שינויים ותיעוד של שינויים

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

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

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים פרויקט ב- Google Cloud או יוצרים אותו.

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

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

    כניסה לדף לבחירת הפרויקט

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

  3. מפעילים את ממשקי ה-API‏ Dataflow,‏ Cloud Bigtable API ו-Cloud Bigtable Admin API.

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

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

    הפעלת ממשקי ה-API

  4. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

יצירת טבלה עם הפעלה של שינוי נתונים

  1. נכנסים לדף Instances של Bigtable במסוף Google Cloud .

    כניסה לדף Instances

  2. לוחצים על המזהה של המופע שבו משתמשים במדריך למתחילים הזה.

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

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

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

  5. נותנים לטבלה את השם change-streams-quickstart.

  6. מוסיפים קבוצת עמודות בשם cf.

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

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

אתחול צינור נתונים כדי לתעד את זרם השינויים

  1. ב-Cloud Shell, מריצים את הפקודות הבאות כדי להוריד את הקוד ולהריץ אותו.

    git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
    cd java-docs-samples/bigtable/beam/change-streams
    mvn compile exec:java -Dexec.mainClass=ChangeStreamsHelloWorld \
    "-Dexec.args=--project=PROJECT_ID --bigtableProjectId=PROJECT_ID \
    --bigtableInstanceId=BIGTABLE_INSTANCE_ID --bigtableTableId=change-streams-quickstart \
    --runner=dataflow --region=BIGTABLE_REGION --experiments=use_runner_v2"
    

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

    • PROJECT_ID: מזהה הפרויקט שבו אתם משתמשים
    • BIGTABLE_INSTANCE_ID: המזהה של המופע שיכיל את הטבלה החדשה
    • BIGTABLE_REGION: האזור שבו נמצאת מכונת Bigtable, למשל us-east5
  2. נכנסים לדף Dataflow במסוף Google Cloud .

    מעבר אל Dataflow

  3. לוחצים על העבודה עם שם שמתחיל ב-changestreamquickstart.

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

  5. לוחצים על Worker logs (יומני עובדים) כדי לעקוב אחרי הפלט של מקור הנתונים.

  6. ב-Cloud Shell, כותבים נתונים ל-Bigtable כדי לראות את התהליך של מקור הנתונים לשינויים.

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID \
    import change-streams-quickstart quickstart-data.csv column-family=cf
    
  7. ב Google Cloud מסוף, מוודאים שהערך של חומרה מוגדר ל-Info לפחות.

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

    Change captured: user123#2023,USER,SetCell,cf,col1,abc
    Change captured: user546#2023,USER,SetCell,cf,col1,def
    Change captured: user789#2023,USER,SetCell,cf,col1,ghi
    

הסרת המשאבים

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

  1. השבתת עדכוני התוכן בטבלה

    gcloud bigtable instances tables update change-streams-quickstart --instance=BIGTABLE_INSTANCE_ID \
    --clear-change-stream-retention-period
    
  2. מחיקת הטבלה change-streams-quickstart:

    cbt -instance=BIGTABLE_INSTANCE_ID -project=PROJECT_ID deletetable change-streams-quickstart
    
  3. עוצרים את צינור עיבוד הנתונים של שינוי הנתונים:

    1. נכנסים לדף Jobs ב-Dataflow במסוף Google Cloud .

      מעבר לדף 'משרות'

    2. בוחרים את משימת הסטרימינג מרשימת המשימות.

    3. בניווט, לוחצים על הפסקה.

    4. בתיבת הדו-שיח Stop job (הפסקת העבודה), מבטלים את הצינור ולוחצים על Stop job (הפסקת העבודה).

  4. אופציונלי: אם יצרתם מופע חדש לצורך המדריך הזה למתחילים, אתם יכולים למחוק אותו:

    cbt deleteinstance BIGTABLE_INSTANCE_ID
    

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