Vue COLUMNS
La vue INFORMATION_SCHEMA.COLUMNS
contient une ligne pour chaque colonne (champ) d'une table.
Autorisations requises
Pour interroger la vue INFORMATION_SCHEMA.COLUMNS
, vous avez besoin des autorisations IAM (Identity and Access Management) suivantes :
bigquery.tables.get
bigquery.tables.list
Chacun des rôles IAM prédéfinis suivants inclut les autorisations ci-dessus :
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
Pour plus d'informations sur les autorisations BigQuery, consultez la page Contrôle des accès avec IAM.
Schéma
Lorsque vous lancez une requête sur la vue INFORMATION_SCHEMA.COLUMNS
, les résultats de la requête contiennent une ligne pour chaque colonne (champ) d'une table.
La vue INFORMATION_SCHEMA.COLUMNS
présente le schéma suivant :
Nom de la colonne | Type de données | Valeur |
---|---|---|
TABLE_CATALOG |
STRING |
ID du projet qui contient l'ensemble de données |
TABLE_SCHEMA |
STRING |
Nom de l'ensemble de données contenant la table, également appelé datasetId |
TABLE_NAME |
STRING |
Nom de la table ou de la vue, également appelé tableId |
COLUMN_NAME |
STRING |
Nom de la colonne |
ORDINAL_POSITION |
INT64 |
Décalage avec un indice de 1 de la colonne dans la table. S'il s'agit d'une pseudo-colonne telle que _PARTITIONTIME ou _PARTITIONDATE, la valeur est NULL . |
IS_NULLABLE |
STRING |
YES ou NO selon que le mode de la colonne autorise ou non les valeurs NULL |
DATA_TYPE |
STRING |
Type de données GoogleSQL de la colonne |
IS_GENERATED |
STRING |
La valeur est toujours NEVER |
GENERATION_EXPRESSION |
STRING |
La valeur est toujours NULL |
IS_STORED |
STRING |
La valeur est toujours NULL |
IS_HIDDEN |
STRING |
YES ou NO selon que la colonne est une pseudo-colonne telle que _PARTITIONTIME ou _PARTITIONDATE |
IS_UPDATABLE |
STRING |
La valeur est toujours NULL |
IS_SYSTEM_DEFINED |
STRING |
YES ou NO selon que la colonne est une pseudo-colonne telle que _PARTITIONTIME ou _PARTITIONDATE |
IS_PARTITIONING_COLUMN |
STRING |
YES ou NO selon qu'il s'agit ou non d'une colonne de partitionnement |
CLUSTERING_ORDINAL_POSITION |
INT64 |
Décalage avec un indice de 1 de la colonne dans les colonnes de clustering de la table. La valeur est NULL si la table n'est pas une table en cluster. |
COLLATION_NAME |
STRING |
Nom de la spécification de classement si elle existe. Dans le cas contraire, NULL Si une valeur STRING ou ARRAY<STRING> est transmise, la spécification de classement est renvoyée si elle existe. Sinon, NULL est renvoyé.
|
COLUMN_DEFAULT |
STRING |
Valeur par défaut de la colonne, si elle existe ; sinon, la valeur est NULL .
|
ROUNDING_MODE |
STRING |
Mode d'arrondi utilisé pour les valeurs écrites dans le champ si son type est de type NUMERIC ou BIGNUMERIC paramétré. Sinon, la valeur est NULL .
|
Champ d'application et syntaxe
Les requêtes exécutées sur cette vue doivent inclure un ensemble de données ou un qualificatif de région. Pour les requêtes avec un qualificatif d'ensemble de données, vous devez disposer d'autorisations pour l'ensemble de données. Pour les requêtes avec un qualificatif de région, vous devez disposer des autorisations nécessaires sur le projet. Pour en savoir plus, consultez la section Syntaxe. Le tableau suivant explique la portée des régions et des ressources pour cette vue :
Nom de la vue | Champ d'application de la ressource | Champ d'application de la région |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.COLUMNS |
Niveau Projet | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.COLUMNS |
Niveau de l'ensemble de données | Emplacement d'un ensemble de données |
Facultatif : PROJECT_ID
: ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
REGION
: tout nom de région d'ensemble de données. Exemple :`region-us`
.DATASET_ID
: ID de votre ensemble de données. Pour en savoir plus, consultez la section Qualificatif d'ensemble de données.
Exemple
L'exemple suivant récupère les métadonnées de la vue INFORMATION_SCHEMA.COLUMNS
pour la table population_by_zip_2010
de l'ensemble de données census_bureau_usa
. Celui-ci fait partie du programme d'ensembles de données publics de BigQuery.
Comme la table que vous interrogez se trouve dans un autre projet (bigquery-public-data
), vous ajoutez l'ID de projet à l'ensemble de données, en respectant le format `project_id`.dataset.INFORMATION_SCHEMA.view
. Par exemple : `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
Les colonnes suivantes sont exclues des résultats de la requête, car elles sont actuellement réservées en vue d'une utilisation ultérieure :
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';
Le résultat ressemble à ce qui suit. Pour des raisons de lisibilité, certaines colonnes sont exclues des résultats.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+