תיוג של טבלאות, תצוגות ומערכי נתונים

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

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

תג הוא צמד מפתח/ערך שאפשר לצרף ישירות לטבלה, לתצוגה או למערך נתונים, או צמד מפתח/ערך שטבלה, תצוגה או מערך נתונים יכולים לקבל בירושה ממשאביGoogle Cloud אחרים. אתם יכולים להחיל כללי מדיניות באופן מותנה בהתאם לתגים. לדוגמה, אפשר להעניק באופן מותנה את התפקיד BigQuery Data Viewer (צפייה בנתונים ב-BigQuery) לישות ראשית בכל מערך נתונים עם התג environment:dev.

מידע נוסף על השימוש בתגים בהיררכיית המשאבים של Google Cloud זמין במאמר סקירה כללית על תגים.

כדי להעניק הרשאות למשאבי BigQuery רבים שקשורים זה לזה בו-זמנית, כולל משאבים שעדיין לא קיימים, כדאי להשתמש בתנאי IAM.

מגבלות

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

  • אפשר לצרף עד 50 תגים לטבלה או למערך נתונים.

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

  • משתמשים עם גישה מותנית למערך נתונים או לטבלה לא יכולים לשנות את ההרשאות של המשאב הזה דרך Google Cloud המסוף. שינויים בהרשאות נתמכים רק באמצעות הכלי bq וממשק BigQuery API.

  • שירותים מסוימים מחוץ ל-BigQuery לא יכולים לאמת כראוי תנאים של תגי IAM. אם תנאי התג חיובי, כלומר משתמש מקבל תפקיד במשאב רק אם למשאב יש תג מסוים, הגישה למשאב נדחית בלי קשר לתגים שמצורפים אליו. אם תנאי התג הוא שלילי, כלומר למשתמש מוענק תפקיד במשאב רק אם למשאב אין תג מסוים, תנאי התג לא נבדק.

    לדוגמה, Data Catalog לא יכול לאמת תנאי תגי IAM במערכי נתונים ובטבלאות של BigQuery. נניח שיש מדיניות IAM מותנית שמעניקה למתמחה את התפקיד BigQuery Data Viewer במערכי נתונים עם התג employee_type=intern. מכיוון שזהו תנאי חיובי לתג, המתמחה לא יכול לצפות בקבוצות נתונים באמצעות חיפוש ב-Data Catalog, גם אם לקבוצות הנתונים האלה יש את התג employee_type=intern. אם התנאי של התג השתנה לתנאי שלילי, כך שהמתמחה יכול לראות רק מערכי נתונים שלא כוללים את התג employee_type=intern, הבדיקה תדלג על השורה הזו והמתמחה יוכל לראות את מערכי הנתונים שאליהם בדרך כלל אין לו גישה ב-BigQuery.

התפקידים הנדרשים

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

שני התפקידים הבאים שמוגדרים מראש ב-IAM כוללים את כל ההרשאות הנדרשות ב-BigQuery:

  • בעלים של נתונים ב-BigQuery‏ (roles/bigquery.dataOwner)
  • אדמין של BigQuery‏ (roles/bigquery.admin)

ההרשאות של מנהל המשאבים להוספה ולהסרה של תגים כלולות בתפקיד משתמש בתגים (roles/resourcemanager.tagUser).

ההרשאות הנדרשות

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

פעולה ממשקי BigQuery‏ (API, ‏ CLI, ‏ Console) ו-Terraform ‫Cloud Resource Manager API או gcloud
צירוף תג לטבלה או לתצוגה
  • הרשאה bigquery.tables.createTagBinding בטבלה או בתצוגה
  • ההרשאה resourcemanager.tagValueBindings.create בערך התג
  • bigquery.tables.create הרשאה לצרף תג כשיוצרים טבלה או תצוגה
  • bigquery.tables.update הרשאה לצרף תג כשמעדכנים טבלה או תצוגה
  • הרשאה bigquery.tables.createTagBinding בטבלה או בתצוגה
  • ההרשאה resourcemanager.tagValueBindings.create בערך התג
הסרת תג מטבלה או מתצוגה
  • הרשאה bigquery.tables.deleteTagBinding בטבלה או בתצוגה
  • ההרשאה resourcemanager.tagValueBindings.delete בערך התג
  • הרשאה bigquery.tables.update להסרת תג כשמעדכנים טבלה או תצוגה
  • הרשאה bigquery.tables.deleteTagBinding בטבלה או בתצוגה
  • ההרשאה resourcemanager.tagValueBindings.delete בערך התג
