הזרמה מ-Pub/Sub אל BigQuery

במדריך הזה משתמשים בתבנית Pub/Sub Subscription to BigQuery כדי ליצור ולהפעיל משימת Dataflow template באמצעות מסוף Google Cloud או Google Cloud CLI. במדריך מוסבר על צינור עיבוד נתונים בסטרימינג שקורא הודעות בקידוד JSON מ-Pub/Sub וכותב אותן לטבלה ב-BigQuery.

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

‫Dataflow הוא שירות מנוהל במלואו להמרת נתונים ולהוספת נתונים בסטרים (בזמן אמת) ובאצווה. הוא מספק סביבת פיתוח פשוטה של צינור עיבוד נתונים שמשתמשת ב-Apache Beam SDK כדי לבצע טרנספורמציה של נתונים נכנסים, ואז להפיק את הנתונים שעברו טרנספורמציה.

היתרון של תהליך העבודה הזה הוא שאפשר להשתמש בפונקציות UDF כדי לשנות את נתוני ההודעות לפני שהם נכתבים ב-BigQuery.

לפני שמריצים צינור Dataflow לתרחיש הזה, כדאי לשקול אם מינוי ל-Pub/Sub BigQuery עם UDF עונה על הדרישות שלכם.

מטרות

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

עלויות

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

  • Dataflow
  • Pub/Sub
  • Cloud Storage
  • BigQuery

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

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

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

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

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

המסוף

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine, Dataflow, Cloud Logging, BigQuery, Pub/Sub, Cloud Storage, Resource Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. כדי להשלים את השלבים במדריך הזה, לחשבון המשתמש שלכם צריך להיות התפקיד משתמש בחשבון שירות. לחשבון שירות ברירת המחדל של Compute Engine צריכים להיות התפקידים הבאים: Dataflow Worker,‏ Dataflow Admin,‏ Pub/Sub Editor,‏ Storage Object Admin ו-BigQuery Data Editor. כדי להוסיף את התפקידים הנדרשים במסוף Google Cloud :

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM
    2. בוחרים את הפרויקט הרצוי.
    3. בשורה שמכילה את חשבון המשתמש שלכם, לוחצים על Edit principal ואז על Add another role.
    4. בתפריט הנפתח, בוחרים בתפקיד Service Account User.
    5. בשורה שמכילה את חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, לוחצים על Edit principal ואז על Add another role.
    6. ברשימה הנפתחת, בוחרים בתפקיד Dataflow Worker.
    7. חוזרים על הפעולה עבור התפקידים Dataflow Admin,‏ Pub/Sub Editor,‏ Storage Object Admin ו-BigQuery Data Editor, ואז לוחצים על Save.

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

gcloud

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

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

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

    gcloud init
  5. יוצרים או בוחרים 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 .

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

  7. מפעילים את ממשקי ה-API של Compute Engine,‏ Dataflow,‏ Cloud Logging,‏ BigQuery,‏ Pub/Sub,‏ Cloud Storage ו-Resource Manager:

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

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

    gcloud services enable compute.googleapis.com dataflow.googleapis.com logging.googleapis.com bigquery.googleapis.com pubsub.googleapis.com storage.googleapis.com cloudresourcemanager.googleapis.com
  8. אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:

    gcloud auth application-default login

    אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

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

  9. מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

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

    • PROJECT_ID: מזהה הפרויקט.
    • USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
    • ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
  10. התקינו את ה-CLI של Google Cloud.

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

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

    gcloud init
  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. מפעילים את ממשקי ה-API של Compute Engine,‏ Dataflow,‏ Cloud Logging,‏ BigQuery,‏ Pub/Sub,‏ Cloud Storage ו-Resource Manager:

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

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

    gcloud services enable compute.googleapis.com dataflow.googleapis.com logging.googleapis.com bigquery.googleapis.com pubsub.googleapis.com storage.googleapis.com cloudresourcemanager.googleapis.com
  16. אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:

    gcloud auth application-default login

    אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.

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

  17. מעניקים תפקידים לחשבון המשתמש. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM: roles/iam.serviceAccountUser

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

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

    • PROJECT_ID: מזהה הפרויקט.
    • USER_IDENTIFIER: המזהה של חשבון המשתמש . לדוגמה, myemail@example.com.
    • ROLE: תפקיד ה-IAM שאתם מקצים לחשבון המשתמש.
  18. מקצים תפקידים לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. מריצים את הפקודה הבאה לכל אחד מהתפקידים הבאים ב-IAM:

    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/storage.admin
    • roles/pubsub.editor
    • roles/bigquery.dataEditor
    gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" --role=SERVICE_ACCOUNT_ROLE

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

    • PROJECT_ID: מזהה הפרויקט.
    • PROJECT_NUMBER: מספר הפרויקט. כדי למצוא את מספר הפרויקט, משתמשים בפקודה gcloud projects describe.
    • SERVICE_ACCOUNT_ROLE: כל תפקיד בנפרד.

