Vista TABLAS

La vista INFORMATION_SCHEMA.TABLES contiene una fila por cada tabla o vista de un conjunto de datos. Las vistas TABLES y TABLE_OPTIONS también contienen información general sobre las vistas. Para obtener información detallada, consulta la vista INFORMATION_SCHEMA.VIEWS.

Permisos obligatorios

Para consultar la vista INFORMATION_SCHEMA.TABLES, necesitas los siguientes permisos de gestión de identidades y accesos (IAM):

  • bigquery.tables.get
  • bigquery.tables.list
  • bigquery.routines.get
  • bigquery.routines.list

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos anteriores:

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

Para obtener más información sobre los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.

Esquema

Cuando consultas la vista INFORMATION_SCHEMA.TABLES, los resultados de la consulta contienen una fila por cada tabla o vista de un conjunto de datos. Para obtener información detallada sobre las vistas, consulta la INFORMATION_SCHEMA.VIEWSvista.

La vista INFORMATION_SCHEMA.TABLES tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
table_catalog STRING El ID del proyecto que contiene el conjunto de datos.
table_schema STRING Nombre del conjunto de datos que contiene la tabla o la vista. También se denomina datasetId.
table_name STRING Nombre de la tabla o de la vista. También se denomina tableId.
table_type STRING El tipo de tabla, que puede ser uno de los siguientes:
managed_table_type STRING Esta columna está en versión preliminar. El tipo de tabla gestionada, que puede ser uno de los siguientes:
is_insertable_into STRING YES o NO, en función de si la tabla admite instrucciones INSERT de DML
is_fine_grained_mutations_enabled STRING YES o NO en función de si las mutaciones de DML detalladas están habilitadas en la tabla
is_typed STRING El valor es siempre NO.
is_change_history_enabled STRING YES o NO, según si el historial de cambios está habilitado.
creation_time TIMESTAMP Hora de creación de la tabla
base_table_catalog STRING En el caso de las clones de tabla y las instantáneas de tabla, el proyecto de la tabla base. Solo se aplica a las tablas en las que table_type tiene el valor CLONE o SNAPSHOT.
base_table_schema STRING En el caso de los clones de tabla y las instantáneas de tabla, el conjunto de datos de la tabla base. Solo se aplica a las tablas con el valor CLONE o SNAPSHOT en table_type.
base_table_name STRING En el caso de los clones de tabla y las instantáneas de tabla, el nombre de la tabla base. Solo se aplica a las tablas con el valor CLONE o SNAPSHOT en table_type.
snapshot_time_ms TIMESTAMP En el caso de los clones de tabla y las instantáneas de tabla, se indica la hora en la que se ejecutó la operación de clonación o de creación de instantánea en la tabla base para crear esta tabla. Si se ha usado la función de viaje en el tiempo, este campo contiene la marca de tiempo correspondiente. De lo contrario, el campo snapshot_time_ms es el mismo que el campo creation_time. Solo se aplica a las tablas en las que table_type tiene el valor CLONE o SNAPSHOT.
replica_source_catalog STRING En el caso de las réplicas de vistas materializadas, se trata del proyecto de la vista materializada base.
replica_source_schema STRING En el caso de las réplicas de vistas materializadas, se trata del conjunto de datos de la vista materializada base.
replica_source_name STRING En el caso de las réplicas de vistas materializadas, el nombre de la vista materializada base.
replication_status STRING En el caso de las réplicas de vistas materializadas, el estado de la replicación de la vista materializada base a la réplica de la vista materializada. Puede ser uno de los siguientes:
  • REPLICATION_STATUS_UNSPECIFIED
  • ACTIVE: la replicación está activa y no hay errores
  • SOURCE_DELETED: se ha eliminado la vista materializada de origen
  • PERMISSION_DENIED: La vista materializada de origen no se ha autorizado en el conjunto de datos que contiene las tablas de BigLake de Amazon S3 de origen que se han usado en la consulta que ha creado la vista materializada.
  • UNSUPPORTED_CONFIGURATION: Hay un problema con los requisitos de la réplica que no está relacionado con la autorización de la vista materializada de origen.
replication_error STRING Si replication_status indica un problema de replicación de una réplica de vista materializada, replication_error proporciona más detalles sobre el problema.
ddl STRING La declaración de DDL que se puede usar para volver a crear la tabla, como CREATE TABLE o CREATE VIEW
default_collation_name STRING El nombre de la especificación de ordenación predeterminada, si existe. De lo contrario, NULL.
upsert_stream_apply_watermark TIMESTAMP En las tablas que usan la captura de datos de cambios (CDC), se indica la hora en la que se aplicaron por última vez las modificaciones de las filas. Para obtener más información, consulta Monitor the progress of a table upsert operation (Monitorizar el progreso de una operación de upsert de tabla).