צירוף תג לקבוצת נתונים
  • הרשאת bigquery.datasets.createTagBinding במערך הנתונים
  • ההרשאה resourcemanager.tagValueBindings.create בערך התג
  • הרשאה bigquery.datasets.create לצירוף תג כשיוצרים מערך נתונים
  • הרשאה bigquery.datasets.update לצירוף תג כשמעדכנים מערך נתונים
  • הרשאת bigquery.datasets.createTagBinding במערך הנתונים
  • ההרשאה resourcemanager.tagValueBindings.create בערך התג
הסרת תג מקבוצת נתונים
  • הרשאת bigquery.datasets.deleteTagBinding במערך הנתונים
  • ההרשאה resourcemanager.tagValueBindings.delete בערך התג
  • bigquery.datasets.update הרשאה להסרת תג כשמעדכנים מערך נתונים
  • הרשאת bigquery.datasets.deleteTagBinding במערך הנתונים
  • ההרשאה resourcemanager.tagValueBindings.delete בערך התג

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

  • כדי לראות את רשימת המפתחות של התגים שמשויכים לארגון או לפרויקט אב, צריך את ההרשאה resourcemanager.tagKeys.list ברמת האב של מפתח התג ואת ההרשאה resourcemanager.tagKeys.get לכל מפתח תג. כדי לראות את רשימת מפתחות התגים במסוף BigQuery, לוחצים על שם מערך הנתונים ואז על עריכת הפרטים, או לוחצים על שם הטבלה או התצוגה ואז על פרטים > עריכת הפרטים.

  • כדי לראות את רשימת הערכים של תגים שמשויכים לארגון או לפרויקט אב, צריך את ההרשאה resourcemanager.tagValues.list ברמת האב של ערך התג ואת ההרשאה resourcemanager.tagValues.get לכל ערך תג. כדי לראות את רשימת הערכים של מפתח התג במסוף BigQuery, לוחצים על שם מערך הנתונים ואז על עריכת הפרטים, או לוחצים על שם הטבלה או התצוגה ואז על פרטים > עריכת הפרטים.

כדי להשתמש בתגים ב-Cloud Resource Manager API או ב-gcloud, אתם צריכים את ההרשאות הבאות:

  • כדי לראות רשימה של התגים שמצורפים לטבלה או לתצוגה באמצעות Cloud Resource Manager API או ה-CLI של gcloud, אתם צריכים את הרשאת IAM‏ bigquery.tables.listTagBindings.
  • כדי להציג את התגים בפועל של טבלה או תצוגה, אתם צריכים את הרשאת ה-IAM‏ bigquery.tables.listEffectiveTags.
  • כדי לראות את רשימת התגים שמצורפים למערך נתונים באמצעות Cloud Resource Manager API או ה-CLI של gcloud, אתם צריכים את הרשאת IAM‏ bigquery.datasets.listTagBindings.
  • כדי להציג את התגים בפועל של מערך נתונים, אתם צריכים את הרשאת bigquery.datasets.listEffectiveTags ב-IAM.

יצירת מפתחות וערכים של תגים

אפשר ליצור תג לפני שמצרפים אותו למשאב BigQuery, או ליצור תג באופן ידני כשיוצרים את המשאב באמצעותGoogle Cloud המסוף.

במאמרים יצירת תג והוספת ערכי תגים במאמרי העזרה של מנהל המשאבים מוסבר איך יוצרים מפתחות וערכים של תגים.

תיוג מערכי נתונים

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

צירוף תגים כשיוצרים מערך נתונים חדש

אחרי שיוצרים תג, אפשר לצרף אותו למערך נתונים חדש ב-BigQuery. אפשר לצרף רק ערך תג אחד למערך נתונים לכל מפתח תג נתון. אפשר לצרף עד 50 תגים למערך נתונים.

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

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

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

  4. לוחצים על View actions > Create dataset.

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

  6. מרחיבים את הקטע Tags.

    1. כדי להחיל תג קיים:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחיבחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.

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

      2. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

    2. כדי להזין תג חדש באופן ידני:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.

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

      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

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

  7. לוחצים על יצירת מערך נתונים.