יצירת קטגוריה של Cloud Storage

מתחילים ביצירת קטגוריה של Cloud Storage באמצעות מסוף Google Cloud או Google Cloud CLI. צינור הנתונים של Dataflow משתמש בקטגוריית האחסון הזו כמיקום אחסון זמני.

המסוף

  1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

    כניסה לדף Buckets

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

  3. בדף Create a bucket, בשדה Name your bucket, מזינים שם שעומד בדרישות לשמות של קטגוריות. שמות של קטגוריות של Cloud Storage חייבים להיות ייחודיים באופן גלובלי. לא בוחרים באפשרויות האחרות.

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

gcloud

משתמשים בפקודה gcloud storage buckets create:

gcloud storage buckets create gs://BUCKET_NAME

מחליפים את BUCKET_NAME בשם של קטגוריה ב-Cloud Storage שעומד בקריטריונים לשמות של קטגוריות. שמות של קטגוריות של Cloud Storage חייבים להיות ייחודיים באופן גלובלי.

יצירת נושא ומינוי ב-Pub/Sub

יוצרים נושא Pub/Sub ואז יוצרים מינוי לנושא הזה.

המסוף

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

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

    לדף Topics

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

  3. בשדה Topic ID (מזהה הנושא), מזינים מזהה לנושא. מידע על מתן שמות לנושאים זמין במאמר הנחיות למתן שמות לנושא או למינוי.

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

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

  6. בדף פרטי הנושא, השם של המינוי שנוצר מופיע בקטע Subscription ID. חשוב לשמור את הערך הזה לשלבים הבאים.

gcloud

כדי ליצור נושא, מריצים את הפקודה gcloud pubsub topics create. מידע על מתן שמות למינויים זמין במאמר הנחיות למתן שמות לנושאים או למינויים.

gcloud pubsub topics create TOPIC_ID

מחליפים את TOPIC_ID בשם של נושא Pub/Sub.

כדי ליצור מינוי לנושא, מריצים את הפקודה gcloud pubsub subscriptions create:

gcloud pubsub subscriptions create --topic TOPIC_ID SUBSCRIPTION_ID

מחליפים את SUBSCRIPTION_ID בשם של מינוי Pub/Sub.

יצירת טבלה ב-BigQuery

בשלב הזה יוצרים טבלה ב-BigQuery עם הסכימה הבאה:

שם עמודה סוג נתונים
name STRING
customer_id INTEGER

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

המסוף

  1. עוברים לדף BigQuery.

    כניסה ל-BigQuery

  2. בחלונית Explorer, מרחיבים את הפרויקט ואז בוחרים מערך נתונים.

  3. בקטע Dataset info, לוחצים על Create table.

  4. ברשימה יצירת טבלה מ, בוחרים באפשרות טבלה ריקה.

  5. בתיבה Table (טבלה), מזינים את שם הטבלה.

  6. בקטע Schema, לוחצים על Edit as text (עריכה כטקסט).

  7. מדביקים את הגדרת הסכימה הבאה:

    name:STRING,
    customer_id:INTEGER
    
  8. לוחצים על יצירת טבלה.

gcloud

משתמשים בפקודה bq mk.

bq mk --table \
  PROJECT_ID:DATASET_NAME.TABLE_NAME \
  name:STRING,customer_id:INTEGER

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

  • PROJECT_ID: מזהה הפרויקט
  • DATASET_NAME: השם של מערך הנתונים
  • TABLE_NAME: השם של הטבלה שרוצים ליצור

הרצת צינור עיבוד הנתונים

מריצים צינור עיבוד נתונים בסטרימינג באמצעות התבנית Pub/Sub Subscription to BigQuery שסופקה על ידי Google. הצינור מקבל נתונים נכנסים מנושא Pub/Sub ומוציא את הנתונים למערך הנתונים שלכם ב-BigQuery.

