מחיקת תוויות

כדי למחוק תווית מקבוצת נתונים, מטבלה או מתצוגה, אפשר:

  • שימוש במסוף Google Cloud
  • שימוש בהצהרות DDL של SQL
  • שימוש בפקודה bq update של כלי שורת הפקודה של bq
  • שליחת קריאה לשיטות datasets.patch או tables.patch של API
  • שימוש בספריות הלקוח

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

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

מחיקת תווית של מערך נתונים

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

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

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

  • bigquery.datasets.get
  • bigquery.datasets.update

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

  • roles/bigquery.dataOwner
  • roles/bigquery.admin

בנוסף, אם יש לכם הרשאת bigquery.datasets.create, אתם יכולים למחוק תוויות של מערכי הנתונים שאתם יוצרים.

במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.

מחיקת תווית של מערך נתונים

כדי למחוק תווית מקבוצת נתונים, בוחרים אחת מהאפשרויות הבאות:

המסוף

  1. במסוף Google Cloud , בוחרים את מערך הנתונים.

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

    עיפרון לסימון תוויות

  3. בתיבת הדו-שיח עריכת תוויות:

    • לכל תווית שרוצים למחוק, לוחצים על סמל המחיקה (X).
    • כדי לשמור את השינויים, לוחצים על עדכון.

SQL

משתמשים בהצהרת DDL‏ ALTER SCHEMA SET OPTIONS כדי להגדיר את התוויות במערך נתונים קיים. הגדרת תוויות מחליפה את כל התוויות הקיימות במערך הנתונים. בדוגמה הבאה נמחקות כל התוויות בקבוצת הנתונים mydataset:

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

    כניסה ל-BigQuery

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

    ALTER SCHEMA mydataset
    SET OPTIONS (labels = []);

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

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

BQ

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

אם מערך הנתונים נמצא בפרויקט שאינו פרויקט ברירת המחדל, מוסיפים את מזהה הפרויקט למערך הנתונים בפורמט הבא: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

כאשר:

  • key הוא המפתח של התווית שרוצים למחוק.
  • project_id הוא מזהה הפרויקט.
  • dataset היא קבוצת הנתונים שאתם מעדכנים.

דוגמאות:

כדי למחוק את התווית department:shipping מ-mydataset, מזינים את הפקודה bq update עם הדגל --clear_label. ‫mydataset נמצא בפרויקט ברירת המחדל.

    bq update --clear_label department mydataset

כדי למחוק את התווית department:shipping מ-mydataset ב-myotherproject, מזינים את הפקודה bq update עם הדגל --clear_label.

    bq update --clear_label department myotherproject:mydataset

כדי למחוק כמה תוויות ממערך נתונים, חוזרים על clear_label flag ומציינים את המפתח של כל תווית. לדוגמה, כדי למחוק את התווית department:shipping ואת התוויות cost_center:logistics מ-mydataset בפרויקט ברירת המחדל, מזינים:

    bq update \
    --clear_label department \
    --clear_label cost_center \
    mydataset

בכל אחת מהדוגמאות האלה, הפלט נראה כך:

Dataset 'myproject:mydataset' successfully updated.

API

כדי למחוק תווית מסוימת מקבוצת נתונים קיימת, מפעילים את השיטה datasets.patch ומעדכנים את המאפיין labels של משאב קבוצת הנתונים על ידי הגדרת ערך המפתח של התווית ל-null.

כדי למחוק את כל התוויות ממערך נתונים, קוראים לשיטה datasets.patch ומוחקים את המאפיין labels.

השיטה המועדפת היא datasets.patch, כי השיטה datasets.update מחליפה את כל משאב מערך הנתונים.

Go

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

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

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// deleteDatasetLabel demonstrates removing a specific label from a dataset's metadata.
func deleteDatasetLabel(projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	ds := client.Dataset(datasetID)
	meta, err := ds.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.DatasetMetadataToUpdate{}
	update.DeleteLabel("color")
	if _, err := ds.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

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

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

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;
import java.util.HashMap;
import java.util.Map;

// Sample tp deletes a label on a dataset.
public class DeleteLabelDataset {

  public static void runDeleteLabelDataset() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    deleteLabelDataset(datasetName);
  }

  public static void deleteLabelDataset(String datasetName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // This example dataset starts with existing label { color: 'green' }
      Dataset dataset = bigquery.getDataset(datasetName);
      // Add label to dataset
      Map<String, String> labels = new HashMap<>();
      labels.put("color", null);

      dataset.toBuilder().setLabels(labels).build().update();
      System.out.println("Dataset label deleted successfully");
    } catch (BigQueryException e) {
      System.out.println("Dataset label was not deleted. \n" + e.toString());
    }
  }
}

