הזרמת שינויים ל-Pub/Sub באמצעות טריגר אופציונלי של פונקציית Cloud Run

במדריך הזה מוסבר איך להשתמש בתבנית Bigtable סנכרון שינויים בזרמי נתונים ל-Pub/Sub, כולל איך להגדיר נושא ולהגדיר את התבנית. אפשר גם ליצור פונקציית Cloud Run בשפת התכנות הרצויה, שמופעלת על ידי זרם האירועים.

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

מטרות

במדריך הזה מוסבר איך:

  • יוצרים טבלת Bigtable עם הפעלת זרם שינויים.
  • יוצרים נושא Pub/Sub עם סכימת שינוי הנתונים ב-Bigtable.
  • פריסת שינוי בסטרימינג של Bigtable לצינור עיבוד נתונים ב-Pub/Sub ב-Dataflow באמצעות התבנית.
  • אפשר לצפות בזרם האירועים ישירות ב-Pub/Sub או ביומנים של פונקציית Cloud Run.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

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

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

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

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

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

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  1. מעדכנים ומתקינים את cbt CLI .
    gcloud components update
    gcloud components install cbt

יוצרים נושא Pub/Sub

  1. נכנסים לדף Topics של Pub/Sub במסוף Google Cloud .

    לדף Topics

  2. לוחצים על יצירת נושא.

  3. מגדירים את המזהה לערך bigtable-change-stream-topic.

  4. בוחרים באפשרות שימוש בסכימה.

  5. בתפריט הנפתח Select a Pub/Sub schema, לוחצים על Create new schema. תיפתח כרטיסייה חדשה שבה מגדירים את הסכימה.

    1. מגדירים את מזהה הסכימה לערך bigtable-change-stream-schema.
    2. מגדירים את סוג הסכימה ל-Avro.
    3. מדביקים את ההגדרה הבאה של הסכימה. מידע נוסף על הסכימה זמין בדף התיעוד של התבנית.
      {
          "name" : "ChangelogEntryMessage",
          "type" : "record",
          "namespace" : "com.google.cloud.teleport.bigtable",
          "fields" : [
            { "name" : "rowKey", "type" : "bytes"},
            {
              "name" : "modType",
              "type" : {
                "name": "ModType",
                "type": "enum",
                "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]}
            },
            { "name": "isGC", "type": "boolean" },
            { "name": "tieBreaker", "type": "int"},
            { "name": "columnFamily", "type": "string"},
            { "name": "commitTimestamp", "type" : "long"},
            { "name" : "sourceInstance", "type" : "string"},
            { "name" : "sourceCluster", "type" : "string"},
            { "name" : "sourceTable", "type" : "string"},
            { "name": "column", "type" : ["null", "bytes"]},
            { "name": "timestamp", "type" : ["null", "long"]},
            { "name": "timestampFrom", "type" : ["null", "long"]},
            { "name": "timestampTo", "type" : ["null", "long"]},
            { "name" : "value", "type" : ["null", "bytes"]}
        ]
      }
    
    1. לוחצים על יצירה כדי ליצור את הסכימה.
  6. סוגרים את הכרטיסייה יצירת סכימה, מרעננים את רשימת הסכימות ובוחרים את הסכימה החדשה שהגדרתם.

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

אופציונלי: יצירת פונקציית Cloud Run

אפשר לעבד את נתוני הסטרימינג של Pub/Sub באמצעות פונקציית Cloud Run.

  1. בדף פרטים של נושא bigtable-change-stream-topic, לוחצים על הפעלת פונקציית Cloud .
  2. בשדה Function name, מזינים את השם bt-ps-tutorial-function.
  3. בקטע קוד מקור, לוחצים על התפריט הנפתח סביבת זמן ריצה ואז בוחרים את סביבת זמן הריצה ואת שפת התכנות הרצויות. נוצר hello world שמדפיס את זרם השינויים כשהוא מגיע. מידע נוסף על כתיבת פונקציות Cloud Run זמין במסמכי התיעוד.
  4. בכל שאר השדות משאירים את ערכי ברירת המחדל.
  5. לוחצים על פריסת הפונקציה.

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

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

    כניסה לדף Instances

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

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

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

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

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

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

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

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

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

  1. בדף Tables (טבלאות) של Bigtable, מוצאים את הטבלה change-streams-pubsub-tutorial.
  2. בעמודה Change stream (הזנת שינויים), לוחצים על