Informationen zu Ansichten abrufen

In diesem Dokument wird gezeigt, wie Sie in BigQuery Ansichten auflisten, Informationen zu Ansichten abrufen und Metadaten zu Ansichten ansehen können.

So können Sie Ansichten in Datasets auflisten:

  • Google Cloud Console verwenden
  • Mit dem Befehl bq ls im bq-Befehlszeilentool.
  • Durch Aufrufen der API-Methode tables.list
  • Mit den Clientbibliotheken

Hinweis

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.

Ansichten auflisten

Das Verfahren zum Auflisten von Ansichten ist identisch mit dem Vorgang zum Auflisten von Tabellen.

Erforderliche Berechtigungen

Zum Auflisten von Ansichten in einem Dataset benötigen Sie die IAM-Berechtigung bigquery.tables.list.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie zum Auflisten von Ansichten in einem Dataset benötigen:

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

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

Ansichten in einem Dataset auflisten

So listen Sie die Ansichten in einem Dataset auf:

Console

  1. Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.

  2. Scrollen Sie durch die Liste, um die Tabellen im Dataset aufzurufen. Tabellen und Ansichten sind durch unterschiedliche Symbole gekennzeichnet.

    Tabellen- und Ansichtssymbole

SQL

Wählen Sie das Dropdown-Menü INFORMATION_SCHEMA.VIEWS Ansicht aus:

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

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SELECT table_name
    FROM DATASET_ID.INFORMATION_SCHEMA.VIEWS;

    Ersetzen Sie DATASET_ID durch den Namen des Datensatzes.

  3. Klicken Sie auf Ausführen.

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

bq

Führen Sie den Befehl bq ls aus. Mit dem Flag --format kann die Ausgabe gesteuert werden. Wenn Sie Ansichten eines anderen Projekts als Ihres Standardprojekts auflisten möchten, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu: project_id:dataset.

bq ls --format=pretty project_id:dataset

Dabei gilt:

  • project_id ist die Projekt-ID.
  • dataset ist der Name des Datasets.

Wenn Sie den Befehl ausführen, wird im Feld Type entweder TABLE oder VIEW angezeigt. Beispiel:

+-------------------------+-------+----------------------+-------------------+
|         tableId         | Type  |        Labels        | Time Partitioning |
+-------------------------+-------+----------------------+-------------------+
| mytable                 | TABLE | department:shipping  |                   |
| myview                  | VIEW  |                      |                   |
+-------------------------+-------+----------------------+-------------------+

Beispiele:

Geben Sie den folgenden Befehl ein, um Ansichten im Dataset mydataset in Ihrem Standardprojekt aufzulisten:

bq ls --format=pretty mydataset

Geben Sie den folgenden Befehl ein, um Ansichten im Dataset mydataset im Projekt myotherproject aufzulisten.

bq ls --format=pretty myotherproject:mydataset

API

Zum Auflisten von Ansichten über die API rufen Sie die Methode tables.list auf.

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"
	"google.golang.org/api/iterator"
)

// listTables demonstrates iterating through the collection of tables in a given dataset.
func listTables(w io.Writer, projectID, datasetID 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()

	ts := client.Dataset(datasetID).Tables(ctx)
	for {
		t, err := ts.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintf(w, "Table: %q\n", t.TableID)
	}
	return nil
}

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 that contains
#                  the tables you are listing.
# dataset_id = 'your-project.your_dataset'

tables = client.list_tables(dataset_id)  # Make an API request.

print("Tables contained in '{}':".format(dataset_id))
for table in tables:
    print("{}.{}.{}".format(table.project, table.dataset_id, table.table_id))

Metadaten können Sie auf folgende Weise abrufen:

  • Google Cloud Console verwenden
  • Den Befehl bq show des bq-Befehlszeilentools verwenden
  • Durch Aufrufen der API-Methode tables.get
  • Mithilfe der Clientbibliotheken
  • INFORMATION_SCHEMA-Ansichten abrufen

Informationen zu Ansichten abrufen

Das Verfahren zum Abrufen von Informationen zu Ansichten ist identisch mit dem Vorgang zum Abrufen von Informationen zu Tabellen.

