Saltar al contenido

Consulta de Bigquery para encontrar los nombres de las columnas de una tabla

Puede que se de el caso de que encuentres alguna incompatibilidad en tu código o trabajo, recuerda probar siempre en un entorno de testing antes añadir el código al proyecto final.

Solución:

BigQuery ahora es compatible con el esquema de información.

Suponga que tiene un conjunto de datos llamado MI_PROYECTO.MI_CONJUNTO DE DATOS y una tabla llamada MI_TABLA, luego puede ejecutar la siguiente consulta:

SELECT column_name
FROM MY_PROJECT.MY_DATASET.INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'MY_TABLE'

Sí, puede obtener los metadatos de la tabla utilizando INFORMATION_SCHEMA.

Uno de los ejemplos mencionados en el enlace anterior recupera metadatos de la vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS para la tabla de confirmaciones en el conjunto de datos github_repos, solo tiene que

  1. Abre la IU web de BigQuery en GCP Console.

  2. Introduzca la siguiente consulta SQL estándar en el cuadro del editor de consultas. INFORMACIÓN_ESQUEMA requiere sintaxis SQL estándar. SQL estándar es la sintaxis predeterminada en GCP Console.

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

Nota: los nombres de vista de INFORMATION_SCHEMA distinguen entre mayúsculas y minúsculas.

  1. Haga clic en Ejecutar.

Los resultados deben ser similares a los siguientes

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

Actualizar: ¡Esto ahora es posible! Ver el INFORMATION SCHEMA docs y las respuestas a continuación.

Respuesta, alrededor de 2012:

Actualmente no es posible recuperar metadatos de tablas (es decir, nombres y tipos de columnas) a través de una consulta, aunque esta no es la primera vez que se solicita.

¿Hay alguna razón por la que necesite hacer esto como una consulta? Los metadatos de la tabla están disponibles a través de la API de tablas.

Agradecemos que quieras añadir valor a nuestra información tributando tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *