מחיקת תוויות

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

המסוף

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

  2. לוחצים על הכרטיסייה Details ואז על Edit details.

  3. בקטע תוויות, ליד כל תווית שרוצים למחוק, לוחצים על מחיקת התווית.

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

SQL

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

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

    כניסה ל-BigQuery

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

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

  3. ‫לוחצים על Run.

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

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 ומציינים את המפתח של כל תווית. לדוגמה, כדי למחוק את התווית department:shipping ואת התוויות cost_center:logistics מ-mydataset בפרויקט ברירת המחדל, מזינים:

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

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

Dataset 'myproject:mydataset' successfully updated.

API

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

כדי למחוק את כל התוויות מקבוצת נתונים, מפעילים את ה-method‏ datasets.patch ומוחקים את המאפיין labels.

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

המשך

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של 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 של כלי שורת הפקודה של BigQuery
  • שליחת קריאה ל-method ‏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. בקטע תוויות, ליד כל תווית שרוצים למחוק, לוחצים על מחיקת התווית.

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

SQL

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

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

    כניסה ל-BigQuery

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

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

  3. ‫לוחצים על Run.

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

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

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

כדי למחוק את כל התוויות מטבלה או מתצוגה, מפעילים את ה-method‏ tables.patch ומוחקים את המאפיין labels.

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

המשך

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של 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

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

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

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

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

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

SQL

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

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

    כניסה ל-BigQuery

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

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

  3. ‫לוחצים על Run.

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

BQ

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

bq update --clear_label KEY  --reservation RESERVATION_NAME

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

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

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

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

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