Labels löschen

So können Sie ein Label aus einem Dataset, einer Tabelle oder Ansicht löschen:

  • Mit der Cloud Console
  • Mit dem Befehl bq update des bq-Befehlszeilentools
  • Durch Aufruf der API-Methoden datasets.patch und tables.patch
  • Mit den Clientbibliotheken

Erforderliche Berechtigungen

Sie benötigen mindestens die Berechtigungen bigquery.datasets.get und bigquery.datasets.update, um ein Dataset-Label zu entfernen. Diese vordefinierten IAM-Rollen enthalten die Berechtigungen bigquery.datasets.update und bigquery.datasets.get:

  • bigquery.dataOwner
  • bigquery.admin

Wenn ein Nutzer mit Berechtigungen vom Typ bigquery.datasets.create ein Dataset erstellt, hat er dafür außerdem bigquery.dataOwner-Zugriff. Mit bigquery.dataOwner-Zugriff hat der Nutzer die Möglichkeit, Labels aus Datasets und aus Tabellen und Ansichten in diesen Datasets zu entfernen.

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Dataset-Label löschen

So entfernen Sie ein Label aus einem Dataset:

Console

  1. Wählen Sie das Dataset in der Cloud Console aus.

  2. Klicken Sie auf der Seite "Dataset-Details" auf das Stiftsymbol rechts neben Labels.

    Stiftsymbol

  3. Gehen Sie im Dialogfeld Labels bearbeiten folgendermaßen vor:

    • Klicken Sie für jedes Label, das Sie entfernen möchten, auf das Symbol zum Löschen (X).
    • Klicken Sie auf Update (Aktualisieren), um die Änderungen zu speichern.

bq

Wenn Sie ein Dataset-Label entfernen möchten, führen Sie den Befehl bq update mit dem Flag clear_label aus. Wiederholen Sie das Flag, um mehrere Labels zu entfernen.

Wenn sich das Dataset in einem anderen Projekt als Ihrem Standardprojekt befindet, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

Dabei gilt:

  • key ist der Schlüssel für ein zu entfernendes Label.
  • project_id ist die Projekt-ID.
  • dataset ist das zu aktualisierende Dataset.

Beispiele:

Geben Sie den Befehl bq update mit dem Flag --clear_label ein, um das Label department:shipping aus mydataset zu entfernen. mydataset befindet sich in Ihrem Standardprojekt.

    bq update --clear_label department mydataset

Geben Sie den Befehl bq update mit dem Flag --clear_label ein, um das Label department:shipping aus mydataset in myotherproject zu entfernen.

    bq update --clear_label department myotherproject:mydataset

Zum Entfernen mehrerer Labels aus einem Dataset wiederholen Sie das Flag clear_label und geben Sie die Schlüssel aller Labels an. So entfernen Sie beispielsweise das Label department:shipping und die Labels cost_center:logistics aus mydataset in Ihrem Standardprojekt:

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

Bei jedem dieser Beispiele sieht die Ausgabe so aus:

Dataset 'myproject:mydataset' successfully updated.

API

Wenn Sie ein bestimmtes Label aus einem vorhandenen Dataset entfernen möchten, rufen Sie die Methode datasets.patch auf und aktualisieren das Attribut labels für die Dataset-Ressource. Dazu setzen Sie den Schlüsselwert des Labels auf null.

Mit der Methode datasets.patch entfernen Sie das Attribut labels, um alle Labels aus einem Dataset zu entfernen.

Da die Methode datasets.update die gesamte Dataset-Ressource ersetzt, ist die Methode datasets.patch zu bevorzugen.

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.

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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Java API.

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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

// 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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur  Python API.


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))

Tabellen- oder Ansichtslabel löschen

Zum Entfernen eines Tabellen- oder Ansichtslabels haben Sie folgende Optionen:

  • Mit der Cloud Console
  • Mit dem Befehl bq update des bq-Befehlszeilentools
  • Aufrufen der API-Methode tables.patch
    • Da Ansichten wie Tabellenressourcen behandelt werden, können Sie sowohl Ansichten als auch Tabellen mit der Methode tables.patch ändern.
  • Mit den Clientbibliotheken

Erforderliche Berechtigungen

Sie benötigen mindestens die Berechtigungen bigquery.tables.update und bigquery.tables.get, um ein Tabellen- oder Ansichtslabel zu entfernen. Diese vordefinierten IAM-Rollen enthalten die Berechtigungen bigquery.tables.update und bigquery.tables.get:

  • bigquery.dataEditor
  • bigquery.dataOwner
  • bigquery.admin