SQL

משתמשים בהצהרה CREATE SCHEMA.

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

    כניסה ל-BigQuery

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

    CREATE SCHEMA PROJECT_ID.DATASET_ID
    OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שיוצרים.
    • TAG_KEY_1: שם המפתח ממרחב השמות שרוצים להגדיר כתג הראשון במערך הנתונים, לדוגמה, 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של ערך התג, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני.

  3. לוחצים על הפעלה.

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

BQ

משתמשים בפקודה bq mk --dataset עם הדגל --add_tags:

bq mk --dataset \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID

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

  • TAG: התג שמצרפים למערך הנתונים החדש. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה, 556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם מפתח במרחב שמות ושם מקוצר של ערך.
  • PROJECT_ID: מזהה הפרויקט שבו אתם יוצרים מערך נתונים.
  • DATASET_ID: המזהה של מערך הנתונים החדש.

Terraform

משתמשים במשאב google_bigquery_dataset.

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

בדוגמה הבאה נוצר מערך נתונים בשם my_dataset, ואז מצורפים אליו תגים על ידי מילוי השדה resource_tags:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env2"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department2"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "my_dataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days

  # Attach tags to the dataset
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

כדי להחיל את ההגדרות של Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud

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

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

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

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

API

מבצעים קריאה ל-datasets.insert ומוסיפים את התגים לשדה resource_tags.

צירוף תגים לקבוצת נתונים קיימת

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

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

  4. בקטע פרטי מערך הנתונים, לוחצים על עריכת הפרטים.

  5. מרחיבים את הקטע Tags.

    1. כדי להחיל תג קיים:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחיבחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.

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

      2. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

    2. כדי להזין תג חדש באופן ידני:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.

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

      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

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

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

SQL

