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.getbigquery.tables.list
Chacun des rôles IAM prédéfinis suivants inclut les autorisations ci-dessus :
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.dataEditorroles/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 ALWAYS si la colonne est une colonne d'embedding générée automatiquement ; sinon, la valeur est NEVER. |
generation_expression |
STRING |
La valeur est l'expression de génération utilisée pour définir la colonne si celle-ci est une colonne d'embedding générée automatiquement. Sinon, la valeur est NULL. |
is_stored |
STRING |
La valeur est YES si la colonne est une colonne d'embedding générée automatiquement. Sinon, la valeur est NULL. |
async_generation_status |
STRUCT |
Contient des erreurs de blocage pour les jobs de génération d'embeddings en arrière-plan si la colonne est une colonne d'embeddings générée automatiquement. Sinon, la valeur est NULL. Pour en savoir plus sur les erreurs de blocage, consultez le champ async_generation_status.blocking_error.message.
Exemples d'erreurs de blocage :
async_generation_status est effacée.
|
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 que la colonne est une colonne de partitionnement ou non. |
clustering_ordinal_position |
INT64 |
Décalage avec un indice de 1 de la colonne dans les colonnes groupées de la table. La valeur est NULL si la table n'est pas une table groupée. |
collation_name |
STRING |
Nom de la spécification de classement si elle existe. Dans le cas contraire, cette valeur est définie sur 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.
|
data_policies.name |
STRING |
Liste des stratégies de données associées à la colonne pour contrôler l'accès et le masquage. Ce champ est disponible en (preview). |
data_governance_tags |
ARRAY<STRUCT> |
Liste des tags de gouvernance des données associés à la colonne pour contrôler l'accès et le masquage. Chaque STRUCT contient les champs STRING suivants :
STRUCT (ou RECORD), les tags de gouvernance des données associés aux champs imbriqués sont disponibles dans la vue INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
|
policy_tags |
ARRAY<STRING> |
Liste des tags avec stratégie associés à la colonne. |
is_identity |
STRING |
YES ou NO selon que la colonne est une colonne d'identité ou non.
|
identity_generation |
STRING |
ALWAYS ou BY DEFAULT, selon le mode de génération de la colonne d'identité. Si la colonne n'est pas une colonne d'identité, la valeur est NULL.
|
identity_start |
INT64 |
Première valeur générée par la colonne d'identité, ou NULL si la colonne n'est pas une colonne d'identité.
|
identity_increment |
INT64 |
Différence minimale entre les ID générés successivement pour la colonne d'identité, ou NULL si la colonne n'est pas une colonne d'identité.
|
identity_maximum |
INT64 |
Valeur maximale pouvant être générée pour la colonne d'identité, ou NULL si la colonne n'est pas une colonne d'identité.
|
identity_minimum |
INT64 |
Valeur minimale pouvant être générée pour la colonne d'identité, ou NULL si la colonne n'est pas une colonne d'identité.
|
identity_cycle |
STRING |
Si la colonne est une colonne d'identité, cette valeur est NEVER. Sinon, la valeur est NULL.
|
Pour plus de stabilité, nous vous recommandons de lister explicitement les colonnes dans vos requêtes de schéma d'informations au lieu d'utiliser un caractère générique (SELECT *). Lister explicitement les colonnes empêche les requêtes de s'interrompre si le schéma sous-jacent change.
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 de l'ensemble de données |
-
PROJECT_ID(facultatif) : ID de votre projet Cloud de Confiance . 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 du 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.
La colonne suivante est exclue des résultats de la requête :
IS_UPDATABLE
SELECT * EXCEPT(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 | 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 | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+