Labels löschen

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

  • Google Cloud Console verwenden
  • DDL-Anweisungen von SQL verwenden
  • Den Befehl bq update des bq-Befehlszeilentools verwenden
  • Durch Aufruf der API-Methoden datasets.patch und tables.patch
  • Mit den Clientbibliotheken

Hinweis

Erteilen Sie IAM-Rollen (Identity and Access Management), die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument geben. Die Berechtigungen, die zum Ausführen einer Aufgabe erforderlich sind (sofern zutreffend), werden im Abschnitt "Erforderliche Berechtigungen" der Aufgabe aufgelistet.

Dataset-Label löschen

In den folgenden Abschnitten werden die Berechtigungen und Schritte zum Löschen eines Dataset-Labels angegeben.

Erforderliche Berechtigungen

Zum Löschen eines Dataset-Labels benötigen Sie die folgenden IAM-Berechtigungen:

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

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Löschen eines Dataset-Labels benötigen:

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

Wenn Sie die Berechtigung bigquery.datasets.create haben, können Sie außerdem die Labels der von Ihnen erstellten Datasets löschen.

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

Dataset-Label löschen

Wählen Sie eine der folgenden Optionen, um ein Label aus einem Dataset zu löschen:

Console

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

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

    Stiftsymbol

  3. Gehen Sie im Dialogfeld Labels bearbeiten so vor:

    • Klicken Sie für jedes Label, das Sie löschen möchten, auf "Löschen" (X).
    • Um die Änderungen zu speichern, klicken Sie auf Aktualisieren.

SQL

Verwenden Sie die DDL-Anweisung ALTER SCHEMA SET OPTIONS, um die Labels für ein vorhandenes Dataset festzulegen. Durch das Festlegen von Labels werden alle vorhandenen Labels im Dataset überschrieben. Im folgenden Beispiel werden alle Labels im Dataset mydataset gelöscht:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

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

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

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

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

bq update \
--clear_label key \
project_id:dataset

Dabei gilt:

  • key ist der Schlüssel für ein zu löschendes 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 löschen. 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 löschen.

    bq update --clear_label department myotherproject:mydataset

Zum Löschen mehrerer Labels aus einem Dataset wiederholen Sie das Flag clear_label und geben Sie die Schlüssel aller Labels an. So löschen 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 löschen 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.

Wenn Sie alle Labels aus dem Dataset löschen möchten, rufen Sie die Methode datasets.patch auf und löschen Sie das Attribut labels.

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

Go

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

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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 zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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 zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

// 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 zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.


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

Sie können Labels für Tabellen oder Ansichten so löschen:

  • Google Cloud Console verwenden
  • DDL-Anweisungen von SQL verwenden
  • Den Befehl bq update des bq-Befehlszeilentools verwenden
  • 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

Zum Löschen eines Tabellen- oder Ansichtslabels benötigen Sie die folgenden IAM-Berechtigungen:

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

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Löschen eines Tabellen- oder Ansichtslabels benötigen:

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

Wenn Sie die Berechtigung bigquery.datasets.create haben, können Sie außerdem Labels der Tabellen und Ansichten in den von Ihnen erstellten Datasets löschen.

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

Tabellen- oder Ansichtslabel löschen

Wählen Sie eine der folgenden Optionen aus, um ein Label aus einer Tabelle oder Ansicht zu löschen:

Console

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

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

    Stiftsymbol

  3. Gehen Sie im Dialogfeld Labels bearbeiten so vor:

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

      Label löschen

    • Um die Änderungen zu speichern, klicken Sie auf Aktualisieren.

SQL

Verwenden Sie die DDL-Anweisung ALTER TABLE SET OPTIONS, um das Label für eine vorhandene Tabelle festzulegen, oder die DDL-Anweisung ALTER VIEW SET OPTIONS, um das Label auf eine vorhandene Ansicht festzulegen. Mit Labels werden vorhandene Labels für die Tabelle oder Ansicht überschrieben. Im folgenden Beispiel werden alle Labels aus der Tabelle mytable gelöscht:

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

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

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

bq

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

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

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

Dabei gilt:

  • key ist der Schlüssel für ein zu löschendes 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:

Um das Label department:shipping aus mydataset.mytable zu löschen, geben Sie den Befehl bq update mit dem Flag --clear_label ein. mydataset befindet sich in Ihrem Standardprojekt.

    bq update --clear_label department mydataset.mytable

Um das Label department:shipping aus mydataset.myview in myotherproject zu löschen,, geben Sie den Befehl bq update mit dem Flag --clear_label ein.

    bq update --clear_label department myotherproject:mydataset.myview

Um mehrere mehrerer Labels aus einer Tabelle oder Ansicht zu löschen, wiederholen Sie das Flag clear_label und geben Sie die Schlüssel für jedes Label an. So löschen 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 löschen 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.

Um alle Labels aus einer Tabelle oder Ansicht zu löschen, rufen Sie die Methode tables.patch auf und löschen Sie das Attribut labels.

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 anwenden, folgen Sie den Schritten zur Einrichtung von Go in der BigQuery-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Go API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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 zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Java API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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 zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Node.js API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

// 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 zur Verwendung von Clientbibliotheken. Weitere Angaben finden Sie in der Referenzdokumentation zur BigQuery Python API.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

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}.")

Joblabels löschen

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

Weitere Informationen