המסוף

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

    מעבר אל Jobs

  2. לוחצים על יצירת עבודה מתבנית.

  3. מזינים שם עבודה לעבודת Dataflow.

  4. בנקודת קצה אזורית, בוחרים אזור לעבודת Dataflow.

  5. בקטע תבנית Dataflow, בוחרים בתבנית Pub/Sub Subscription to BigQuery.

  6. בשדה BigQuery output table (טבלת פלט של BigQuery), בוחרים באפשרות Browse (עיון) ובוחרים את הטבלה ב-BigQuery.

  7. ברשימה Pub/Sub input subscription, בוחרים את המינוי ל-Pub/Sub.

  8. בקטע Temporary location (מיקום זמני), מזינים את הפרטים הבאים:

    gs://BUCKET_NAME/temp/
    

    מחליפים את BUCKET_NAME בשם של קטגוריית Cloud Storage. התיקייה temp מאחסנת קבצים זמניים של משימות Dataflow.

  9. לוחצים על הפעלת העבודה.

gcloud

כדי להריץ את התבנית בשורת הפקודה או בטרמינל, משתמשים בפקודה gcloud dataflow jobs run.

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates-DATAFLOW_REGION/latest/PubSub_Subscription_to_BigQuery \
    --region DATAFLOW_REGION \
    --staging-location gs://BUCKET_NAME/temp \
    --parameters \
inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID,\
outputTableSpec=PROJECT_ID:DATASET_NAME.TABLE_NAME

מחליפים את המשתנים הבאים:

  • JOB_NAME. שם למשימה
  • DATAFLOW_REGION: אזור למשימה
  • PROJECT_ID: השם של Google Cloud הפרויקט
  • SUBSCRIPTION_ID: השם של מינוי Pub/Sub
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery
  • TABLE_NAME: השם של הטבלה ב-BigQuery

פרסום הודעות ב-Pub/Sub

אחרי שמשימת Dataflow מתחילה, אפשר לפרסם הודעות ב-Pub/Sub, והצינור כותב אותן ב-BigQuery.

המסוף

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

    לדף Topics

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

  3. לוחצים על הודעות.

  4. לוחצים על פרסום ההודעות.

  5. בשדה מספר ההודעות, מזינים 10.

  6. בשדה Message body (גוף ההודעה), מזינים {"name": "Alice", "customer_id": 1}.

  7. לוחצים על פרסום.

gcloud

כדי לפרסם הודעות בנושא, משתמשים בפקודה gcloud pubsub topics publish.

for run in {1..10}; do
  gcloud pubsub topics publish TOPIC_ID --message='{"name": "Alice", "customer_id": 1}'
done

מחליפים את TOPIC_ID בשם הנושא.

צפייה בתוצאות

צופים בנתונים שנכתבו בטבלה ב-BigQuery. יכול להיות שיחלפו עד דקה לפני שהנתונים יתחילו להופיע בטבלה.

המסוף

  1. במסוף Google Cloud , עוברים לדף BigQuery.
    לדף BigQuery

  2. בעורך השאילתות, מריצים את השאילתה הבאה:

    SELECT * FROM `PROJECT_ID.DATASET_NAME.TABLE_NAME`
    LIMIT 1000
    

    מחליפים את המשתנים הבאים:

    • PROJECT_ID: השם של Google Cloud הפרויקט
    • DATASET_NAME: השם של מערך הנתונים ב-BigQuery
    • TABLE_NAME: השם של הטבלה ב-BigQuery

gcloud

כדי לבדוק את התוצאות ב-BigQuery, מריצים את השאילתה הבאה:

