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);
  • use bibliotecas de cliente.

Permissões exigidas

Para receber informações ou metadados sobre um conjunto de dados, é preciso ter pelo menos as permissões bigquery.datasets.get. Os papéis predefinidos a seguir do Cloud IAM incluem permissões bigquery.datasets.get:

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

Para mais informações sobre papéis e permissões do Cloud IAM no BigQuery, consulte Controle de acesso.

Como receber 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 de dados. 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.

CLI

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 conjunto 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 do 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 BigQuery Go.

// 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 do 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 esquema a seguir:

Nome da coluna Tipo de dados 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 o 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.

Para mais informações sobre as propriedades do conjunto de dados, consulte a página de recursos do conjunto de dados na documentação da API REST.

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.

    Acessar o Console do GCP (em inglês)

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

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

CLI

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 é obrigatória para consultas INFORMATION_SCHEMA.

Para executar a consulta, insira:

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

Os resultados terão a aparência abaixo:

  +----------------+---------------+---------------------+---------------------+-----------------+
  |  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 esquema a seguir:

Nome da coluna Tipo de dados 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 o datasetId).
OPTION_NAME STRING Um dos valores de nome na tabela de 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 de 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.

Para mais informações sobre as propriedades do conjunto de dados, consulte a página de recursos do conjunto de dados na documentação da API REST.

Exemplos

Exemplo 1:

No exemplo a seguir, recuperamos os prazos de validade padrão da tabela de todos os conjuntos de dados no projeto padrão (myproject) consultando a 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.

    Acessar o Console do GCP (em inglês)

  2. Insira a consulta SQL padrão a seguir na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrã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.

CLI

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 é obrigatória para consultas INFORMATION_SCHEMA.

Para executar a consulta, insira:

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

Os resultados terão a aparência abaixo:

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  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:

No exemplo a seguir, recuperamos os rótulos de todos os conjuntos de dados no projeto padrão (myproject) consultando a 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.

    Acessar o Console do GCP (em inglês)

  2. Insira a consulta SQL padrão a seguir na caixa Editor de consultas. INFORMATION_SCHEMA requer sintaxe SQL padrã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.

CLI

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 é obrigatória para consultas INFORMATION_SCHEMA.

Para executar a consulta, insira:

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

Os resultados terão a aparência abaixo:

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  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.