Vista de TABLE_OPTIONS
La vista INFORMATION_SCHEMA.TABLE_OPTIONS
contiene una fila para cada opción, por cada tabla o vista de un conjunto de datos. Las vistas TABLES
y TABLE_OPTIONS
también contienen información de alto nivel sobre las vistas.
Para obtener información detallada, consulta la vista INFORMATION_SCHEMA.VIEWS
.
Permisos necesarios
Para consultar la vista INFORMATION_SCHEMA.TABLE_OPTIONS
, necesitas los siguientes permisos de Identity and Access Management (IAM):
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
Cada uno de los siguientes roles predefinidos de IAM incluye los permisos anteriores:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.
Esquema
Cuando consultas la vista INFORMATION_SCHEMA.TABLE_OPTIONS
, los resultados contienen una fila por cada opción, por cada tabla o vista de un conjunto de datos. Para
obtener información detallada sobre
las vistas, consulta la
vista INFORMATION_SCHEMA.VIEWS
en su lugar.
La vista INFORMATION_SCHEMA.TABLE_OPTIONS
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 |
El nombre del conjunto de datos que contiene la tabla o la vista (también denominado datasetId ) |
TABLE_NAME |
STRING |
El nombre de la tabla o la vista (también denominado tableId ) |
OPTION_NAME |
STRING |
Uno de los valores de nombre de la tabla de opciones |
OPTION_TYPE |
STRING |
Uno de los valores de tipo de datos en la tabla de opciones |
OPTION_VALUE |
STRING |
Una de las opciones de valor en la tabla de opciones |
Tabla de opciones
|
|
|
---|---|---|
|
|
Una descripción de la tabla |
|
|
Indica si la actualización automática está habilitada para una vista materializada |
|
|
La hora a la que vence esta tabla |
|
|
El nombre descriptivo de la tabla |
|
|
El nombre de la clave de Cloud KMS que se usa para encriptar la tabla |
|
|
Un array de STRUCT que representa las etiquetas de la
tabla |
|
|
El ciclo de vida predeterminado de todas las particiones de una tabla particionada, expresado en días |
|
|
Frecuencia con la que se actualiza una vista materializada |
|
|
Si las consultas sobre la tabla requieren un filtro de partición |
|
|
Etiquetas adjuntas a una tabla en una sintaxis <key, value> de espacio de nombres. Para obtener más información, consulta Etiquetas y acceso condicional. |
En el caso de las tablas externas, son posibles las siguientes opciones:
Opciones | |
---|---|
allow_jagged_rows |
Si es Se aplica a los datos CSV. |
allow_quoted_newlines |
Si es Se aplica a los datos CSV. |
bigtable_options |
Solo es necesaria cuando se crea una tabla externa de Bigtable. Especifica el esquema de la tabla externa de Bigtable en formato JSON. Para obtener una lista de las opciones de definición de tablas de Bigtable, consulta |
column_name_character_map |
Define los permisos de los caracteres de nombre de columna admitidos y el comportamiento de manejo de caracteres no compatibles. Entre los valores admitidos, se incluyen los siguientes:
Se aplica a los datos CSV y Parquet. |
compression |
El tipo de compresión de la fuente de datos. Entre los valores admitidos, se incluyen los siguientes: Se aplica a los datos CSV y JSON. |
decimal_target_types |
Determina cómo convertir un tipo Ejemplo: |
description |
Una descripción de esta tabla. |
enable_list_inference |
Si es Se aplica a los datos de Parquet. |
enable_logical_types |
Si es Se aplica a los datos de Avro. |
encoding |
La codificación de caracteres de los datos. Los valores admitidos son los siguientes: Se aplica a los datos CSV. |
enum_as_string |
Si es Se aplica a los datos de Parquet. |
expiration_timestamp |
La hora a la que vence esta tabla. Si no se especifica, la tabla no expira. Ejemplo: |
field_delimiter |
El separador de campos de un archivo CSV (opcional). Se aplica a los datos CSV. |
format |
El formato de los datos externos.
Los valores admitidos para
Los valores admitidos para
El valor |
hive_partition_uri_prefix |
Prefijo común para todos los URI de origen antes de que comience la codificación de la clave de partición. Se aplica solo a las tablas externas particionadas de subárbol. Se aplica a los datos de Avro, CSV, JSON, Parquet y ORC. Ejemplo: |
file_set_spec_type |
Especifica cómo interpretar los URI de origen para trabajos de carga y tablas externas. Entre los valores admitidos, se incluyen los siguientes:
Por ejemplo, si tienes un URI de origen de |
ignore_unknown_values |
Si es Se aplica a los datos CSV y JSON. |
json_extension |
Para los datos JSON, indica un formato de intercambio JSON en particular. Si no se especifica, BigQuery lee los datos como registros JSON genéricos. Entre los valores admitidos, se incluyen los siguientes: |
max_bad_records |
La cantidad máxima de registros erróneos que se deben ignorar cuando se leen los datos. Se aplica a los datos CSV, JSON y de Hojas de cálculo de Google. |
max_staleness |
Aplicable a las tablas de BigLake y las tablas de objetos. Especifica si las operaciones en la tabla usan los metadatos almacenados en caché y qué tan recientes deben ser los metadatos almacenados en caché para que la operación los use. Para inhabilitar el almacenamiento en caché de metadatos, especifica 0. Esta es la opción predeterminada. Para habilitar el almacenamiento en caché de metadatos, especifica un valor de intervalo literal entre 30 minutos y 7 días. Por ejemplo, especifica |
null_marker |
La string que representa los valores Se aplica a los datos CSV. |
object_metadata |
Solo se requiere cuando se crea una tabla de objetos. Configura el valor de esta opción como |
preserve_ascii_control_characters |
Si es Se aplica a los datos CSV. |
projection_fields |
Una lista de propiedades de entidad para cargar. Se aplica a los datos de Datastore. |
quote |
La string que se usa para entrecomillar secciones de datos en un archivo de CSV. Si tus datos contienen caracteres de salto de línea entrecomillados, también establece la propiedad Se aplica a los datos CSV. |
reference_file_schema_uri |
El archivo de referencia proporcionado por el usuario con el esquema de tabla. Se aplica a los datos de Parquet/ORC/AVRO. Ejemplo: |
require_hive_partition_filter |
Si es Se aplica a los datos de Avro, CSV, JSON, Parquet y ORC. |
sheet_range |
Rango de Hojas de cálculo de Google desde el que se realiza la búsqueda. Se aplica a los datos de Hojas de cálculo de Google. Ejemplo: |
skip_leading_rows |
La cantidad de filas en la parte superior de un archivo que se deben omitir cuando se leen los datos. Se aplica a los datos CSV y de Hojas de cálculo de Google. |
uris |
En el caso de las tablas externas, incluidas las de objetos, que no son tablas de Bigtable, haz lo siguiente:
Un array de URI completamente calificados para las ubicaciones de datos externas.
Cada URI puede contener un carácter comodín de asterisco ( En los siguientes ejemplos, se muestran valores
En el caso de las tablas de Bigtable:
El URI que identifica la tabla de Bigtable que se usará como fuente de datos. Solo puedes especificar un URI de Bigtable. Ejemplo: Si deseas obtener más información sobre cómo crear un URI de Bigtable, consulta Recupera el URI de Bigtable. |
Permiso y sintaxis
Las consultas realizadas a esta vista deben incluir un conjunto de datos o un calificador de región. Para consultas con un calificador de conjunto de datos, debes tener permisos para el conjunto de datos. Para consultas con un calificador de región, debes tener permisos para el proyecto. Para obtener más información, consulta Sintaxis. En la siguiente tabla, se explican los permisos de la región y los recursos para esta vista:
Nombre de la vista | Permiso del recurso | Permiso de la región |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_OPTIONS |
Nivel de proyecto | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS |
Nivel de conjunto de datos | Ubicación del conjunto de datos |
- Opcional:
PROJECT_ID
: el ID del proyecto de Google Cloud. 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 del conjunto de datos. Para obtener más
información, consulta Calificador de conjunto de datos.
Ejemplo
Ejemplo 1:
En el ejemplo siguiente, se recuperan las horas de vencimiento de la tabla predeterminada para todas las tablas de mydataset
en tu proyecto predeterminado (myproject
) mediante una consulta a la vista INFORMATION_SCHEMA.TABLE_OPTIONS
.
Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en este formato: `project_id`.dataset.INFORMATION_SCHEMA.view
(por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
).
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'expiration_timestamp';
El resultado es similar al siguiente:
+----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | 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" | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
Ejemplo 2:
En el ejemplo siguiente, se recuperan los metadatos sobre todas las tablas en mydataset
que contienen datos de prueba. La consulta usa los valores de la opción description
para encontrar tablas que contengan “test” en algún lugar de la descripción. mydataset
está en tu proyecto predeterminado: myproject
.
Para ejecutar la consulta en un proyecto que no sea el predeterminado, agrega el ID del proyecto al conjunto de datos en el formato siguiente: `project_id`.dataset.INFORMATION_SCHEMA.view
; por ejemplo, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'description' AND option_value LIKE '%test%';
El resultado es similar al siguiente:
+----------------+---------------+------------+-------------+-------------+--------------+ | 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" | +----------------+---------------+------------+-------------+-------------+--------------+