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.VIEWS
vista.
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_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 |
-
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ándarmyview1
: 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", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+