Recupero delle informazioni sulle viste

Questo documento descrive come elencare, ottenere informazioni e visualizzare i metadati per in BigQuery.

Puoi elencare le visualizzazioni nei set di dati in base a:

  • Utilizzo della console Google Cloud
  • Utilizzo del comando bq ls nello strumento a riga di comando bq
  • Chiamata a tables.list Metodo API
  • Utilizzo delle librerie client

Prima di iniziare

Concede ruoli IAM (Identity and Access Management) che concedono agli utenti le autorizzazioni necessarie per eseguire ciascuna attività in questo documento.

Visualizzazioni elenco

La procedura per le visualizzazioni delle schede è identica a quella per le tabelle delle schede.

Autorizzazioni obbligatorie

Per elencare le visualizzazioni in un set di dati, è necessario bigquery.tables.list Autorizzazione IAM.

Ciascuno dei seguenti ruoli IAM predefiniti include autorizzazioni necessarie per elencare le visualizzazioni in un set di dati:

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

Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Visualizzazioni elenco in un set di dati

Per elencare le viste in un set di dati:

Console

  1. Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati.

  2. Scorri l'elenco per visualizzare le tabelle nel set di dati. Tabelle e sono identificate da icone diverse.

    Icone di tabelle e visualizzazioni

SQL

Utilizza la visualizzazione INFORMATION_SCHEMA.VIEWS:

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    SELECT table_name
    FROM DATASET_ID.INFORMATION_SCHEMA.VIEWS;

    Sostituisci DATASET_ID con il nome del set di dati.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

bq

Esegui il comando bq ls. Il flag --format può essere utilizzato per controllare come output. Se elenchi le visualizzazioni in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: project_id:dataset.

bq ls --format=pretty project_id:dataset

Dove:

  • project_id è l'ID progetto.
  • dataset è il nome del set di dati.

Quando esegui il comando, il campo Type mostra TABLE o VIEW. Ad esempio:

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

Esempi:

Inserisci il comando seguente per elencare le visualizzazioni nel set di dati mydataset nel progetto predefinito.

bq ls --format=pretty mydataset

Inserisci il seguente comando per elencare le visualizzazioni nel set di dati mydataset in myotherproject.

bq ls --format=pretty myotherproject:mydataset

API

Per elencare le visualizzazioni utilizzando l'API, chiama la funzione tables.list .

Vai

Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.


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

Per recuperare i metadati della visualizzazione:

  • Utilizzo della console Google Cloud
  • Utilizzo del comando bq show dello strumento a riga di comando bq
  • Chiamata al metodo API tables.get
  • Utilizzo delle librerie client
  • Eseguire query sulle viste INFORMATION_SCHEMA

Scopri di più sulle viste

La procedura per ottenere informazioni sulle viste è identica informazioni sulle tabelle.

Autorizzazioni obbligatorie

Per ottenere informazioni su una visualizzazione, devi disporre dell'autorizzazione IAM bigquery.tables.get.

Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per ottenere informazioni su una visualizzazione:

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

Inoltre, se disponi dell'autorizzazione bigquery.datasets.create, puoi ottenere informazioni sulle visualizzazioni nei set di dati che crei.

Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

Per ottenere informazioni sulle viste:

Console

  1. Espandi il tuo set di dati.

  2. Fai clic sul nome della visualizzazione.

  3. Fai clic su Dettagli. La scheda Dettagli mostra gli elementi della vista descrizione, informazioni sulla vista e la query SQL che definisce la vista.

    Visualizza dettagli

SQL

Esegui una query sulla vista INFORMATION_SCHEMA.VIEWS. L'esempio seguente recupera tutte le colonne tranne check_option, che è prenotato per l'uso futuro. I metadati restituiti si riferiscono a tutte le visualizzazioni in DATASET_ID nel tuo progetto predefinito:

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

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

    Sostituisci DATASET_ID con il nome del set di dati.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

bq

Esegui il comando bq show. Il flag --format può essere utilizzato per controllare come output. Se ricevi informazioni su una vista in un progetto diverso da progetto predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: [PROJECT_ID]:[DATASET].

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

Dove:

  • project_id è l'ID progetto.
  • dataset è il nome del set di dati.
  • view è il nome della visualizzazione.

Esempi:

Inserisci il seguente comando per visualizzare le informazioni su myview nel set di dati mydataset nel tuo progetto predefinito.

bq show --format=prettyjson mydataset.myview

Inserisci il comando seguente per visualizzare le informazioni su myview in set di dati mydataset in myotherproject.

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

API

Chiama il tables.get e fornire i parametri pertinenti.

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.

Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.

Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

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

Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.

Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.

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

Visualizza sicurezza

Per controllare l'accesso alle visualizzazioni in BigQuery, consulta Visualizzazioni autorizzate.

Passaggi successivi