Vista COLUMNAS
La vista INFORMATION_SCHEMA.COLUMNS
contiene una fila por cada columna (campo) de una tabla.
Permisos obligatorios
Para consultar la vista INFORMATION_SCHEMA.COLUMNS
, necesitas los siguientes permisos de gestión de identidades y accesos (IAM):
bigquery.tables.get
bigquery.tables.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.dataEditor
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.COLUMNS
, los resultados de la consulta 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 |
Nombre del conjunto de datos que contiene la tabla, también conocido como datasetId |
TABLE_NAME |
STRING |
Nombre de la tabla o de la vista, también conocido como tableId |
COLUMN_NAME |
STRING |
Nombre de la columna |
ORDINAL_POSITION |
INT64 |
Desplazamiento de base 1 de la columna en la tabla. Si se trata de una pseudocolumna, como _PARTITIONTIME o _PARTITIONDATE, el valor es NULL . |
IS_NULLABLE |
STRING |
YES o NO en función 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 siempre NEVER . |
GENERATION_EXPRESSION |
STRING |
El valor es siempre NULL . |
IS_STORED |
STRING |
El valor es siempre NULL . |
IS_HIDDEN |
STRING |
YES o NO en función de si la columna es
una pseudocolumna como _PARTITIONTIME o _PARTITIONDATE |
IS_UPDATABLE |
STRING |
El valor es siempre NULL . |
IS_SYSTEM_DEFINED |
STRING |
YES o NO en función de si la columna es
una pseudocolumna como _PARTITIONTIME o _PARTITIONDATE |
IS_PARTITIONING_COLUMN |
STRING |
YES o NO en función de si la columna es una columna de partición |
CLUSTERING_ORDINAL_POSITION |
INT64 |
Desplazamiento de la columna en la tabla, indexado a partir de 1, dentro de las columnas de
agrupación en clústeres de la tabla. El valor es NULL si la tabla no es una
tabla agrupada en clústeres. |
COLLATION_NAME |
STRING |
Nombre de la especificación de ordenación, si existe. De lo contrario, se devuelve NULL . Si se incluye STRING o ARRAY<STRING> , se devuelve la especificación de ordenación si existe. De lo contrario, se devuelve NULL .
|
COLUMN_DEFAULT |
STRING |
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 NUMERIC o BIGNUMERIC con parámetros. De lo contrario, el valor es NULL .
|
POLICY_TAGS |
ARRAY<STRING> |
Lista de etiquetas de política asociadas a la columna |
Á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.COLUMNS |
Nivel de proyecto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
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
En el siguiente ejemplo se recuperan los metadatos de la vista INFORMATION_SCHEMA.COLUMNS
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 (bigquery-public-data
), debes añadir el ID del proyecto al conjunto de datos con el siguiente formato:
`project_id`.dataset.INFORMATION_SCHEMA.view
;
por ejemplo,
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
Las siguientes columnas se excluyen de los resultados de la consulta porque actualmente están reservadas para usarlas en el futuro:
IS_GENERATED
GENERATION_EXPRESSION
IS_STORED
IS_UPDATABLE
SELECT * EXCEPT(is_generated, generation_expression, is_stored, 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 mejorar la legibilidad, algunas columnas se han excluido 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+