Erforderliche Berechtigungen

Zum Abrufen von Informationen zu einer Ansicht benötigen Sie die IAM-Berechtigung bigquery.tables.get.

Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie benötigen, um Informationen zu einer Ansicht abzurufen:

  • 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 Informationen zu Ansichten in den von Ihnen erstellten Datasets abrufen.

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

So rufen Sie Informationen zu Ansichten ab:

Console

  1. Maximieren Sie das Dataset.

  2. Klicken Sie auf den Namen der Ansicht.

  3. Klicken Sie auf Details. Auf dem Tab Details werden die Beschreibung der Ansicht, die Ansichtsinformationen und die SQL-Abfrage angezeigt, die die Ansicht definiert.

    Details ansehen

SQL

Fragen Sie die Ansicht INFORMATION_SCHEMA.VIEWS ab. Im folgenden Beispiel werden alle Spalten außer check_option abgerufen, die für eine zukünftige Verwendung reserviert sind. Die zurückgegebenen Metadaten gelten für alle Ansichten in DATASET_ID in Ihrem Standardprojekt:

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

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

      SELECT
        * EXCEPT (check_option)
      FROM
        DATASET_ID.INFORMATION_SCHEMA.VIEWS;
      

    Ersetzen Sie DATASET_ID durch den Namen des Datensatzes.

  3. Klicken Sie auf Ausführen.

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

bq

Führen Sie den Befehl bq show aus. Mit dem Flag --format kann die Ausgabe gesteuert werden. Wenn Sie Informationen zu einer Ansicht in einem anderen Projekt als Ihrem Standardprojekt abrufen, fügen Sie dem Dataset die Projekt-ID im folgenden Format hinzu: [PROJECT_ID]:[DATASET].

bq show \
--format=prettyjson \
project_id:dataset.view

Dabei gilt:

  • project_id ist die Projekt-ID.
  • dataset ist der Name des Datasets
  • view ist der Name der Ansicht.

Beispiele:

Mit dem folgenden Befehl listen Sie Informationen zu myview im Dataset mydataset Ihres Standardprojekts auf.

bq show --format=prettyjson mydataset.myview

Mit dem folgenden Befehl rufen Sie alle Informationen zu myview im Dataset mydataset in myotherproject auf.

bq show --format=prettyjson myotherproject:mydataset.myview

API

Mithilfe der Methode tables.get geben Sie alle relevanten Parameter an.

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

// getView demonstrates fetching the metadata from a BigQuery logical view and printing it to an io.Writer.
func getView(w io.Writer, projectID, datasetID, viewID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydataset"
	// viewID := "myview"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	view := client.Dataset(datasetID).Table(viewID)
	meta, err := view.Metadata(ctx)
	if err != nil {
		return err
	}
	fmt.Fprintf(w, "View %s, query: %s\n", view.FullyQualifiedName(), meta.ViewQuery)
	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 a view
public class GetView {

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

  public static void getView(String datasetName, String viewName) {
    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();

      TableId tableId = TableId.of(datasetName, viewName);
      Table view = bigquery.getTable(tableId);
      System.out.println("View retrieved successfully" + view.getDescription());
    } catch (BigQueryException e) {
      System.out.println("View not retrieved. \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 getView() {
  // Retrieves view properties.

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

  // Retrieve view
  const dataset = bigquery.dataset(datasetId);
  const [view] = await dataset.table(tableId).get();

  const fullTableId = view.metadata.id;
  const viewQuery = view.metadata.view.query;

  // Display view properties
  console.log(`View at ${fullTableId}`);
  console.log(`View query: ${viewQuery}`);
}
getView();

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

view_id = "my-project.my_dataset.my_view"
# Make an API request to get the table resource.
view = client.get_table(view_id)

# Display view properties
print(f"Retrieved {view.table_type}: {str(view.reference)}")
print(f"View Query:\n{view.view_query}")

Sicherheit ansehen

Informationen zum Steuern des Zugriffs auf Ansichten in BigQuery finden Sie unter Autorisierte Ansichten.

Nächste Schritte