Vista de COLUMNS
La vista INFORMATION_SCHEMA.COLUMNS contiene una fila para cada columna (campo) en una tabla.
Permisos necesarios
Para consultar la vista INFORMATION_SCHEMA.COLUMNS, necesitas los siguientes permisos de Identity and Access Management (IAM):
bigquery.tables.getbigquery.tables.list
Cada uno de los siguientes roles predefinidos de IAM incluye los permisos anteriores:
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/bigquery.metadataViewer
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
Esquema
Cuando consultas la vista INFORMATION_SCHEMA.COLUMNS, los resultados contienen una fila por cada columna (campo) de una tabla.
La vista INFORMATION_SCHEMA.COLUMNS 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 |
El nombre del conjunto de datos que contiene la tabla, también denominado
datasetId. |
table_name |
STRING |
El nombre de la tabla o la vista, también denominado tableId. |
column_name |
STRING |
Es el nombre de la columna |
ordinal_position |
INT64 |
Es el desplazamiento indexado en 1 de la columna dentro de la tabla. Si es una seudocolumna,
como _PARTITIONTIME o _PARTITIONDATE, el valor es
NULL. |
is_nullable |
STRING |
YES o NO, lo cual depende de si el modo de la columna permite valores NULL |
data_type |
STRING |
El tipo de datos de GoogleSQL de la columna |
is_generated |
STRING |
El valor es ALWAYS si la columna es una
columna de incorporación
generada automáticamente;
de lo contrario, el valor es NEVER. |
generation_expression |
STRING |
El valor es la expresión de generación que se usa para definir la columna
si esta es una columna de incorporación generada
automáticamente; de lo contrario, el valor es NULL. |
is_stored |
STRING |
El valor es YES si la columna es una columna de incorporación generada automáticamente; de lo contrario, el valor es NULL. |
async_generation_status |
STRUCT |
Contiene errores de bloqueo para los trabajos de generación de embeddings en segundo plano si la
columna es una columna de embeddings generada automáticamente; de lo contrario, el
valor es NULL. Para obtener información sobre los errores de bloqueo, consulta
el campo async_generation_status.blocking_error.message.
Los errores de bloqueo pueden incluir lo siguiente:
async_generation_status.
|
is_hidden |
STRING |
YES o NO, lo cual depende de si la columna es
una seudocolumna, como _PARTITIONTIME o _PARTITIONDATE. |
is_updatable |
STRING |
El valor es siempre NULL. |
is_system_defined |
STRING |
YES o NO, lo cual depende de si la columna es
una seudocolumna, como _PARTITIONTIME o _PARTITIONDATE. |
is_partitioning_column |
STRING |
YES o NO, lo cual depende de si la columna es
una columna de partición. |
clustering_ordinal_position |
INT64 |
Es el desplazamiento 1 indexado de la columna dentro de las columnas de agrupamiento en clústeres de la tabla. El valor es NULL si la tabla no es una tabla agrupada. |
collation_name |
STRING |
El nombre de la especificación de la intercalación,
si existe; de lo contrario, NULL.Si se pasa STRING o ARRAY<STRING>,
se devuelve la especificación de intercalación si existe; de lo contrario,
se devuelve NULL.
|
column_default |
STRING |
Es el valor predeterminado de la
columna, si existe; de lo contrario, el valor es NULL.
|
rounding_mode |
STRING |
El modo de redondeo que se usa para los valores escritos en el campo si su
tipo es un NUMERIC o BIGNUMERIC con parámetros;
de lo contrario, el valor es NULL.
|
data_policies.name |
STRING |
Es la lista de políticas de datos que se adjuntan a la columna para controlar el acceso y el enmascaramiento. Este campo está en (versión preliminar). |
data_governance_tags |
ARRAY<STRUCT> |
Es la lista de etiquetas de administración de datos que se adjuntan a la columna para controlar el acceso y el enmascaramiento. Cada STRUCT contiene los siguientes
campos STRING:
STRUCT (o RECORD), las etiquetas de administración de datos que se adjuntan a los campos anidados están disponibles en la vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
|
policy_tags |
ARRAY<STRING> |
Es la lista de etiquetas de política que se adjuntan a la columna. |
is_identity |
STRING |
YES o NO, según si la columna es
una columna de identidad.
|
identity_generation |
STRING |
ALWAYS o BY DEFAULT, según el
modo de generación de la columna de identidad. Si la columna no es una columna de identidad, el valor es NULL.
|
identity_start |
INT64 |
Es el primer valor que genera la columna de identidad o NULL
si la columna no es de identidad.
|
identity_increment |
INT64 |
Es la diferencia mínima entre los IDs generados de forma sucesiva para la
columna de identidad o NULL si la columna no es una
columna de identidad.
|
identity_maximum |
INT64 |
Es el valor máximo que se puede generar para la columna de identidad o
NULL si la columna no es una columna de identidad.
|
identity_minimum |
INT64 |
Es el valor mínimo que se puede generar para la columna de identidad o
NULL si la columna no es una columna de identidad.
|
identity_cycle |
STRING |
Si la columna es una columna de identidad, este valor es
NEVER; de lo contrario, el valor es NULL.
|
Para mayor estabilidad, te recomendamos que enumeres de forma explícita las columnas en tus consultas de INFORMATION_SCHEMA en lugar de
usar un comodín (SELECT *). Enumerar las columnas de forma explícita evita que las consultas
se interrumpan si cambia el esquema subyacente.
Permiso y sintaxis
Las consultas realizadas a esta vista deben incluir un conjunto de datos o un calificador de región. Para consultas con un calificador de conjunto de datos, debes tener permisos para el conjunto de datos. Para consultas con un calificador de región, debes tener permisos para el proyecto. Para obtener más información, consulta Sintaxis. En la siguiente tabla, se explican los permisos de la región y los recursos para esta vista:
| Nombre de la vista | Permiso del recurso | Permiso de la región |
|---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMNS |
Nivel de proyecto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
Nivel de conjunto de datos | Ubicación del conjunto de datos |
-
Opcional:
PROJECT_IDes el ID de tu proyecto de Google Cloud . 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: Es el ID del conjunto de datos. Para obtener más información, consulta Calificador de conjunto de datos.
Ejemplo
En el siguiente ejemplo, se recuperan los metadatos desde la vista INFORMATION_SCHEMA.COLUMNS para la tabla population_by_zip_2010 en el conjunto de datos census_bureau_usa. Este conjunto de datos es parte del programa de conjuntos de datos públicos de BigQuery.
Debido a que la tabla que consultas está en otro proyecto, bigquery-public-data, debes agregar el ID del proyecto al conjunto de datos en el siguiente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; por ejemplo, `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.
La siguiente columna se excluye de los resultados de la consulta:
IS_UPDATABLE
SELECT * EXCEPT(is_updatable) FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'population_by_zip_2010';
El resultado es similar al siguiente. Para facilitar la lectura, algunas columnas se excluyen del resultado.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+