Menghapus label

Anda dapat menghapus label dari set data, tabel, atau tampilan dengan:

Sebelum memulai

Berikan peran Identity and Access Management (IAM) yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini. Izin yang diperlukan untuk melakukan tugas (jika ada) tercantum di bagian "Izin yang diperlukan" pada tugas tersebut.

Menghapus label set data

Bagian berikut menentukan izin dan langkah-langkah untuk menghapus label set data.

Izin yang diperlukan

Untuk menghapus label set data, Anda memerlukan izin IAM berikut:

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

Setiap peran IAM bawaan berikut menyertakan izin yang Anda perlukan untuk menghapus label set data:

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

Selain itu, jika memiliki izin bigquery.datasets.create, Anda dapat menghapus label set data yang dibuat.

Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, lihat Peran dan izin bawaan.

Menghapus label set data

Untuk menghapus label dari set data, pilih salah satu opsi berikut:

Konsol

  1. Di Konsol Google Cloud, pilih set data.

  2. Di halaman detail set data, klik ikon pensil di sebelah kanan Label.

    Pensil label

  3. Pada dialog Edit label:

    • Untuk setiap label yang ingin dihapus, klik hapus (X).
    • Untuk menyimpan perubahan, klik Perbarui.

SQL

Gunakan pernyataan DDL ALTER SCHEMA SET OPTIONS untuk menetapkan label pada set data yang ada. Menetapkan label akan menimpa label yang ada di set data. Contoh berikut menghapus semua label pada set data mydataset:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

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

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menghapus label set data, berikan perintah bq update dengan flag clear_label. Ulangi flag untuk menghapus beberapa label.

Jika set data berada dalam project selain project default Anda, tambahkan project ID ke set data dalam format berikut: project_id:dataset.

bq update \
--clear_label key \
project_id:dataset

Dengan keterangan:

  • key adalah kunci untuk label yang ingin Anda hapus.
  • project_id adalah project ID Anda.
  • dataset adalah set data yang Anda perbarui.

Contoh:

Untuk menghapus label department:shipping dari mydataset, masukkan perintah bq update dengan flag --clear_label. mydataset ada dalam project default Anda.

    bq update --clear_label department mydataset

Untuk menghapus label department:shipping dari mydataset di myotherproject, masukkan perintah bq update dengan flag --clear_label.

    bq update --clear_label department myotherproject:mydataset

Untuk menghapus beberapa label dari set data, ulangi flag clear_label dan tentukan setiap kunci label. Misalnya, untuk menghapus label department:shipping dan label cost_center:logistics dari mydataset di project default Anda, masukkan:

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

Untuk setiap contoh ini, output-nya terlihat seperti berikut:

Dataset 'myproject:mydataset' successfully updated.

API

Agar dapat menghapus label tertentu untuk set data yang ada, panggil metode datasets.patch dan perbarui properti labels untuk resource set data dengan menyetel nilai kunci label ke null.

Untuk menghapus semua label dari set data, panggil metode datasets.patch dan hapus properti labels.

Karena metode datasets.update menggantikan seluruh resource set data, metode datasets.patch akan dipilih.

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.


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

Menghapus label tabel atau tampilan

Anda dapat menghapus label tabel atau tampilan dengan cara berikut:

  • Menggunakan konsol Google Cloud
  • Menggunakan pernyataan DDL SQL
  • Menggunakan perintah bq update alat command line bq
  • Memanggil metode API tables.patch
    • Karena tampilan diperlakukan seperti resource tabel, tables.patch digunakan untuk mengubah tampilan dan tabel.
  • Menggunakan library klien

Izin yang diperlukan

Untuk menghapus label tabel atau tampilan, Anda memerlukan izin IAM berikut:

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

Setiap peran IAM bawaan berikut menyertakan izin yang diperlukan untuk menghapus label tabel atau tampilan:

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

Selain itu, jika memiliki izin bigquery.datasets.create, Anda dapat menghapus label tabel dan tampilan di set data yang Anda buat.

Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, lihat Peran dan izin bawaan.

Menghapus label tabel atau tampilan

Untuk menghapus label dari tabel atau tampilan, pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud, pilih set data.

  2. Klik tab Detail, lalu klik ikon pensil di sebelah kanan Label.

    Pensil label

  3. Pada dialog Edit label:

    • Untuk setiap label yang ingin dihapus, klik hapus (X).

      Penghapusan label

    • Untuk menyimpan perubahan, klik Perbarui.

SQL

Gunakan pernyataan DDL ALTER TABLE SET OPTIONS untuk menetapkan label pada tabel yang ada, atau pernyataan DDL ALTER VIEW SET OPTIONS untuk menetapkan label pada tampilan yang ada. Menetapkan label akan menimpa label yang ada di tabel atau tampilan. Contoh berikut akan menghapus semua label dari tabel mytable:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

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

  3. Klik Run.

Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

bq

Untuk menghapus label dari tabel atau tampilan, berikan perintah bq update dengan flag clear_label. Ulangi flag untuk menghapus beberapa label.

Jika tabel atau tampilan berada dalam project selain project default Anda, tambahkan project ID ke set data dalam format berikut: project_id:dataset.

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

Dengan keterangan:

  • key adalah kunci untuk label yang ingin Anda hapus.
  • project_id adalah project ID Anda.
  • dataset adalah set data yang Anda perbarui.
  • table_or_view adalah nama tabel atau tampilan yang Anda perbarui.

Contoh:

Untuk menghapus label department:shipping dari mydataset.mytable, masukkan perintah bq update dengan flag --clear_label. mydataset ada dalam project default Anda.

    bq update --clear_label department mydataset.mytable

Untuk menghapus label department:shipping dari mydataset.myview di myotherproject, masukkan perintah bq update dengan flag --clear_label.

    bq update --clear_label department myotherproject:mydataset.myview

Untuk menghapus beberapa label dari tabel atau tampilan, ulangi flag clear_label dan tentukan setiap kunci label. Misalnya, untuk menghapus label department:shipping dan label cost_center:logistics dari mydataset.mytable di project default Anda, masukkan:

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

Untuk setiap contoh ini, output-nya terlihat seperti berikut:

Table 'myproject:mydataset.mytable' successfully updated.

API

Untuk menghapus label tertentu untuk tabel atau tampilan yang ada, panggil metode tables.patch dan perbarui properti labels untuk resource tabel dengan menyetel nilai kunci label ke null.

Untuk menghapus semua label dari tabel atau tampilan, panggil metode tables.patch dan hapus properti labels.

Karena tampilan diperlakukan seperti resource tabel, Anda harus menggunakan metode tables.patch untuk mengubah tampilan dan tabel. Selain itu, karena metode tables.update menggantikan seluruh resource set data, sebaiknya gunakan metode tables.patch.

Go

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.

Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.

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

Menghapus label tugas

Saat ini, menghapus label dari tugas yang ada tidak didukung.

Langkah berikutnya