Cómo obtener información sobre los conjuntos de datos

En este documento se describe cómo obtener información o metadatos acerca de los conjuntos de datos en BigQuery.

Puedes obtener información sobre los conjuntos de datos mediante:

  • El uso de GCP Console o la IU web de BigQuery.
  • El uso del comando de la CLI bq show.
  • La realización de una llamada al método datasets.get de la API
  • La realización de consultas a las vistas INFORMATION_SCHEMA (beta)

Permisos necesarios

Para obtener información o metadatos sobre un conjunto de datos, debes tener asignada la función de READER a nivel de conjunto de datos o una función de IAM a nivel de proyecto que incluya permisos bigquery.datasets.get. Todas las funciones predefinidas de IAM a nivel de proyecto incluyen permisos bigquery.datasets.get, excepto bigquery.jobUser.

Para obtener más información sobre las funciones de IAM y los permisos en BigQuery, consulta Control de acceso. Para obtener más información sobre las funciones a nivel de conjunto de datos, consulta Funciones básicas para conjuntos de datos.

Cómo obtener información sobre conjuntos de datos

Para obtener información sobre los conjuntos de datos en un proyecto:

IU clásica

Haz clic en el nombre del conjunto de datos. La página Detalles del conjunto de datos muestra la descripción, los detalles y las tablas del conjunto de datos.

Ver conjunto de datos

De forma predeterminada, los conjuntos de datos anónimos se encuentran ocultos de la IU web de BigQuery. Para mostrar información sobre los conjuntos de datos anónimos, usa la CLI o la API.

Línea de comandos

Ejecuta el comando bq show. La marca --format se puede usar para controlar el resultado. Si estás obteniendo información acerca de un conjunto de datos en un proyecto distinto de tu proyecto predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: [PROJECT_ID]:[DATASET].

Para mostrar información sobre un conjunto de datos anónimo, utiliza el comando bq ls --all para ver una lista de todos los conjuntos de datos y luego usa el nombre del conjunto de datos anónimo en el comando bq show.

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

Donde:

  • [PROJECT_ID] es el nombre de tu proyecto.
  • [DATASET] es el nombre del conjunto de datos.

Ejemplos:

Ingresa el siguiente comando para mostrar información sobre mydataset en tu proyecto predeterminado.

bq show --format=prettyjson mydataset

Ingresa el siguiente comando para mostrar información sobre mydataset en myotherproject.

bq show --format=prettyjson myotherproject:mydataset

Ingresa el siguiente comando para mostrar información sobre un conjunto de datos anónimo, _1234abcd56efgh78ijkl1234 en tu proyecto predeterminado.

bq show --format=prettyjson _1234abcd56efgh78ijkl1234

API

Llama al método datasets.get de la API y proporciona cualquier parámetro relevante.

Go

Antes de probar esta muestra, sigue las instrucciones de configuración para Go que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para 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 probar esta muestra, sigue las instrucciones de configuración para Java que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

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

Python

Antes de probar esta muestra, sigue las instrucciones de configuración para Python que se encuentran en la Guía de inicio rápido de BigQuery con bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Python.

# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'my_dataset'

dataset_ref = client.dataset(dataset_id)
dataset = client.get_dataset(dataset_ref)  # API request

# View dataset properties
print('Dataset ID: {}'.format(dataset_id))
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_ref))  # 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 es una serie de vistas que proporcionan acceso a metadatos sobre conjuntos de datos, tablas y vistas.

Vista SCHEMATA

Cuando consultas la vista INFORMATION_SCHEMA.SCHEMATA, los resultados de la consulta contienen una fila para cada conjunto de datos en un proyecto donde el usuario actual tiene acceso.

La vista INFORMATION_SCHEMA.SCHEMATA tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
CATALOG_NAME STRING El nombre del proyecto que contiene el conjunto de datos.
SCHEMA_NAME STRING El nombre del conjunto de datos (también llamado datasetId)
SCHEMA_OWNER STRING El valor es siempre NULL.
CREATION_TIME TIMESTAMP La fecha/hora de creación del conjunto de datos
LAST_MODIFIED_TIME TIMESTAMP La última fecha/hora modificada del conjunto de datos
LOCATION STRING La ubicación geográfica del conjunto de datos

Ejemplos

En el siguiente ejemplo se recuperan todas las columnas de la vista INFORMATION_SCHEMA.SCHEMATA, excepto schema_owner, que se reserva para uso futuro. Los metadatos que se muestran corresponden a todos los conjuntos de datos en el proyecto predeterminado: myproject.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: `[PROJECT_ID]:[DATASET].INFORMATION_SCHEMA.[VIEW]` por ejemplo, `myproject:mydataset.INFORMATION_SCHEMA.SCHEMATA`.

Para ejecutar la consulta, haz lo siguiente:

Console

  1. Abre la IU web de BigQuery en GCP Console.

    Ir a la IU web de BigQuery

  2. Ingresa la siguiente consulta de SQL estándar en la casilla Editor de consulta. INFORMATION_SCHEMA requiere sintaxis de SQL estándar. SQL estándar es la sintaxis predeterminada en GCP Console.

    SELECT
     * EXCEPT(schema_owner)
    FROM
     `INFORMATION_SCHEMA.SCHEMATA`
    
  3. Haz clic en Ejecutar.

Línea de comandos

Usa el comando query y especifica la sintaxis de SQL estándar mediante las marcas --nouse_legacy_sql o --use_legacy_sql=false. Se requiere la sintaxis de SQL estándar para las consultas INFORMATION_SCHEMA.

Para ejecutar la consulta, ingresa lo siguiente:

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

Los resultados deberían verse de la siguiente manera:

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

Vista SCHEMATA_OPTIONS

Cuando consultas la vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS, los resultados de la consulta contienen una fila para cada conjunto de datos en un proyecto donde el usuario actual tiene acceso.

La vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
CATALOG_NAME STRING El nombre del proyecto que contiene el conjunto de datos.
SCHEMA_NAME STRING El nombre del conjunto de datos (también llamado datasetId)
OPTION_NAME STRING Uno de los valores de nombre en la tabla de opciones
OPTION_TYPE STRING Uno de los valores de tipo de datos en la tabla de opciones
OPTION_VALUE STRING Una de las opciones de valor en la tabla de opciones
Tabla de opciones
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_table_expiration_days FLOAT64 El ciclo de vida predeterminado, en días, de todas las tablas en el conjunto de datos
friendly_name STRING El nombre descriptivo del conjunto de datos
description STRING Una descripción del conjunto de datos
labels ARRAY<STRUCT<STRING, STRING>> Un arreglo de STRUCT que representa las etiquetas en el conjunto de datos

Ejemplos

Ejemplo 1:

El siguiente ejemplo recupera las horas de caducidad de la tabla predeterminada para todos los conjuntos de datos en tu proyecto predeterminado (myproject), mediante la vista INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: `[PROJECT_ID]:[DATASET].INFORMATION_SCHEMA.[VIEW]` por ejemplo, `myproject:mydataset.INFORMATION_SCHEMA.SCHEMATA_OPTIONS`.

Para ejecutar la consulta, haz lo siguiente:

Console

  1. Abre la IU web de BigQuery en GCP Console.

    Ir a la IU web de BigQuery

  2. Ingresa la siguiente consulta de SQL estándar en la casilla Editor de consulta. INFORMATION_SCHEMA requiere sintaxis de SQL estándar. SQL estándar es la sintaxis predeterminada en GCP Console.

    SELECT
     *
    FROM
     `INFORMATION_SCHEMA.SCHEMATA_OPTIONS`
    WHERE
     option_name="default_table_expiration_days"
    
  3. Haz clic en Ejecutar.

Línea de comandos

Usa el comando query y especifica la sintaxis de SQL estándar mediante las marcas --nouse_legacy_sql o --use_legacy_sql=false. Se requiere la sintaxis de SQL estándar para las consultas INFORMATION_SCHEMA.

Para ejecutar la consulta, ingresa lo siguiente:

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

Los resultados deberían verse de la siguiente manera:

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

Ejemplo 2:

El siguiente ejemplo recupera las etiquetas para todos los conjuntos de datos en tu proyecto predeterminado (myproject), mediante la vista INFORMATION_SCHEMATA.SCHEMATA_OPTIONS.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en el siguiente formato: `[PROJECT_ID]:[DATASET].INFORMATION_SCHEMA.[VIEW]` por ejemplo, `myproject:mydataset.INFORMATION_SCHEMA.SCHEMATA_OPTIONS`.

Para ejecutar la consulta, haz lo siguiente:

Console

  1. Abre la IU web de BigQuery en GCP Console.

    Ir a la IU web de BigQuery

  2. Abre la IU web de BigQuery en GCP Console.

    Ir a la IU web de BigQuery

  3. Ingresa la siguiente consulta de SQL estándar en la casilla Editor de consulta. INFORMATION_SCHEMA requiere sintaxis de SQL estándar. SQL estándar es la sintaxis predeterminada en GCP Console.

    SELECT
     *
    FROM
     `INFORMATION_SCHEMA.SCHEMATA_OPTIONS`
    WHERE
     option_name="labels"
    
  4. Haz clic en Ejecutar.

Línea de comandos

Usa el comando query y especifica la sintaxis de SQL estándar mediante las marcas --nouse_legacy_sql o --use_legacy_sql=false. Se requiere la sintaxis de SQL estándar para las consultas INFORMATION_SCHEMA.

Para ejecutar la consulta, ingresa lo siguiente:

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

Los resultados deberían verse de la siguiente manera:

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  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óximos pasos

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.