Node.js

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

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

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function deleteLabelDataset() {
  // Deletes a label on a dataset.
  // This example dataset starts with existing label { color: 'green' }

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = 'my_dataset';

  // Retrieve current dataset metadata.
  const dataset = bigquery.dataset(datasetId);
  const [metadata] = await dataset.getMetadata();

  // Add label to dataset metadata
  metadata.labels = {color: null};
  const [apiResponse] = await dataset.setMetadata(metadata);

  console.log(`${datasetId} labels:`);
  console.log(apiResponse.labels);
}

Python

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

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


from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set dataset_id to the ID of the dataset to fetch.
# dataset_id = "your-project.your_dataset"

dataset = client.get_dataset(dataset_id)  # Make an API request.

# To delete a label from a dataset, set its value to None.
dataset.labels["color"] = None

dataset = client.update_dataset(dataset, ["labels"])  # Make an API request.
print("Labels deleted from {}".format(dataset_id))

מחיקה של תווית של טבלה או תצוגה

אפשר למחוק טבלה או תווית תצוגה בדרכים הבאות:

  • שימוש במסוף Google Cloud
  • שימוש בהצהרות DDL של SQL
  • שימוש בפקודה bq update של כלי שורת הפקודה של bq
  • שליחת קריאה לשיטה tables.patch של API
    • מכיוון שתצוגות נחשבות למשאבי טבלה, נעשה שימוש ב-tables.patch כדי לשנות גם תצוגות וגם טבלאות.
  • שימוש בספריות הלקוח

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

כדי למחוק תווית של טבלה או תצוגה, אתם צריכים את הרשאות ה-IAM הבאות:

  • bigquery.tables.get
  • bigquery.tables.update

כל אחד מתפקידי ה-IAM המוגדרים מראש הבאים כולל את ההרשאות שדרושות כדי למחוק טבלה או להציג תווית:

  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.admin

בנוסף, אם יש לכם הרשאה bigquery.datasets.create, אתם יכולים למחוק תוויות של טבלאות ותצוגות במערכי הנתונים שאתם יוצרים.

במאמר תפקידים והרשאות מוגדרים מראש יש מידע נוסף על תפקידים והרשאות ב-IAM ב-BigQuery.

מחיקה של תווית של טבלה או תצוגה

כדי למחוק תווית מטבלה או מתצוגה, בוחרים אחת מהאפשרויות הבאות:

המסוף

  1. במסוף Google Cloud , בוחרים את מערך הנתונים.

  2. לוחצים על הכרטיסייה פרטים ואז על סמל העיפרון משמאל לתוויות.

    עיפרון לסימון תוויות

  3. בתיבת הדו-שיח עריכת תוויות:

    • לכל תווית שרוצים למחוק, לוחצים על סמל המחיקה (X).

      מחיקת תווית

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

SQL

משתמשים בהצהרת DDL‏ ALTER TABLE SET OPTIONS כדי להגדיר את התווית בטבלה קיימת, או בהצהרת DDL‏ ALTER VIEW SET OPTIONS כדי להגדיר את התווית בתצוגה קיימת. הגדרת תוויות מחליפה את כל התוויות הקיימות בטבלה או בתצוגה. בדוגמה הבאה נמחקות כל התוויות מהטבלה mytable:

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

    כניסה ל-BigQuery

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

    ALTER TABLE mydataset.mytable
    SET OPTIONS (labels = []);

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

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

BQ

כדי למחוק תווית מטבלה או מתצוגה, מריצים את הפקודה bq update עם הדגל clear_label. חוזרים על הפעולה כדי למחוק כמה תוויות.

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

bq update \
--clear_label key \
project_id:dataset.table_or_view

כאשר:

  • key הוא המפתח של התווית שרוצים למחוק.
  • project_id הוא מזהה הפרויקט.
  • dataset היא קבוצת הנתונים שאתם מעדכנים.
  • table_or_view הוא השם של הטבלה או התצוגה שאתם מעדכנים.

דוגמאות:

כדי למחוק את התווית department:shipping מ-mydataset.mytable, מזינים את הפקודה bq update עם הדגל --clear_label. ‫mydataset נמצא בפרויקט ברירת המחדל שלכם.

    bq update --clear_label department mydataset.mytable

כדי למחוק את התווית department:shipping מ-mydataset.myview ב-myotherproject, מזינים את הפקודה bq update עם הדגל --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

כדי למחוק כמה תוויות מטבלה או מתצוגה, חוזרים על השלב של clear_label הוספת הדגל ומציינים את המפתח של כל תווית. לדוגמה, כדי למחוק את התווית department:shipping ואת התווית cost_center:logistics מ-mydataset.mytable בפרויקט ברירת המחדל, מזינים:

    bq update \
    --clear_label department \
    --clear_label cost_center \
    mydataset.mytable

בכל אחת מהדוגמאות האלה, הפלט נראה כך:

Table 'myproject:mydataset.mytable' successfully updated.

API