משתמשים בהצהרה ALTER SCHEMA SET OPTIONS.

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

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

    כניסה ל-BigQuery

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

    ALTER SCHEMA PROJECT_ID.DATASET_ID
    SET OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה.
    • TABLE_ID: שם הטבלה שמתייגים.
    • TAG_KEY_1: השם ממרחב השמות של המפתח שרוצים להגדיר כתג הראשון בטבלה, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של ערך התג, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני.

  3. לוחצים על הפעלה.

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

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

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

    כניסה ל-BigQuery

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

    ALTER SCHEMA PROJECT_ID.DATASET_ID
    SET OPTIONS (
      tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה.
    • TABLE_ID: שם הטבלה שמתייגים.
    • TAG_KEY_1: השם ממרחב השמות של המפתח שרוצים להגדיר כתג הראשון בטבלה, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של ערך התג, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני.

  3. לוחצים על הפעלה.

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

BQ

משתמשים בפקודה bq update עם הדגל --add_tags:

bq update \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID

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

  • TAG: התג שמצרפים למערך הנתונים. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה, 556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם מפתח במרחב שמות ושם מקוצר של ערך.
  • PROJECT_ID: מזהה הפרויקט שבו נמצא מערך הנתונים הקיים.
  • DATASET_ID: המזהה של מערך הנתונים הקיים.

gcloud

כדי לצרף תג למערך נתונים באמצעות שורת הפקודה, יוצרים משאב של קישור תג באמצעות הפקודה gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

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

  • TAG_VALUE_NAME: המזהה הקבוע או השם ממרחב השמות של ערך התג לצירוף, כמו tagValues/4567890123 או 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: המזהה המלא של מערך הנתונים, כולל שם הדומיין של ה-API ‏ (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: המיקום של מערך הנתונים.

Terraform

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

API

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

הצגת רשימת תגים שמצורפים לקבוצת נתונים

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

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

    התגים מופיעים בקטע Dataset info (פרטי מערך הנתונים).

BQ

כדי לראות את רשימת התגים שמשויכים למערך נתונים, משתמשים בפקודה bq show.

bq show PROJECT_ID:DATASET_ID

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

  • PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים.
  • DATASET_ID: המזהה של מערך הנתונים שעבורו רוצים להציג את התגים.

gcloud

כדי לקבל רשימה של קישורי תגים שמצורפים למשאב, משתמשים בפקודה gcloud resource-manager tags bindings list:

gcloud resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

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

  • RESOURCE_ID: המזהה המלא של מערך הנתונים, כולל שם הדומיין של ה-API ‏ (//bigquery.googleapis.com/), כדי לזהות את סוג המשאב. לדוגמה: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.

  • LOCATION: המיקום של מערך הנתונים.

הפלט אמור להיראות כך:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Terraform

משתמשים בפקודה terraform state show כדי להציג את המאפיינים של מערך הנתונים, כולל השדה resource_tags. מריצים את הפקודה הזו בספרייה שבה הופעל קובץ התצורה של Terraform של מערך הנתונים.

terraform state show google_bigquery_dataset.default

API

מבצעים קריאה ל-datasets.get כדי לקבל את משאב מערך הנתונים. משאב מערך הנתונים כולל תגים שמצורפים למערך הנתונים בשדה resource_tags.

תצוגות

משתמשים בתצוגה INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

לדוגמה, השאילתה הבאה מציגה את כל התגים שמצורפים לכל מערכי הנתונים באזור מסוים. השאילתה הזו מחזירה טבלה עם עמודות שכוללות את schema_name (שמות מערכי הנתונים), option_name (תמיד 'tags'), object_type (תמיד ARRAY<STRUCT<STRING, STRING>>) ו-option_value, שמכילה מערכים של אובייקטים מסוג STRUCT שמייצגים תגים שמשויכים לכל מערך נתונים. למערכי נתונים שלא הוקצו להם תגים, העמודה option_value מחזירה מערך ריק.

SELECT * from region-REGION.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE option_name='tags'

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

  • REGION: האזור שבו נמצאים מערכי הנתונים.

ניתוק תגים ממערך נתונים

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

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

  4. בקטע פרטי מערך הנתונים, לוחצים על עריכת הפרטים.

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

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

SQL

משתמשים בהצהרה ALTER SCHEMA SET OPTIONS.

בדוגמה הבאה מוצג ניתוק תגים מקבוצת נתונים באמצעות האופרטור -=. כדי להסיר את כל התגים מקבוצת נתונים, אפשר לציין tags=NULL או tags=[].

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

    כניסה ל-BigQuery

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

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה.
    • TABLE_ID: שם הטבלה שממנה מנתקים את התגים.
    • TAG_KEY_1: שם המפתח ממרחב השמות של התג הראשון שרוצים לנתק, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של הערך של התג שרוצים לנתק, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני שמנתקים.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני שמנתקים.

  3. לוחצים על הפעלה.

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

BQ

משתמשים בפקודה bq update עם הדגל --remove_tags:

bq update \
    --remove_tags=REMOVED_TAG \
    PROJECT_ID:DATASET_ID

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

  • REMOVED_TAG: התג שרוצים להסיר ממערך הנתונים. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. אפשר להזין רק מפתחות ללא צמדי ערכים. לדוגמה, 556741164180/env,myProject/department. לכל תג צריך להיות שם מפתח במרחב השמות.
  • PROJECT_ID: מזהה הפרויקט שמכיל את מערך הנתונים.
  • DATASET_ID: המזהה של מערך הנתונים שממנו רוצים לנתק את התגים.

לחלופין, אם רוצים להסיר את כל התגים ממערך נתונים, משתמשים בפקודה bq update עם הדגל --clear_all_tags:

bq update \
    --clear_all_tags
    PROJECT_ID:DATASET_ID

gcloud

כדי לבטל את הקישור של תג לקבוצת נתונים באמצעות שורת הפקודה, מוחקים את הקישור של התג באמצעות הפקודה gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

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

  • TAG_VALUE_NAME: המזהה הקבוע או השם עם מרחב השמות של ערך התג שרוצים לנתק, כמו tagValues/4567890123 או 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: המזהה המלא של מערך הנתונים, כולל שם הדומיין של ה-API ‏ (//bigquery.googleapis.com/) כדי לזהות את סוג המשאב. לדוגמה: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset.
  • LOCATION: המיקום של מערך הנתונים.

Terraform

מסירים את התגים מהשדה resource_tags של מערך הנתונים, ואז מחילים את ההגדרה המעודכנת באמצעות משאב google_bigquery_dataset.

API

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

תיוג טבלאות

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

צירוף תגים כשיוצרים טבלה חדשה

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

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

  4. בקטע פרטי מערך הנתונים, לוחצים על יצירת טבלה.

  5. מזינים את הפרטים של הטבלה החדשה. איך יוצרים טבלאות ומשתמשים בהן?

  6. מרחיבים את הקטע Tags.

    1. כדי להחיל תג קיים:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחיבחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.

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

      2. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

    2. כדי להזין תג חדש באופן ידני:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.

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

      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

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

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

SQL

משתמשים בהצהרה CREATE TABLE.

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

    כניסה ל-BigQuery

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

    CREATE TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שבו יוצרים את הטבלה.
    • TABLE_ID: השם של הטבלה החדשה.
    • TAG_KEY_1: השם ממרחב השמות של המפתח שרוצים להגדיר כתג הראשון בטבלה, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של ערך התג, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני.

  3. לוחצים על הפעלה.

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

BQ

משתמשים בפקודה bq mk --table עם הדגל --add_tags:

bq mk --table \
    --schema=SCHEMA \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID.TABLE_ID

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

  • SCHEMA: הגדרת הסכימה בתוך התג.
  • TAG: התג שמצורף לטבלה החדשה. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה, 556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם המפתח במרחב השמות ושם מקוצר של הערך.
  • PROJECT_ID: מזהה הפרויקט שבו אתם יוצרים טבלה.
  • DATASET_ID: המזהה של מערך הנתונים שבו אתם יוצרים טבלה.
  • TABLE_ID: המזהה של הטבלה החדשה.

Terraform

משתמשים במשאב google_bigquery_table.

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

בדוגמה הבאה נוצרת טבלה בשם mytable, ואז מצורפים אליה תגים על ידי מילוי השדה resource_tags:


# Create tag keys and values
data "google_project" "default" {}

resource "google_tags_tag_key" "env_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "env3"
}

resource "google_tags_tag_key" "department_tag_key" {
  parent     = "projects/${data.google_project.default.project_id}"
  short_name = "department3"
}

resource "google_tags_tag_value" "env_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.env_tag_key.name}"
  short_name = "prod"
}

resource "google_tags_tag_value" "department_tag_value" {
  parent     = "tagKeys/${google_tags_tag_key.department_tag_key.name}"
  short_name = "sales"
}

# Create a dataset
resource "google_bigquery_dataset" "default" {
  dataset_id                      = "MyDataset"
  default_partition_expiration_ms = 2592000000  # 30 days
  default_table_expiration_ms     = 31536000000 # 365 days
  description                     = "dataset description"
  location                        = "US"
  max_time_travel_hours           = 96 # 4 days
}

# Create a table
resource "google_bigquery_table" "default" {
  dataset_id  = google_bigquery_dataset.default.dataset_id
  table_id    = "mytable"
  description = "table description"

  # Attach tags to the table
  resource_tags = {
    (google_tags_tag_key.env_tag_key.namespaced_name) : google_tags_tag_value.env_tag_value.short_name,
    (google_tags_tag_key.department_tag_key.namespaced_name) : google_tags_tag_value.department_tag_value.short_name
  }
}

כדי להחיל את ההגדרות של Terraform בפרויקט ב- Google Cloud , מבצעים את השלבים בקטעים הבאים.

הכנת Cloud Shell

  1. מפעילים את Cloud Shell.
  2. מגדירים את פרויקט ברירת המחדל שבו רוצים להחיל את ההגדרות של Terraform. Google Cloud

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

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

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

הכנת הספרייה

לכל קובץ תצורה של Terraform צריכה להיות ספרייה משלו (שנקראת גם מודול ברמה הבסיסית).

  1. יוצרים ספרייה חדשה ב-Cloud Shell ובה יוצרים קובץ חדש. שם הקובץ חייב לכלול את הסיומת .tf, למשל main.tf. במדריך הזה, הקובץ נקרא main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. אם אתם עוקבים אחרי המדריך, תוכלו להעתיק את הקוד לדוגמה בכל קטע או שלב.

    מעתיקים את הקוד לדוגמה בקובץ main.tf החדש שיצרתם.

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

  3. בודקים את הפרמטרים לדוגמה ומשנים אותם בהתאם לסביבה שלכם.
  4. שומרים את השינויים.
  5. מפעילים את Terraform. צריך לעשות זאת רק פעם אחת לכל ספרייה.
    terraform init

    אופציונלי: תוכלו לכלול את האפשרות -upgrade, כדי להשתמש בגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade

החלה של השינויים

  1. בודקים את ההגדרות ומוודאים שהמשאבים שמערכת Terraform תיצור או תעדכן תואמים לציפיות שלכם:
    terraform plan

    מתקנים את ההגדרות לפי הצורך.

  2. מריצים את הפקודה הבאה ומזינים yes בהודעה שמופיעה, כדי להחיל את הגדרות Terraform:
    terraform apply

    ממתינים עד שב-Terraform תוצג ההודעה "Apply complete!‎".

  3. פותחים את Google Cloud הפרויקט כדי לראות את התוצאות. במסוף Google Cloud , נכנסים למשאבים בממשק המשתמש כדי לוודא שהם נוצרו או עודכנו ב-Terraform.

API

מבצעים קריאה לשיטה tables.insert עם משאב טבלה מוגדר. מוסיפים את התגים בשדה resource_tags.

צירוף תגים לטבלה קיימת

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

  3. בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Datasets.

  4. לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.

  5. לוחצים על הכרטיסייה פרטים ואז על עריכת הפרטים.

  6. מרחיבים את הקטע Tags.

    1. כדי להחיל תג קיים:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות היקף נוכחיבחירת הארגון הנוכחי או בחירת הפרויקט הנוכחי.

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

      2. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

    2. כדי להזין תג חדש באופן ידני:

      1. לוחצים על החץ לתפריט הנפתח לצד בחירת היקף ובוחרים באפשרות הזנת מזהים באופן ידני > ארגון, פרויקט או תגים.

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

      3. בשדות Key 1 ו-Value 1, בוחרים את הערכים המתאימים מתוך הרשימות.

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

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

SQL

משתמשים בהצהרה ALTER TABLE SET OPTIONS.

בדוגמה הבאה, כל התגים בטבלה קיימת מוחלפים.

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

    כניסה ל-BigQuery

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

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags = [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה.
    • TABLE_ID: שם הטבלה שמתייגים.
    • TAG_KEY_1: השם ממרחב השמות של המפתח שרוצים להגדיר כתג הראשון בטבלה, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של ערך התג, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני.

  3. לוחצים על הפעלה.

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

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

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

    כניסה ל-BigQuery

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

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags += [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה.
    • TABLE_ID: שם הטבלה שמתייגים.
    • TAG_KEY_1: השם ממרחב השמות של המפתח שרוצים להגדיר כתג הראשון בטבלה, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של ערך התג, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני.

  3. לוחצים על הפעלה.

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

BQ

משתמשים בפקודה bq update עם הדגל --add_tags:

bq update \
    --add_tags=TAG \
    PROJECT_ID:DATASET_ID.TABLE_ID

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

  • TAG: התג שמצרפים לטבלה. אם יש כמה תגים, צריך להפריד ביניהם בפסיקים. לדוגמה, 556741164180/env:prod,myProject/department:sales. לכל תג צריך להיות שם המפתח במרחב השמות ושם מקוצר של הערך.
  • PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה.
  • DATASET_ID: מזהה מערך הנתונים שמכיל את הטבלה.
  • TABLE_ID: המזהה של הטבלה שרוצים לעדכן.

gcloud

כדי לצרף תג לטבלה באמצעות שורת הפקודה, יוצרים משאב של קישור תג באמצעות הפקודה gcloud resource-manager tags bindings create:

gcloud resource-manager tags bindings create \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

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

  • TAG_VALUE_NAME: המזהה הקבוע או השם ממרחב השמות של ערך התג לצירוף, כמו tagValues/4567890123 או 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: המזהה המלא של הטבלה, כולל שם הדומיין של ה-API ‏ (//bigquery.googleapis.com/) כדי לזהות את סוג המשאב. לדוגמה, //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table
  • LOCATION: המיקום של הטבלה.

Terraform

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

API

מבצעים קריאה לשיטה tables.update עם משאב טבלה מוגדר. מוסיפים את התגים בשדה resource_tags.

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

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

  3. בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Datasets.

  4. לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.

    התגים מוצגים בכרטיסייה פרטים.

BQ

משתמשים בפקודה bq show ומחפשים את העמודה tags. אם אין תגים בטבלה, העמודה tags לא מוצגת.

bq show \
    PROJECT_ID:DATASET_ID.TABLE_ID

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

  • PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה.
  • DATASET_ID: מזהה מערך הנתונים שמכיל את הטבלה.
  • TABLE_ID: המזהה של הטבלה.

gcloud

כדי לקבל רשימה של קישורי תגים שצורפו למשאב, משתמשים בפקודה gcloud resource-manager tags bindings list:

gcloud resource-manager tags bindings list \
    --parent=RESOURCE_ID \
    --location=LOCATION

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

  • RESOURCE_ID: המזהה המלא של הטבלה, כולל שם הדומיין של ה-API ‏ (//bigquery.googleapis.com/) כדי לזהות את סוג המשאב. לדוגמה: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table.

  • LOCATION: המיקום של מערך הנתונים.

הפלט אמור להיראות כך:

name: tagBindings/%2F%2Fbigquery.googleapis.com%2Fprojects%2Fmy_project%2Fdatasets%2Fmy_dataset/tagValues/4567890123
parent: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset
tagValue: tagValues/4567890123

Terraform

משתמשים בפקודה terraform state show כדי להציג את המאפיינים של הטבלה, כולל השדה resource_tags. מריצים את הפקודה הזו בספרייה שבה הופעל קובץ התצורה של Terraform של הטבלה.

terraform state show google_bigquery_table.default

API

מבצעים קריאה ל-tables.get עם משאב טבלה מוגדר, ומחפשים את השדה resource_tags.

תצוגות

משתמשים בתצוגה INFORMATION_SCHEMA.TABLE_OPTIONS.

לדוגמה, השאילתה הבאה מציגה את כל התגים שמצורפים לכל הטבלאות במערך נתונים. השאילתה הזו מחזירה טבלה עם עמודות שכוללות את schema_name (שם מערך הנתונים), option_name (תמיד 'tags'), object_type (תמיד ARRAY<STRUCT<STRING, STRING>>) ו-option_value, שמכילה מערכים של אובייקטים מסוג STRUCT שמייצגים תגים שמשויכים לכל מערך נתונים. בטבלאות ללא תגים שהוקצו, העמודה option_value מחזירה מערך ריק.

SELECT * from DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS
WHERE option_name='tags'

מחליפים את DATASET_ID במזהה של מערך הנתונים שמכיל את הטבלה.

ניתוק תגים מטבלה

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

המסוף

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

    כניסה ל-BigQuery

  2. בחלונית הימנית, לוחצים על כלי הניתוחים:

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

  3. בחלונית Explorer מרחיבים את הפרויקט ואז לוחצים על Datasets.

  4. לוחצים על סקירה כללית > טבלאות ובוחרים טבלה.

  5. לוחצים על הכרטיסייה פרטים ואז על עריכת הפרטים.

  6. בקטע תגים, לוחצים על מחיקת פריט ליד התג שרוצים למחוק.

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

SQL

משתמשים בהצהרה ALTER TABLE SET OPTIONS.

בדוגמה הבאה מנתקים תגים מטבלה באמצעות האופרטור -=. כדי לנתק את כל התגים מטבלה, אפשר לציין tags=NULL או tags=[].

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

    כניסה ל-BigQuery

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

    ALTER TABLE PROJECT_ID.DATASET_ID.TABLE_ID
    SET OPTIONS (
      tags -= [('TAG_KEY_1', 'TAG_VALUE_1'), ('TAG_KEY_2', 'TAG_VALUE_2')];)

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

    • PROJECT_ID: מזהה הפרויקט.
    • DATASET_ID: המזהה של מערך הנתונים שמכיל את הטבלה.
    • TABLE_ID: שם הטבלה שממנה מנתקים את התגים.
    • TAG_KEY_1: שם המפתח ממרחב השמות של התג הראשון שרוצים לנתק, למשל 'my-project/env' או '556741164180/department'.
    • TAG_VALUE_1: השם המקוצר של הערך של התג שרוצים לנתק, למשל 'prod' או 'sales'.
    • TAG_KEY_2: השם ממרחב השמות של מפתח התג השני שמנתקים.
    • TAG_VALUE_2: השם המקוצר של הערך של התג השני שמנתקים.

  3. לוחצים על הפעלה.

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

BQ

כדי להסיר תגים מטבלה, משתמשים בפקודה bq update עם הדגל --remove_tags:

bq update \
    --remove_tags=TAG_KEYS \
    PROJECT_ID:DATASET_ID.TABLE_ID

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

  • TAG_KEYS: מפתחות התגים שמנתקים מהטבלה, מופרדים בפסיקים. לדוגמה, 556741164180/env,myProject/department. לכל מפתח תג צריך להיות שם מפתח במרחב השמות.
  • PROJECT_ID: מזהה הפרויקט שמכיל את הטבלה.
  • DATASET_ID: מזהה מערך הנתונים שמכיל את הטבלה.
  • TABLE_ID: המזהה של הטבלה שרוצים לעדכן.

כדי להסיר את כל התגים מטבלה, משתמשים בפקודה bq update עם הדגל --clear_all_tags:

bq update \
    --clear_all_tags \
    PROJECT_ID:DATASET_ID.TABLE_ID

gcloud

כדי להסיר שיוך של תג מטבלה באמצעות שורת הפקודה, מוחקים את הקישור של התג באמצעות הפקודה gcloud resource-manager tags bindings delete:

gcloud resource-manager tags bindings delete \
    --tag-value=TAG_VALUE_NAME \
    --parent=RESOURCE_ID \
    --location=LOCATION

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

  • TAG_VALUE_NAME: המזהה הקבוע או השם עם מרחב השמות של ערך התג שרוצים למחוק, למשל tagValues/4567890123 או 1234567/my_tag_key/my_tag_value.
  • RESOURCE_ID: המזהה המלא של הטבלה, כולל שם הדומיין של ה-API ‏ (//bigquery.googleapis.com/) כדי לזהות את סוג המשאב. לדוגמה: //bigquery.googleapis.com/projects/my_project/datasets/my_dataset/tables/my_table.
  • LOCATION: המיקום של מערך הנתונים.

Terraform

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

API

מבצעים קריאה ל-method‏ tables.update עם משאב טבלה מוגדר, ומסירים את התגים בשדה resource_tags. כדי להסיר את כל התגים, מסירים את השדה resource_tags.

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

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

מחיקת תגים

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

דוגמה

נניח שאתם אדמינים בארגון. כל אנשי ניתוח הנתונים שלכם הם חברים בקבוצה analysts@example.com, שיש לה תפקיד BigQuery Data Viewer IAM בפרויקט userData. חברה מעסיקה מתמחה בתחום ניתוח הנתונים, ולפי מדיניות החברה, צריכה להיות לו הרשאה רק לצפייה במערך הנתונים anonymousData בפרויקט userData. אתם יכולים לשלוט בגישה שלהם באמצעות תגים.

  1. יצירת תג עם המפתח employee_type והערך intern:

    דוגמה ליצירת מפתח וערכים של תג.

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

    כניסה לדף IAM

  3. מוצאים את השורה של המתמחה שרוצים להגביל את הגישה שלו לקבוצת הנתונים, ולוחצים על Edit principal בשורה הזו.

  4. בתפריט תפקיד, בוחרים באפשרות מציג נתונים ב-BigQuery.

  5. לוחצים על הוספת תנאי.

  6. בשדות Title (שם) ו-Description (תיאור), מזינים ערכים שמתארים את התנאי של תג IAM שרוצים ליצור.

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

  8. בתפריט Condition type (סוג התנאי), בוחרים באפשרות Resource (משאב) ואז באפשרות Tag (תג).

  9. בתפריט אופרטור, בוחרים באפשרות יש ערך.

  10. בשדה נתיב הערך, מזינים את נתיב הערך של התג בפורמט ORGANIZATION/TAG_KEY/TAG_VALUE. לדוגמה, example.org/employee_type/intern.

    דוגמה לתנאי IAM שמשתמש בתגים.

    תנאי התג הזה ב-IAM מגביל את הגישה של המתמחה למערכי נתונים עם התג intern.

  11. כדי לשמור את תנאי התג, לוחצים על Save (שמירה).

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

  13. כדי לצרף את ערך התג intern למערך הנתונים anonymousData, מריצים את הפקודה gcloud resource-manager tags bindings create בשורת הפקודה. לדוגמה:

    gcloud resource-manager tags bindings create \
        --tag-value=tagValues/4567890123 \
        --parent=//bigquery.googleapis.com/projects/userData/datasets/anonymousData \
        --location=US
    

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