Ámbito y sintaxis

Las consultas en esta vista deben incluir un conjunto de datos o un calificador de región. En el caso de las consultas con un calificador de conjunto de datos, debes tener permisos para el conjunto de datos. En el caso de las consultas con un calificador de región, debes tener permisos para el proyecto. Para obtener más información, consulta la sección Sintaxis. En la siguiente tabla se explican los ámbitos de región y de recurso de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito de la región
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLES Nivel de proyecto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLES Nivel del conjunto de datos Ubicación del conjunto de datos
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. Si no se especifica, se usa el proyecto predeterminado.
  • REGION: cualquier nombre de región del conjunto de datos. Por ejemplo, `region-us`.
  • DATASET_ID: el ID de tu conjunto de datos. Para obtener más información, consulta Calificador de conjunto de datos.

Ejemplo

-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;

Ejemplos

Ejemplo 1:

En el siguiente ejemplo se obtienen los metadatos de todas las tablas del conjunto de datos llamado mydataset. Los metadatos que se devuelven son de todos los tipos de tablas de mydataset de tu proyecto predeterminado.

mydataset contiene las siguientes tablas:

  • mytable1: una tabla de BigQuery estándar
  • myview1: una vista de BigQuery

Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.

SELECT
  table_catalog, table_schema, table_name, table_type,
  is_insertable_into, creation_time, ddl
FROM
  mydataset.INFORMATION_SCHEMA.TABLES;

El resultado es similar al siguiente. Para mejorar la legibilidad, algunas columnas se han excluido del resultado.

+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| table_catalog  | table_schema  |   table_name   | table_type | is_insertable_into |    creation_time    |                     ddl                     |
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
| myproject      | mydataset     | mytable1       | BASE TABLE | YES                | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` |
|                |               |                |            |                    |                     | (                                           |
|                |               |                |            |                    |                     |   id INT64                                  |
|                |               |                |            |                    |                     | );                                          |
| myproject      | mydataset     | myview1        | VIEW       | NO                 | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1`   |
|                |               |                |            |                    |                     | AS SELECT 100 as id;                        |
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Ejemplo 2:

En el siguiente ejemplo se obtienen los metadatos de todas las tablas de tipo CLONE o SNAPSHOT de la vista INFORMATION_SCHEMA.TABLES. Los metadatos devueltos corresponden a las tablas de mydataset de su proyecto predeterminado.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.

  SELECT
    table_name, table_type, base_table_catalog,
    base_table_schema, base_table_name, snapshot_time_ms
  FROM
    mydataset.INFORMATION_SCHEMA.TABLES
  WHERE
    table_type = 'CLONE'
  OR
    table_type = 'SNAPSHOT';

El resultado es similar al siguiente. Para mejorar la legibilidad, algunas columnas se han excluido del resultado.

  +--------------+------------+--------------------+-------------------+-----------------+---------------------+
  | table_name   | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms    |
  +--------------+------------+--------------------+-------------------+-----------------+---------------------+
  | items_clone  | CLONE      | myproject          | mydataset         | items           | 2018-10-31 22:40:05 |
  | orders_bk    | SNAPSHOT   | myproject          | mydataset         | orders          | 2018-11-01 08:22:39 |
  +--------------+------------+--------------------+-------------------+-----------------+---------------------+

Ejemplo 3:

En el siguiente ejemplo se obtienen las columnas table_name y ddl de la vista INFORMATION_SCHEMA.TABLES de la tabla population_by_zip_2010 del conjunto de datos census_bureau_usa. Este conjunto de datos forma parte del programa de conjuntos de datos públicos de BigQuery.

Como la tabla que estás consultando está en otro proyecto, debes añadir el ID del proyecto al conjunto de datos con el siguiente formato: `project_id`.dataset.INFORMATION_SCHEMA.view. En este ejemplo, el valor es `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.

SELECT
  table_name, ddl
FROM
  `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
WHERE
  table_name = 'population_by_zip_2010';

El resultado es similar al siguiente:

+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|       table_name       |                                                                                                            ddl                                                                                                             |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010`                                                                                                                                               |
|                        | (                                                                                                                                                                                                                          |
|                        |   geo_id STRING OPTIONS(description="Geo code"),                                                                                                                                                                           |
|                        |   zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"),                                                                                                                          |
|                        |   population INT64 OPTIONS(description="The total count of the population for this segment."),                                                                                                                             |
|                        |   minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."),                                                          |
|                        |   maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), |
|                        |   gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.")                                                                                                                    |
|                        | )                                                                                                                                                                                                                          |
|                        | OPTIONS(                                                                                                                                                                                                                   |
|                        |   labels=[("freebqcovid", "")]                                                                                                                                                                                             |
|                        | );                                                                                                                                                                                                                         |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+