Obtén metadatos de conjunto de datos con INFORMATION_SCHEMA

INFORMATION_SCHEMA contiene estas vistas para los metadatos del conjunto de datos:

  • SCHEMATA
  • SCHEMATA_OPTIONS

Permisos necesarios

Para SCHEMATA y SCHEMATA_OPTIONS, debes tener el permiso bigquery.datasets.get.

Vista SCHEMATA

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

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 denominado datasetId
SCHEMA_OWNER STRING El valor es siempre NULL
CREATION_TIME TIMESTAMP La hora de creación del conjunto de datos
LAST_MODIFIED_TIME TIMESTAMP La hora de la última modificación 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 con el siguiente formato: `project_id`.INFORMATION_SCHEMA.view; por ejemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA.

Para ejecutar la consulta, haz lo siguiente:

Console

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

    Ir a Cloud Console

  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 Cloud 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 con 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'

El resultado debería ser similar a lo siguiente:

  +----------------+---------------+---------------------+---------------------+-----------------+
  |  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 por cada conjunto de datos en un proyecto al que tiene acceso el usuario actual.

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 denominado datasetId
OPTION_NAME STRING Uno de los valores de nombre de la tabla de opciones
OPTION_TYPE STRING Uno de los valores del tipo de datos de la tabla de opciones
OPTION_VALUE STRING Una de las opciones de valor de 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 del conjunto de datos

Ejemplos

Ejemplo 1:

En el siguiente ejemplo, se recuperan las horas de caducidad de la tabla predeterminada para todos los conjuntos de datos en tu proyecto predeterminado (myproject) mediante una consulta a 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 con el siguiente formato: `project_id`.INFORMATION_SCHEMA.view; por ejemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Para ejecutar la consulta, haz lo siguiente:

Console

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

    Ir a Cloud Console

  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 Cloud 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 con 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 ser similares a lo siguiente:

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

En el siguiente ejemplo, se recuperan las etiquetas de todos los conjuntos de datos en tu proyecto predeterminado (myproject) mediante una consulta a 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 con el siguiente formato: `project_id`.INFORMATION_SCHEMA.view; por ejemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

Para ejecutar la consulta, haz lo siguiente:

Console

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

    Ir a Cloud Console

  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 Cloud Console.

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

Línea de comandos

Usa el comando query y especifica la sintaxis de SQL estándar con 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 ser similares a lo siguiente:

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