Vue TABLE_OPTIONS
La vue INFORMATION_SCHEMA.TABLE_OPTIONS
contient une ligne pour chaque option, chaque table ou vue d'un ensemble de données. Les vues TABLES
et TABLE_OPTIONS
contiennent également des informations générales sur les vues.
Pour obtenir des informations détaillées, interrogez la vue INFORMATION_SCHEMA.VIEWS
.
Autorisations requises
Pour interroger la vue INFORMATION_SCHEMA.TABLE_OPTIONS
, vous avez besoin des autorisations IAM (Identity and Access Management) suivantes :
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Chacun des rôles IAM prédéfinis suivants inclut les autorisations ci-dessus :
roles/bigquery.admin
roles/bigquery.dataViewer
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 interrogez la vue INFORMATION_SCHEMA.TABLE_OPTIONS
, les résultats de la requête contiennent une ligne pour chaque option, pour chaque table ou vue d'un ensemble de données. Pour obtenir des informations détaillées sur les vues, interrogez plutôt la vue INFORMATION_SCHEMA.VIEWS
.
La vue INFORMATION_SCHEMA.TABLE_OPTIONS
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 ou la vue, également appelé datasetId |
TABLE_NAME |
STRING |
Nom de la table ou de la vue, également appelé tableId |
OPTION_NAME |
STRING |
Une des valeurs de nom figurant dans la table d'options |
OPTION_TYPE |
STRING |
Une des valeurs de type de données figurant dans la table d'options |
OPTION_VALUE |
STRING |
Une des options de valeur figurant dans la table d'options |
Table d'options
|
|
|
---|---|---|
|
|
Description de la table |
|
|
Indique si l'actualisation automatique est activée pour une vue matérialisée. |
|
|
Heure d'expiration de cette table |
|
|
Nom descriptif de la table |
|
|
Nom de la clé Cloud KMS employée pour chiffrer la table |
|
|
Tableau de valeurs STRUCT représentant les étiquettes de la table |
|
|
Durée de vie par défaut, en jours, de toutes les partitions d'une table partitionnée |
|
|
Fréquence d'actualisation d'une vue matérialisée |
|
|
Filtre de partition nécessaire ou non pour les requêtes sur la table |
|
|
Tags associés à une table dans une syntaxe d'espace de noms <clé, valeur> (pour en savoir plus, consultez Tags et accès conditionnel) |
Pour les tables externes, les options suivantes sont également possibles :
Options | |
---|---|
allow_jagged_rows |
Si la valeur est S'applique aux données CSV. |
allow_quoted_newlines |
Si la valeur est S'applique aux données CSV. |
bigtable_options |
Obligatoire uniquement lors de la création d'une table externe Bigtable. Spécifie le schéma de la table externe Bigtable au format JSON. Pour obtenir la liste des options de définition de table Bigtable, reportez-vous à la section |
column_name_character_map |
Définit l'étendue des caractères de nom de colonne acceptés et le comportement de traitement des caractères non acceptés. Le paramètre par défaut est Les valeurs autorisées incluent les suivantes :
S'applique aux données CSV et Parquet. |
compression |
Type de compression de la source de données. Valeur autorisée : S'applique aux données CSV et JSON. |
decimal_target_types |
Détermine comment convertir un type Exemple : |
description |
Description de cette table. |
enable_list_inference |
Si la valeur est définie sur S'applique aux données Parquet. |
enable_logical_types |
Si la valeur est S'applique aux données Avro. |
encoding |
Encodage des caractères des données. Valeurs autorisées : S'applique aux données CSV. |
enum_as_string |
Si la valeur est définie sur S'applique aux données Parquet. |
expiration_timestamp |
Date et heure d'expiration de cette table. Si cette option n'est pas spécifiée, la table n'expire pas. Exemple : |
field_delimiter |
Séparateur des champs dans un fichier CSV. S'applique aux données CSV. |
format |
Format des données externes.
Les valeurs acceptées pour
Les valeurs acceptées pour La valeur |
hive_partition_uri_prefix |
Préfixe commun à tous les URI sources avant le début de l'encodage de la clé de partition. Ne s'applique qu'aux tables externes partitionnées avec Hive. S'applique aux données Avro, CSV, JSON, Parquet et ORC. Exemple : |
file_set_spec_type |
Spécifie comment interpréter les URI sources des tâches de chargement et des tables externes. Les valeurs autorisées incluent les suivantes :
Par exemple, si vous disposez de l'URI source |
ignore_unknown_values |
Si la valeur est S'applique aux données CSV et JSON. |
json_extension |
Pour les données JSON, indique un format d'échange JSON particulier. Si ce n'est pas le cas, BigQuery lit les données sous forme d'enregistrements JSON génériques. Les valeurs acceptées sont les suivantes : |
max_bad_records |
Nombre maximal d'enregistrements incorrects à ignorer lors de la lecture des données. S'applique aux données CSV, JSON et Sheets. |
max_staleness |
Applicable aux tables BigLake et aux tables d'objets. Indique si les métadonnées mises en cache sont utilisées par les opérations sur la table et indique le niveau nécessaire de fraîcheur des métadonnées mises en cache pour que l'opération puisse les utiliser. Pour désactiver la mise en cache des métadonnées, spécifiez 0. Il s'agit de la valeur par défaut. Pour activer la mise en cache des métadonnées, spécifiez une valeur de littéral d'intervalle comprise entre 30 minutes et 7 jours. Par exemple, spécifiez |
null_marker |
Chaîne représentant les valeurs S'applique aux données CSV. |
object_metadata |
Obligatoire seulement lors de la création d'une table d'objets. Définissez la valeur de cette option sur |
preserve_ascii_control_characters |
Si la valeur est S'applique aux données CSV. |
projection_fields |
Liste des propriétés d'entité à charger. S'applique aux données Datastore. |
quote |
Chaîne utilisée pour citer des sections de données dans un fichier CSV. Si vos données contiennent des caractères de retour à la ligne entre guillemets, définissez également la propriété S'applique aux données CSV. |
reference_file_schema_uri |
Fichier de référence fourni par l'utilisateur avec le schéma de la table. S'applique aux données Parquet/ORC/AVRO. Exemple : |
require_hive_partition_filter |
Si la valeur est S'applique aux données Avro, CSV, JSON, Parquet et ORC. |
sheet_range |
Plage d'une feuille de calcul Sheets à interroger. S'applique aux données Google Sheets. Exemple : |
skip_leading_rows |
Nombre de lignes en haut d'un fichier à ignorer lors de la lecture des données. S'applique aux données CSV et Sheets. |
uris |
Pour les tables externes, y compris les tables d'objets, qui ne sont pas des tables Bigtable :
Tableau d'URI complets pour les emplacements de données externes.
Chaque URI peut contenir un caractère générique de type astérisque ( Les exemples suivants montrent des valeurs
Pour les tables Bigtable :
URI identifiant la table Bigtable à utiliser comme source de données. Vous ne pouvez spécifier qu'un seul URI Bigtable. Exemple : Pour en savoir plus sur la construction d'un URI Bigtable, consultez la section Récupérer l'URI Bigtable. |
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.TABLE_OPTIONS |
Niveau Projet | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS |
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
Exemple 1 :
L'exemple suivant récupère les délais d'expiration par défaut de toutes les tables de l'ensemble de données mydataset
de votre projet par défaut (myproject
) en interrogeant la vue INFORMATION_SCHEMA.TABLE_OPTIONS
.
Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet à l'ensemble de données, en respectant le format suivant : `project_id`.dataset.INFORMATION_SCHEMA.view
. Par exemple : `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'expiration_timestamp';
Le résultat ressemble à ce qui suit :
+----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | myproject | mydataset | mytable1 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2020-01-16T21:12:28.000Z" | | myproject | mydataset | mytable2 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2021-01-01T21:12:28.000Z" | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
Exemple 2 :
L'exemple suivant récupère les métadonnées de toutes les tables de mydataset
contenant des données de test. La requête utilise les valeurs de l'option description
pour rechercher les tables dont la description contient "test". mydataset
se trouve dans votre projet par défaut : myproject
.
Pour exécuter la requête sur un projet autre que votre projet par défaut, ajoutez l'ID du projet à l'ensemble de données au format suivant : `project_id`.dataset.INFORMATION_SCHEMA.view
. Par exemple, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'description' AND option_value LIKE '%test%';
Le résultat ressemble à ce qui suit :
+----------------+---------------+------------+-------------+-------------+--------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+-------------+-------------+--------------+ | myproject | mydataset | mytable1 | description | STRING | "test data" | | myproject | mydataset | mytable2 | description | STRING | "test data" | +----------------+---------------+------------+-------------+-------------+--------------+