Vista COLUMN_FIELD_PATHS

La vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS contiene una fila por cada columna anidada en una columna RECORD (o STRUCT).

Permisos obligatorios

Para consultar la vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, 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

Los resultados de la consulta contienen una fila por cada columna anidada en una columna RECORD (o STRUCT).

Cuando consultas la vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, los resultados de la consulta contienen una fila por cada columna anidada en una columna RECORD (o STRUCT).

La vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 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
FIELD_PATH STRING La ruta a una columna anidada en una columna `RECORD` o `STRUCT`
DATA_TYPE STRING El tipo de datos de GoogleSQL de la columna
DESCRIPTION STRING Descripción de la columna
COLLATION_NAME STRING Nombre de la especificación de ordenación si existe. De lo contrario, NULL

. Si se incluye un campo STRING, ARRAY<STRING> o STRING en un STRUCT, se devuelve la especificación de ordenación si existe. De lo contrario, se devuelve NULL.
ROUNDING_MODE STRING El modo de redondeo que se usa al aplicar precisión y escala a los valores de los parámetros NUMERIC o BIGNUMERIC. 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.COLUMN_FIELD_PATHS Nivel de proyecto REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS 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

En el siguiente ejemplo se recuperan los metadatos de la vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS de la tabla commits del conjunto de datos github_repos. 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`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.

La tabla commits contiene las siguientes columnas anidadas y repetidas:

  • author: columna RECORD anidada
  • committer: columna RECORD anidada
  • trailer: columna RECORD anidada y repetida
  • difference: columna RECORD anidada y repetida

Para ver los metadatos de las columnas author y difference, ejecuta la siguiente consulta.

SELECT
  *
FROM
  `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
WHERE
  table_name = 'commits'
  AND (column_name = 'author' OR column_name = 'difference');

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

  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+
  | table_name | column_name |     field_path      |                                                                      data_type                                                                      | description | policy_tags |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+
  | commits    | author      | author              | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP>                                                                  | NULL        | 0 rows      |
  | commits    | author      | author.name         | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | author      | author.email        | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | author      | author.time_sec     | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | author      | author.tz_offset    | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | author      | author.date         | TIMESTAMP                                                                                                                                           | NULL        | 0 rows      |
  | commits    | difference  | difference          | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL        | 0 rows      |
  | commits    | difference  | difference.old_mode | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | difference  | difference.new_mode | INT64                                                                                                                                               | NULL        | 0 rows      |
  | commits    | difference  | difference.old_path | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.new_path | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.old_sha1 | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.new_sha1 | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.old_repo | STRING                                                                                                                                              | NULL        | 0 rows      |
  | commits    | difference  | difference.new_repo | STRING                                                                                                                                              | NULL        | 0 rows      |
  +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+