Wenn ein Nutzer mit Berechtigungen vom Typ bigquery.datasets.create ein Dataset erstellt, hat er dafür außerdem bigquery.dataOwner-Zugriff. Mit bigquery.dataOwner-Zugriff hat der Nutzer die Möglichkeit, Labels aus Tabellen und Ansichten in einem Dataset zu entfernen.

Weitere Informationen zu IAM-Rollen und Berechtigungen in BigQuery finden Sie unter Vordefinierte Rollen und Berechtigungen.

Tabellen- oder Ansichtslabel löschen

So entfernen Sie ein Label aus einer Tabelle oder Ansicht:

Console

  1. Wählen Sie das Dataset in der Cloud Console aus.

  2. Klicken Sie auf den Tab Details und dann auf das Stiftsymbol rechts neben Labels.

    Stiftsymbol

  3. Gehen Sie im Dialogfeld Labels bearbeiten folgendermaßen vor:

    • Klicken Sie für jedes Label, das Sie entfernen möchten, auf das Symbol zum Löschen (X).

      Label löschen

    • Klicken Sie auf Update (Aktualisieren), um die Änderungen zu speichern.

bq

Wenn Sie ein Label aus einer Tabelle oder Ansicht entfernen möchten, führen Sie den Befehl bq update mit dem Flag clear_label aus. Wiederholen Sie das Flag, um mehrere Labels zu entfernen.

Wenn sich die Tabelle oder Ansicht in einem anderen Projekt als Ihrem Standardprojekt befindet, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu: project_id:dataset.

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

Dabei gilt:

  • key ist der Schlüssel für ein zu entfernendes Label.
  • project_id ist die Projekt-ID.
  • dataset ist das zu aktualisierende Dataset.
  • table_or_view ist der Name der zu aktualisierenden Tabelle oder Ansicht.

Beispiele:

Geben Sie den Befehl bq update mit dem Flag --clear_label ein, um das Label department:shipping aus mydataset.mytable zu entfernen. mydataset befindet sich in Ihrem Standardprojekt.

    bq update --clear_label department mydataset.mytable

Geben Sie den Befehl bq update mit dem Flag --clear_label ein, um das Label department:shipping aus mydataset.myview in myotherproject zu entfernen.

    bq update --clear_label department myotherproject:mydataset.myview

Zum Entfernen mehrerer Labels aus einer Tabelle oder Ansicht wiederholen Sie das Flag clear_label und geben Sie die Schlüssel aller Labels an. So entfernen Sie beispielsweise das Label department:shipping und das Label cost_center:logistics aus mydataset.mytable in Ihrem Standardprojekt:

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

Bei jedem dieser Beispiele sieht die Ausgabe so aus:

Table 'myproject:mydataset.mytable' successfully updated.

API

Wenn Sie ein bestimmtes Label aus einer vorhandenen Tabelle oder Ansicht entfernen möchten, rufen Sie die Methode tables.patch auf und aktualisieren das Attribut labels für die Tabellenressource. Dazu setzen Sie den Schlüsselwert des Labels auf null.

Mit der Methode tables.patch entfernen Sie das Attribut labels, um alle Labels aus einer Tabelle oder Ansicht zu entfernen.

Da Ansichten wie Tabellenressourcen behandelt werden, können Sie sowohl Ansichten als auch Tabellen mit der Methode tables.patch ändern. Da außerdem die Methode tables.update die gesamte Dataset-Ressource ersetzt, wird die Methode tables.patch bevorzugt.

Go

Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.

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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Java in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur BigQuery Java API.

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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Node.js in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

// 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

Bevor Sie dieses Beispiel anwenden, folgen Sie den Schritten zur Einrichtung von Python in der BigQuery-Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur  Python API.

# from google.cloud import bigquery
# client = bigquery.Client()
# project = client.project
# dataset_ref = bigquery.DatasetReference(project, dataset_id)
# table_ref = dataset_ref.table('my_table')
# table = client.get_table(table_ref)  # API request

# This example table starts with one label
assert table.labels == {"color": "green"}
# To delete a label from a table, set its value to None
table.labels["color"] = None

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

assert table.labels == {}

Joblabels löschen

Das Löschen eines Labels aus einem vorhandenen Job wird derzeit nicht unterstützt.

Weitere Informationen