bq query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.DATASET_NAME.TABLE_NAME`'

מחליפים את המשתנים הבאים:

  • PROJECT_ID: השם של Google Cloud הפרויקט
  • DATASET_NAME: השם של מערך הנתונים ב-BigQuery
  • TABLE_NAME: השם של הטבלה ב-BigQuery

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

במדריך הזה אנחנו מניחים שההודעות ב-Pub/Sub מעוצבות כ-JSON, ושהסכימה של טבלה ב-BigQuery תואמת לנתוני ה-JSON.

אפשר גם לספק פונקציה בהגדרת המשתמש (UDF) ב-JavaScript שמבצעת טרנספורמציה של הנתונים לפני שהם נכתבים ב-BigQuery. הפונקציה UDF יכולה לבצע עיבוד נוסף, כמו סינון, הסרת פרטים אישיים מזהים (PII) או הוספת שדות לנתונים.

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

שימוש בטבלת הודעות שלא ניתן למסור

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

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

הצינור כותב את השגיאות האלה לטבלת הודעות שלא ניתן למסור ב-BigQuery. כברירת מחדל, צינור הנתונים יוצר באופן אוטומטי טבלת הודעות שלא נמסרו בשם TABLE_NAME_error_records, כאשר TABLE_NAME הוא שם טבלת הפלט. כדי להשתמש בשם אחר, מגדירים את פרמטר התבנית outputDeadletterTable.

הסרת המשאבים

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

מחיקת הפרויקט

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

המסוף

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

gcloud

    כדי למחוק Google Cloud פרויקט:

    gcloud projects delete PROJECT_ID

מחיקת המשאבים הבודדים

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

הפסקת צינור עיבוד הנתונים של Dataflow

המסוף

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

    מעבר אל Jobs

  2. לוחצים על העבודה שרוצים להפסיק.

    כדי לעצור עבודה, הסטטוס שלה צריך להיות running.

  3. בדף פרטי המשימה, לוחצים על עצירה.

  4. לוחצים על ביטול.

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

gcloud

כדי לבטל את עבודת ה-Dataflow, משתמשים בפקודה gcloud dataflow jobs.

gcloud dataflow jobs list \
  --filter 'NAME=JOB_NAME AND STATE=Running' \
  --format 'value(JOB_ID)' \
  --region "DATAFLOW_REGION" \
  | xargs gcloud dataflow jobs cancel --region "DATAFLOW_REGION"

מחיקת משאבי הפרויקט Google Cloud

המסוף

  1. מחיקת הנושא והמינוי ב-Pub/Sub.

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

      לדף Topics

    2. בוחרים את הנושא שיצרתם.

    3. לוחצים על מחיקה כדי למחוק את הנושא באופן סופי.

    4. נכנסים לדף Subscriptions ב-Pub/Sub במסוף Google Cloud .

      לדף "מינויים"

    5. בוחרים את המינוי שנוצר עם הנושא.

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

  2. מוחקים את הטבלה ואת מערך הנתונים ב-BigQuery.

    1. במסוף Google Cloud , עוברים לדף BigQuery.

      כניסה ל-BigQuery

    2. בחלונית Explorer מרחיבים את הפרויקט.

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

  3. מחיקת הקטגוריה של Cloud Storage.

    1. במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.

      כניסה לדף Buckets

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

gcloud

  1. כדי למחוק את המינוי והנושא ב-Pub/Sub, משתמשים בפקודות gcloud pubsub subscriptions delete ו-gcloud pubsub topics delete.

    gcloud pubsub subscriptions delete SUBSCRIPTION_ID
    gcloud pubsub topics delete TOPIC_ID
    
  2. כדי למחוק את טבלת BigQuery, משתמשים בפקודה bq rm.

    bq rm -f -t PROJECT_ID:tutorial_dataset.tutorial
    
  3. מוחקים את מערך הנתונים ב-BigQuery. השימוש במערך הנתונים לבדו לא כרוך בעלויות.

    bq rm -r -f -d PROJECT_ID:tutorial_dataset
    
  4. כדי למחוק את הקטגוריה של Cloud Storage ואת האובייקטים שבה, משתמשים בפקודה gcloud storage rm. השימוש בדלי לבדו לא כרוך בחיובים.

    gcloud storage rm gs://BUCKET_NAME --recursive
    

ביטול פרטי כניסה

המסוף

אם אתם משאירים את הפרויקט, אתם צריכים לבטל את התפקידים שהקציתם לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.

  1. נכנסים לדף IAM במסוף Google Cloud .

כניסה לדף IAM

  1. בוחרים פרויקט, תיקייה או ארגון.

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

  3. לוחצים על Delete ליד כל תפקיד שרוצים לבטל ואז על Save.

gcloud

  • אם אתם משאירים את הפרויקט, אתם צריכים לבטל את התפקידים שהענקתם לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. מריצים את הפקודה הבאה פעם אחת לכל אחד מהתפקידים הבאים ב-IAM:
    • roles/dataflow.admin
    • roles/dataflow.worker
    • roles/storage.admin
    • roles/pubsub.editor
    • roles/bigquery.dataEditor
      gcloud projects remove-iam-policy-binding <var>PROJECT_ID</var> \
      --member=serviceAccount:<var>PROJECT_NUMBER</var>-compute@developer.gserviceaccount.com \
      --role=<var>ROLE</var>
    

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

    gcloud auth application-default revoke
  • אם רוצים, מבטלים את פרטי הכניסה של ה-CLI של gcloud.

    gcloud auth revoke

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