Labels ansehen

Auf dieser Seite erfahren Sie, wie Sie Labels in Ihren BigQuery-Ressourcen anzeigen.

Sie können Labels folgendermaßen anzeigen:

  • Google Cloud Console verwenden
  • Abfragen von INFORMATION_SCHEMA-Ansichten
  • Den Befehl bq show des bq-Befehlszeilentools verwenden
  • Durch Aufrufen der API-Methoden datasets.get und tables.get
  • Mit den Clientbibliotheken

Da Ansichten in BigQuery wie Tabellenressourcen behandelt werden, können Sie Labelinformationen mithilfe der Methode tables.get sowohl für Ansichten als auch für Tabellen abrufen.

Vorbereitung

Weisen Sie IAM-Rollen (Identity and Access Management) zu, die Nutzern die erforderlichen Berechtigungen zum Ausführen der einzelnen Aufgaben in diesem Dokument gewähren.

Erforderliche Berechtigungen

Die zum Ansehen von Labels erforderlichen Berechtigungen hängen von den Ressourcentypen ab, auf die Sie zugreifen können. Zum Ausführen der Aufgaben in diesem Dokument benötigen Sie die folgenden Berechtigungen:

Berechtigungen zum Aufrufen von Dataset-Details

Zum Aufrufen der Dataset-Details benötigen Sie die IAM-Berechtigung bigquery.datasets.get.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Aufrufen von Dataset-Details benötigen:

  • roles/bigquery.user
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer
  • roles/bigquery.dataOwner
  • roles/bigquery.dataEditor
  • roles/bigquery.admin

Wenn Sie die Berechtigung bigquery.datasets.create haben, können Sie außerdem Details zu den von Ihnen erstellten Datasets aufrufen.

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

Berechtigungen zum Aufrufen von Tabellen- oder Ansichtsdetails

Zum Aufrufen von Tabellen- oder Ansichtsdetails benötigen Sie die IAM-Berechtigung bigquery.tables.get.

Alle vordefinierten IAM-Rollen enthalten die Berechtigungen, die Sie zum Anzeigen von Tabellen- oder Ansichtsdetails mit Ausnahme von roles/bigquery.user und roles/bigquery.jobUser benötigen.

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

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

Berechtigungen für Jobdetails

Zum Aufrufen von Jobdetails benötigen Sie die IAM-Berechtigung bigquery.jobs.get.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Aufrufen von Jobdetails benötigen:

  • roles/bigquery.admin (kann Details zu allen Jobs im Projekt aufrufen)
  • roles/bigquery.user (kann Details zu Ihren Jobs aufrufen)
  • roles/bigquery.jobUser (kann Details zu Ihren Jobs aufrufen)

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

Dataset-, Tabellen- und Ansichtslabels ansehen

Wählen Sie eine der folgenden Optionen aus, um die Labels einer Ressource anzuzeigen:

Console

  1. Bei Datasets wird automatisch die Seite "Dataset-Details" angezeigt. Falls Sie eine Tabelle oder Ansicht ausgewählt haben, klicken Sie auf Details, um die Detailseite zu öffnen. Labelinformationen werden in der Informationstabelle für die Ressource angezeigt.

    Tabellendetails

SQL

Fragen Sie die Ansicht INFORMATION_SCHEMA.SCHEMATA_OPTIONS ab, um die Labels eines Datasets zu sehen, oder die Ansicht INFORMATION_SCHEMA.TABLE_OPTIONS, um die Labels für eine Tabelle anzuzeigen. Die folgende SQL-Abfrage gibt beispielsweise die Labels für das Dataset mydataset zurück:

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

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SELECT
      *
    FROM
      INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
      schema_name = 'mydataset'
      AND option_name = 'labels';

  3. Klicken Sie auf Ausführen.

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

bq

Verwenden Sie den Befehl bq show mit der Ressourcen-ID. Mit dem Flag --format kann die Ausgabe gesteuert werden. Wenn sich die Ressource in einem anderen Projekt als Ihrem Standardprojekt befindet, fügen Sie die Projekt-ID im folgenden Format hinzu: [PROJECT_ID]:[DATASET]. Steuern Sie das Ausgabeformat, indem Sie das Flag --format auf pretty setzen, um für eine bessere Lesbarkeit zu sorgen.

bq show --format=pretty [RESOURCE_ID]

Dabei ist [RESOURCE_ID] eine gültige Tabelle, Ansicht, Job-ID oder ein gültiges Dataset.

Beispiele:

Geben Sie den folgenden Befehl ein, um die Labels für mydataset in Ihrem Standardprojekt anzuzeigen.

bq show --format=pretty mydataset

Die Ausgabe sieht in etwa so aus:

+-----------------+--------------------------------------------------------+---------------------+
|  Last modified  |                          ACLs                          |       Labels        |
+-----------------+--------------------------------------------------------+---------------------+
| 11 Jul 19:34:34 | Owners:                                                | department:shipping |
|                 |   projectOwners,                                       |                     |
|                 | Writers:                                               |                     |
|                 |   projectWriters                                       |                     |
|                 | Readers:                                               |                     |
|                 |   projectReaders                                       |                     |
+-----------------+--------------------------------------------------------+---------------------+

Geben Sie den folgenden Befehl ein, um Labels für mydataset.mytable anzuzeigen. mydataset befindet sich in myotherproject, nicht in Ihrem Standardprojekt.

bq show --format=pretty myotherproject:mydataset.mytable

Die Ausgabe für eine geclusterte Tabelle sieht so aus:

+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+
|  Last modified  |            Schema            | Total Rows | Total Bytes |   Expiration    |               Time Partitioning                | Clustered Fields | Labels  |
+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+
| 25 Jun 19:28:14 | |- timestamp: timestamp      | 0          | 0           | 25 Jul 19:28:14 | DAY (field: timestamp, expirationMs: 86400000) | customer_id      | org:dev |
|                 | |- customer_id: string       |            |             |                 |                                                |                  |         |
|                 | |- transaction_amount: float |            |             |                 |                                                |                  |         |
+-----------------+------------------------------+------------+-------------+-----------------+------------------------------------------------+------------------+---------+

API

Rufen Sie die Methode datasets.get oder die Methode tables.get auf. Die Antwort enthält alle Labels, die der Ressource zugeordnet sind.

Alternativ können Sie datasets.list zum Anzeigen der Labels für mehrere Datasets oder tables.list zum Anzeigen der Labels für mehrere Tabellen oder Ansichten verwenden.

Da Ansichten in BigQuery wie Tabellenressourcen behandelt werden, können Sie Labelinformationen mithilfe der Methoden tables.get und tables.list sowohl für Ansichten als auch für Tabellen ansehen.

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"
	"io"

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

// printDatasetLabels retrieves label metadata from a dataset and prints it to an io.Writer.
func printDatasetLabels(w io.Writer, 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()

	meta, err := client.Dataset(datasetID).Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "Dataset %s labels:\n", datasetID)
	if len(meta.Labels) == 0 {
		fmt.Fprintln(w, "Dataset has no labels defined.")
		return nil
	}
	for k, v := range meta.Labels {
		fmt.Fprintf(w, "\t%s:%s\n", k, v)
	}
	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;

// Sample to get dataset labels
public class GetDatasetLabels {

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

  public static void getDatasetLabels(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();

      Dataset dataset = bigquery.getDataset(datasetName);
      dataset
          .getLabels()
          .forEach((key, value) -> System.out.println("Retrieved labels successfully"));
    } catch (BigQueryException e) {
      System.out.println("Label was not found. \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 getDatasetLabels() {
  // Gets labels on a dataset.

  /**
   * 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();
  const labels = metadata.labels;

  console.log(`${datasetId} Labels:`);
  for (const [key, value] of Object.entries(labels)) {
    console.log(`${key}: ${value}`);
  }
}
getDatasetLabels();

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.

# View dataset labels.
print("Dataset ID: {}".format(dataset_id))
print("Labels:")
if dataset.labels:
    for label, value in dataset.labels.items():
        print("\t{}: {}".format(label, value))
else:
    print("\tDataset has no labels defined.")

Tabellenlabels ansehen

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"
	"io"

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

// tableLabels demonstrates fetching metadata from a table and printing the Label metadata to an io.Writer.
func tableLabels(w io.Writer, 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: %w", err)
	}
	defer client.Close()

	meta, err := client.Dataset(datasetID).Table(tableID).Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "Table %s labels:\n", datasetID)
	if len(meta.Labels) == 0 {
		fmt.Fprintln(w, "Table has no labels defined.")
		return nil
	}
	for k, v := range meta.Labels {
		fmt.Fprintf(w, "\t%s:%s\n", k, v)
	}
	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;

// Sample to get table labels
public class GetTableLabels {

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

  public static void getTableLabels(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));
      table
          .getLabels()
          .forEach((key, value) -> System.out.println("Retrieved labels successfully"));
    } catch (BigQueryException e) {
      System.out.println("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 getTableLabels() {
  // Gets labels on a dataset.

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

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

  console.log(`${tableId} Labels:`);
  for (const [key, value] of Object.entries(labels)) {
    console.log(`${key}: ${value}`);
  }
}
getTableLabels();

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 want to create.
table_id = "your-project.your_dataset.your_table_name"

table = client.get_table(table_id)  # API Request

# View table labels
print(f"Table ID: {table_id}.")
if table.labels:
    for label, value in table.labels.items():
        print(f"\t{label}: {value}")
else:
    print("\tTable has no labels defined.")

Joblabels ansehen

Wählen Sie eine der folgenden Optionen aus, um die Labels für einen Job aufzurufen:

SQL

Fragen Sie die INFORMATION_SCHEMA.JOB_BY_*-Ansichten ab, um die Labels für einen Job anzuzeigen. Die folgende SQL-Abfrage gibt beispielsweise den Abfragetext und die Labels für die Jobs zurück, die vom aktuellen Nutzer im aktuellen Projekt gesendet wurden:

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

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SELECT
      query,
      labels
    FROM
      INFORMATION_SCHEMA.JOBS_BY_USER;

  3. Klicken Sie auf Ausführen.

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

bq

Um Labels für einen Abfragejob mit dem bq-Befehlszeilentool anzusehen, geben Sie den Befehl bq show -j mit der Job-ID des Abfragejobs ein. Mit dem Flag --format kann die Ausgabe gesteuert werden. Wenn Ihr Abfragejob beispielsweise die Job-ID bqjob_r1234d57f78901_000023746d4q12_1 hat, geben Sie folgenden Befehl ein:

bq show -j --format=pretty bqjob_r1234d57f78901_000023746d4q12_1

Die Ausgabe sollte in etwa so aussehen:

+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+
| Job Type |  State  |   Start Time    | Duration |    User Email     | Bytes Processed | Bytes Billed |        Labels        |
+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+
| query    | SUCCESS | 03 Dec 15:00:41 | 0:00:00  | email@example.com | 255             | 10485760     | department:shipping  |
|          |         |                 |          |                   |                 |              | costcenter:logistics |
+----------+---------+-----------------+----------+-------------------+-----------------+--------------+----------------------+

API

Rufen Sie die Methode jobs.get auf. Die Antwort enthält alle Labels, die der Ressource zugeordnet sind.

Weitere Informationen