Como receber informações sobre conjuntos de dados

Neste documento, descrevemos como receber informações ou metadados sobre conjuntos de dados no BigQuery.

Para receber informações do conjunto de dados:

  • use o Console do GCP ou a IU clássica da Web do BigQuery;
  • use o comando bq show da CLI;
  • chame o método de API datasets.get;
  • consulte as visualizações INFORMATION_SCHEMA (Beta).

Permissões exigidas

Para receber informações ou metadados sobre um conjunto de dados, é necessário ter o papel de READER no nível do conjunto de dados ou um papel de IAM no projeto que inclua permissões bigquery.datasets.get. Todos os papéis de IAM predefinidos no nível do projeto incluem permissões bigquery.datasets.get, exceto bigquery.jobUser.

Para saber mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Controle de acesso. Para mais informações sobre os papéis no nível do conjunto de dados, consulte Papéis primitivos para conjuntos de dados.

Como conseguir informações do conjunto de dados

Para receber informações sobre conjuntos de dados em um projeto, faça o seguinte:

Console

Clique no nome do conjunto de dados no painel Recursos. Abaixo do Editor de consultas, você verá a descrição e os detalhes do conjunto. As tabelas de um conjunto de dados ficam aninhadas abaixo dele no painel Recursos.

Ver conjunto de dados

Por padrão, os conjuntos de dados anônimos ficam ocultos na IU da Web do BigQuery. Para mostrar informações sobre conjuntos de dados anônimos, use a CLI ou a API.

IU clássica

Clique no nome do conjunto de dados. A página Detalhes do conjunto de dados exibe a descrição, os detalhes e as tabelas do conjunto de dados.

Ver conjunto de dados

Por padrão, os conjuntos de dados anônimos ficam ocultos na IU da Web do BigQuery. Para mostrar informações sobre conjuntos de dados anônimos, use a CLI ou a API.

Linha de comando

Emita o comando bq show. A sinalização --format pode ser usada para controlar a saída. Se você receber informações sobre um conjunto de dados em um projeto diferente do padrão, adicione o código do projeto ao nome do conjunto de dados neste formato: [PROJECT_ID]:[DATASET].

Para mostrar informações sobre um conjunto de dados anônimo, use o comando bq ls --all para listar todos os conjuntos e, em seguida, use o nome do anônimo no comando bq show.

bq show --format=prettyjson [PROJECT_ID]:[DATASET]

Em que:

  • [PROJECT_ID] é o nome do projeto;
  • [DATASET] é o nome do conjunto de dados.

Exemplos:

Digite o comando abaixo para exibir informações sobre mydataset no projeto padrão.

bq show --format=prettyjson mydataset

Insira o seguinte comando para exibir informações sobre mydataset em myotherproject.

bq show --format=prettyjson myotherproject:mydataset

Insira o seguinte comando para exibir informações sobre um conjunto de dados anônimo, _1234abcd56efgh78ijkl1234 em seu projeto padrão.

bq show --format=prettyjson _1234abcd56efgh78ijkl1234

API

Chame o método de API datasets.get e forneça todos os parâmetros relevantes.

Go

Antes de testar esta amostra, siga as instruções de configuração para Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API do BigQuery para Go (em inglês).

// To run this sample, you will need to create (or reuse) a context and
// an instance of the bigquery client.  For example:
// import "cloud.google.com/go/bigquery"
// ctx := context.Background()
// client, err := bigquery.NewClient(ctx, "your-project-id")
meta, err := client.Dataset(datasetID).Metadata(ctx)
if err != nil {
	return err
}

fmt.Printf("Dataset ID: %s\n", datasetID)
fmt.Printf("Description: %s\n", meta.Description)
fmt.Println("Labels:")
for k, v := range meta.Labels {
	fmt.Printf("\t%s: %s", k, v)
}
fmt.Println("Tables:")
it := client.Dataset(datasetID).Tables(ctx)

cnt := 0
for {
	t, err := it.Next()
	if err == iterator.Done {
		break
	}
	cnt++
	fmt.Printf("\t%s\n", t.TableID)
}
if cnt == 0 {
	fmt.Println("\tThis dataset does not contain any tables.")
}

Java

Antes de testar esta amostra, siga as instruções de configuração para Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery Java.

DatasetId datasetId = DatasetId.of(projectId, datasetName);
Dataset dataset = bigquery.getDataset(datasetId);

Python

Antes de testar esta amostra, siga as instruções de configuração do Python em Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery Python.

from google.cloud import bigquery

# TODO(developer): 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)

full_dataset_id = "{}.{}".format(dataset.project, dataset.dataset_id)
friendly_name = dataset.friendly_name
print(
    "Got dataset '{}' with friendly_name '{}'.".format(
        full_dataset_id, friendly_name
    )
)

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

# View tables in dataset
print("Tables:")
tables = list(client.list_tables(dataset))  # API request(s)
if tables:
    for table in tables:
        print("\t{}".format(table.table_id))
else:
    print("\tThis dataset does not contain any tables.")

INFORMATION_SCHEMA (Beta)

INFORMATION_SCHEMA é uma série de visualizações que fornece acesso a metadados sobre conjuntos de dados, tabelas e visualizações.

Visualização SCHEMATA

Quando consultamos a visualização INFORMATION_SCHEMA.SCHEMATA, os resultados contêm uma linha para cada conjunto de dados no projeto a que o usuário atual tem acesso.

A visualização INFORMATION_SCHEMA.SCHEMATA tem o seguinte esquema:

Nome da coluna Tipo de dado Valor
CATALOG_NAME STRING O nome do projeto que contém o conjunto de dados.
SCHEMA_NAME STRING O nome do conjunto de dados, também conhecido como datasetId.
SCHEMA_OWNER STRING O valor sempre é NULL.
CREATION_TIME TIMESTAMP O horário de criação do conjunto de dados.
LAST_MODIFIED_TIME TIMESTAMP O horário da última modificação do conjunto de dados.
LOCATION STRING A localização geográfica do conjunto de dados.

Exemplos

O exemplo a seguir recupera todas as colunas da visualização INFORMATION_SCHEMA.SCHEMATA, exceto schema_owner, que é reservada para uso futuro. Os metadados retornados correspondem a todos os conjuntos de dados no projeto padrão (myproject).

Para executar a consulta em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no formato a seguir: `[PROJECT_ID]`.INFORMATION_SCHEMA.[VIEW] Por exemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA.

Para executar a consulta, faça o seguinte:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acesse a IU da Web do BigQuery

  2. Digite a seguinte consulta SQL padrão na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. O SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     * EXCEPT(schema_owner)
    FROM
     INFORMATION_SCHEMA.SCHEMATA
    
  3. Clique em Executar.

Linha de comando

Use o comando query e especifique a sintaxe SQL padrão usando a sinalização --nouse_legacy_sql ou --use_legacy_sql=false. A sintaxe SQL padrão é necessária para consultas de INFORMATION_SCHEMA.

Para executar a consulta, digite:

bq query --nouse_legacy_sql \
'SELECT * EXCEPT(schema_owner) FROM INFORMATION_SCHEMA.SCHEMATA'

Os resultados terão a seguinte aparência:

  +----------------+---------------+---------------------+---------------------+-----------------+
  |  catalog_name  |  schema_name  |    creation_time    | last_modified_time  |    location     |
  +----------------+---------------+---------------------+---------------------+-----------------+
  | myproject      | mydataset1    | 2018-11-07 19:50:24 | 2018-11-07 19:50:24 | US              |
  | myproject      | mydataset2    | 2018-07-16 04:24:22 | 2018-07-16 04:24:22 | US              |
  | myproject      | mydataset3    | 2018-02-07 21:08:45 | 2018-05-01 23:32:53 | asia-northeast1 |
  +----------------+---------------+---------------------+---------------------+-----------------+
  

Visualização SCHEMATA_OPTIONS

Quando consultamos a visualização INFORMATION_SCHEMA.SCHEMATA_OPTIONS, os resultados contêm uma linha para cada conjunto de dados no projeto a que o usuário atual tem acesso.

A visualização INFORMATION_SCHEMA.SCHEMATA_OPTIONS tem o seguinte esquema:

Nome da coluna Tipo de dado Valor
CATALOG_NAME STRING O nome do projeto que contém o conjunto de dados.
SCHEMA_NAME STRING O nome do conjunto de dados, também conhecido como datasetId.
OPTION_NAME STRING Um dos valores de nome na tabela opções.
OPTION_TYPE STRING Um dos valores de tipo de dados na tabela de opções.
OPTION_VALUE STRING Uma das opções de valor na tabela de opções.
Tabela opções
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_table_expiration_days FLOAT64 A vida útil padrão em dias de todas as tabelas no conjunto de dados.
friendly_name STRING O nome descritivo do conjunto de dados.
description STRING Uma descrição do conjunto de dados.
labels ARRAY<STRUCT<STRING, STRING>> Uma matriz de STRUCTs que representa os rótulos no conjunto de dados.

Exemplos

Exemplo 1:

O exemplo a seguir recupera os prazos de validade padrão de tabela para todos os conjuntos de dados no projeto padrão (myproject) por meio da consulta da visualização INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Para executar a consulta em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no formato a seguir: `[PROJECT_ID]`.,INFORMATION_SCHEMA.[VIEW] por exemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Para executar a consulta, faça o seguinte:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acesse a IU da Web do BigQuery

  2. Digite a seguinte consulta SQL padrão na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. O SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="default_table_expiration_days"
    
  3. Clique em Executar.

Linha de comando

Use o comando query e especifique a sintaxe SQL padrão usando a sinalização --nouse_legacy_sql ou --use_legacy_sql=false. A sintaxe SQL padrão é necessária para consultas de INFORMATION_SCHEMA.

Para executar a consulta, digite:

bq query --nouse_legacy_sql \
'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE option_name="default_table_expiration_days"'

Os resultados terão a seguinte aparência:

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

Exemplo 2:

O exemplo a seguir recupera os rótulos de todos os conjuntos de dados no projeto padrão (myproject) por meio da consulta da visualização INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Para executar a consulta em um projeto diferente do padrão, adicione o código do projeto ao conjunto de dados no formato a seguir: `[PROJECT_ID]`.,INFORMATION_SCHEMA.[VIEW] por exemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Para executar a consulta, faça o seguinte:

Console

  1. Abra a IU da Web do BigQuery no Console do GCP.

    Acesse a IU da Web do BigQuery

  2. Digite a seguinte consulta SQL padrão na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrão. O SQL padrão é a sintaxe padrão no Console do GCP.

    SELECT
     *
    FROM
     INFORMATION_SCHEMA.SCHEMATA_OPTIONS
    WHERE
     option_name="labels"
    
  3. Clique em Executar.

Linha de comando

Use o comando query e especifique a sintaxe SQL padrão usando a sinalização --nouse_legacy_sql ou --use_legacy_sql=false. A sintaxe SQL padrão é necessária para consultas de INFORMATION_SCHEMA.

Para executar a consulta, digite:

bq query --nouse_legacy_sql \
'SELECT * FROM INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE option_name="labels"'

Os resultados terão a seguinte aparência:

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.