כדי למחוק תווית מסוימת מטבלה או מתצוגה קיימות, קוראים לשיטה tables.patch ומעדכנים את המאפיין labels של משאב הטבלה על ידי הגדרת ערך המפתח של התווית ל-null.

כדי למחוק את כל התוויות מטבלה או מתצוגה, קוראים לשיטה tables.patch ומוחקים את המאפיין labels.

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

Go

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

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

import (
	"context"
	"fmt"

	"cloud.google.com/go/bigquery"
)

// deleteTableLabel demonstrates how to remove a specific metadata Label from a BigQuery table.
func deleteTableLabel(projectID, datasetID, tableID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// tableID := "mytable"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	tbl := client.Dataset(datasetID).Table(tableID)
	meta, err := tbl.Metadata(ctx)
	if err != nil {
		return err
	}
	update := bigquery.TableMetadataToUpdate{}
	update.DeleteLabel("color")
	if _, err := tbl.Update(ctx, update, meta.ETag); err != nil {
		return err
	}
	return nil
}

Java

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

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

import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Table;
import com.google.cloud.bigquery.TableId;
import java.util.HashMap;
import java.util.Map;

// Sample tp deletes a label on a table.
public class DeleteLabelTable {

  public static void runDeleteLabelTable() {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    String tableName = "MY_TABLE_NAME";
    deleteLabelTable(datasetName, tableName);
  }

  public static void deleteLabelTable(String datasetName, String tableName) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      // This example table starts with existing label { color: 'green' }
      Table table = bigquery.getTable(TableId.of(datasetName, tableName));
      // Add label to table
      Map<String, String> labels = new HashMap<>();
      labels.put("color", null);

      table.toBuilder().setLabels(labels).build().update();
      System.out.println("Table label deleted successfully");
    } catch (BigQueryException e) {
      System.out.println("Table label was not deleted. \n" + e.toString());
    }
  }
}

Node.js

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

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

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function deleteLabelTable() {
  // Deletes a label from an existing table.
  // This example dataset starts with existing label { color: 'green' }

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = "my_dataset";
  // const tableId = "my_table";

  const dataset = bigquery.dataset(datasetId);
  const [table] = await dataset.table(tableId).get();

  // Retrieve current table metadata
  const [metadata] = await table.getMetadata();

  // Add label to table metadata
  metadata.labels = {color: null};
  const [apiResponse] = await table.setMetadata(metadata);

  console.log(`${tableId} labels:`);
  console.log(apiResponse.labels);
}

Python

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

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

from google.cloud import bigquery

client = bigquery.Client()

# TODO(dev): Change table_id to the full name of the table you wish to delete from.
table_id = "your-project.your_dataset.your_table_name"
# TODO(dev): Change label_key to the name of the label you want to remove.
label_key = "color"
table = client.get_table(table_id)  # API request

# To delete a label from a table, set its value to None
table.labels[label_key] = None

table = client.update_table(table, ["labels"])  # API request

print(f"Deleted label '{label_key}' from {table_id}.")

מחיקת תווית של הזמנה

אפשר למחוק תווית של הזמנה.

התפקידים שצריך ב-IAM

כדי לקבל את ההרשאה שנדרשת למחיקת תווית של הזמנה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ BigQuery Resource Editor (roles/bigquery.resourceEditor) בפרויקט הניהול. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד שמוגדר מראש מכיל את ההרשאה bigquery.reservations.delete, שנדרשת כדי למחוק תווית של הזמנה.

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

מחיקת תווית של הזמנה

כדי למחוק תווית מהזמנה, בוחרים באחת מהאפשרויות הבאות:

SQL

כדי למחוק תווית הזמנה, משתמשים בהצהרת ALTER RESERVATION SET OPTIONS DDL. כדי למחוק את התוויות בהזמנה, מגדירים את התוויות כמערך ריק. בדוגמה הבאה נמחקת התווית בהזמנה myreservation:

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

    כניסה ל-BigQuery

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

    ALTER RESERVATION myreservation
    SET OPTIONS (
      labels = []);

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

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

BQ

כדי למחוק תווית של הזמנה, מריצים את הפקודה bq update עם הדגלים clear_label ו---reservation. כדי למחוק כמה תוויות, חוזרים על הדגל.

bq update --clear_label KEY  --reservation RESERVATION_NAME

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

  • KEY: מפתח של תווית שרוצים למחוק מההזמנה. המפתח חייב להיות ייחודי. המפתחות והערכים יכולים להכיל רק אותיות קטנות, ספרות, קווים תחתונים ומקפים. כל התווים צריכים להיות בקידוד UTF-8, ואפשר להשתמש בתווים בינלאומיים. כדי למחוק כמה תוויות מהזמנה, חוזרים על הדגל --clear_label ומציינים מפתח ייחודי לכל תווית.
  • RESERVATION_NAME: השם של ההזמנה.

מחיקת תוויות של משרות

אי אפשר למחוק תווית מעבודה קיימת.

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