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.

Schema

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
OPTION_NAME OPTION_TYPE OPTION_VALUE
partition_expiration_days FLOAT64 El ciclo de vida predeterminado de todas las particiones de una tabla particionada, expresado en días
expiration_timestamp TIMESTAMP La hora a la que vence esta tabla
kms_key_name STRING El nombre de la clave de Cloud KMS que se usa para encriptar la tabla
friendly_name STRING El nombre descriptivo de la tabla
description STRING Una descripción de la tabla
labels ARRAY<STRUCT<STRING, STRING>> Un arreglo de STRUCT que representa las etiquetas de la tabla
require_partition_filter BOOL Si las consultas sobre la tabla requieren un filtro de partición
enable_refresh BOOL Indica si la actualización automática está habilitada para una vista materializada
refresh_interval_minutes FLOAT64 Frecuencia con la que se actualiza una vista materializada

En el caso de las tablas externas, son posibles las siguientes opciones:

Opciones
allow_jagged_rows

BOOL

Si es true, habilita las filas a las que les faltan columnas opcionales finales.

Se aplica a los datos CSV.

allow_quoted_newlines

BOOL

Si es true, habilita las secciones de datos entrecomillados que contienen caracteres de salto de línea en el archivo.

Se aplica a los datos CSV.

bigtable_options

STRING

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 BigtableOptions en la referencia de la API de REST.

compression

STRING

El tipo de compresión de la fuente de datos. Entre los valores admitidos, se incluyen los siguientes: GZIP. Si no se especifica, la fuente de datos no está comprimida.

Se aplica a los datos CSV y JSON.

decimal_target_types

ARRAY<STRING>

Determina cómo convertir un tipo Decimal. Equivale a ExternalDataConfiguration.decimal_target_types

Ejemplo: ["NUMERIC", "BIGNUMERIC"].

description

STRING

Una descripción de esta tabla.

enable_list_inference

BOOL

Si es true, usa la inferencia de esquema específicamente para el tipo lógico de Parquet LIST.

Se aplica a los datos de Parquet.

enable_logical_types

BOOL

Si es true, convierte los tipos lógicos de Avro en sus tipos de SQL correspondientes. Para obtener más información, consulta Tipos lógicos.

Se aplica a los datos de Avro.

encoding

STRING

La codificación de caracteres de los datos. Los valores admitidos son los siguientes: UTF8 (o UTF-8), ISO_8859_1 (o ISO-8859-1).

Se aplica a los datos CSV.

enum_as_string

BOOL

Si es true, infiere el tipo lógico de Parquet ENUM como STRING en lugar de BYTES de forma predeterminada.

Se aplica a los datos de Parquet.

expiration_timestamp

TIMESTAMP

La hora a la que vence esta tabla. Si no se especifica, la tabla no expira.

Ejemplo: "2025-01-01 00:00:00 UTC".

field_delimiter

STRING

El separador de campos de un archivo CSV (opcional).

Se aplica a los datos CSV.

format

STRING

El formato de los datos externos. Los valores admitidos para CREATE EXTERNAL TABLE incluyen los siguientes: AVRO, CLOUD_BIGTABLE, CSV, DATASTORE_BACKUP, DELTA_LAKE (vista previa), GOOGLE_SHEETS, NEWLINE_DELIMITED_JSON (o JSON), ORC, PARQUET.

Los valores admitidos para LOAD DATA incluyen los siguientes: AVRO, CSV, DELTA_LAKE (vista previa) NEWLINE_DELIMITED_JSON (o JSON), ORC, PARQUET.

El valor JSON es equivalente a NEWLINE_DELIMITED_JSON.

hive_partition_uri_prefix

STRING

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: "gs://bucket/path".

file_set_spec_type

STRING

Especifica cómo interpretar los URI de origen para trabajos de carga y tablas externas. En vista previa.

Entre los valores admitidos, se incluyen los siguientes:

  • FILE_SYSTEM_MATCH Expande los URI de origen enumerando los archivos del almacén de objetos. Este es el comportamiento predeterminado si FileSetSpecType no está configurado.
  • NEW_LINE_DELIMITED_MANIFEST Indica que los URI proporcionados son archivos de manifiesto delimitados por líneas nuevas, con un URI por línea. Los URI comodín no son compatibles con los archivos de manifiesto.

Por ejemplo, si tienes un URI de origen de "gs://bucket/path/file" y file_set_spec_type es FILE_SYSTEM_MATCH, el archivo se usa directamente como archivo de datos. Si file_set_spec_type es NEW_LINE_DELIMITED_MANIFEST, cada línea del archivo se interpreta como un URI que apunta a un archivo de datos.

ignore_unknown_values

BOOL

Si es true, ignora los valores adicionales que no están representados en el esquema de la tabla, sin mostrar un error.

Se aplica a los datos CSV y JSON.

json_extension

STRING

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:
GEOJSON Datos GeoJSON delimitados por saltos de línea. Para obtener más información, consulta Crea una tabla externa a partir de un archivo GeoJSON delimitado por saltos de línea.

max_bad_records

INT64

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

INTERVAL

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 INTERVAL 4 HOUR para un intervalo de inactividad de 4 horas. Con este valor, las operaciones en la tabla usan metadatos almacenados en caché si se actualizaron en las últimas 4 horas. Si los metadatos almacenados en caché son más antiguos que eso, la operación recurre a la recuperación de metadatos desde Cloud Storage.

metadata_cache_mode

STRING

Aplicable a las tablas de BigLake y las tablas de objetos.

Especifica si la caché de metadatos de la tabla se actualiza de forma automática o manual.

Configúralo como AUTOMATIC para que la caché de metadatos se actualice a un intervalo definido por el sistema, por lo general, entre 30 y 60 minutos.

Configúralo como MANUAL si deseas actualizar la caché de metadatos en un programa que determines. En este caso, puedes llamar al procedimiento del sistema BQ.REFRESH_EXTERNAL_METADATA_CACHE para actualizar la caché.

Debes configurar metadata_cache_mode si max_staleness está configurado en un valor mayor que 0.

null_marker

STRING

La string que representa los valores NULL en un archivo CSV.

Se aplica a los datos CSV.

object_metadata

STRING

Solo se requiere cuando se crea una tabla de objetos.

Configura el valor de esta opción como SIMPLE cuando crees una tabla de objetos.

preserve_ascii_control_characters

BOOL

Si es true, se conservan los caracteres de control ASCII incorporados que son los primeros 32 caracteres en la tabla ASCII, desde "\x00" hasta "\x1F".

Se aplica a los datos CSV.

projection_fields

STRING

Una lista de propiedades de entidad para cargar.

Se aplica a los datos de Datastore.

quote

STRING

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 allow_quoted_newlines en true.

Se aplica a los datos CSV.

reference_file_schema_uri

STRING

El archivo de referencia proporcionado por el usuario con el esquema de tabla.

Se aplica a los datos de Parquet/ORC/AVRO.

Ejemplo: "gs://bucket/path/reference_schema_file.parquet".

require_hive_partition_filter

BOOL

Si es true, todas las búsquedas en esta tabla requieren un filtro de partición que se pueda usar para eliminar particiones cuando se leen datos. Se aplica solo a las tablas externas particionadas de subárbol.

Se aplica a los datos de Avro, CSV, JSON, Parquet y ORC.

sheet_range

STRING

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: “sheet1!A1:B20”.

skip_leading_rows

INT64

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:

ARRAY<STRING>

Un array de URI completamente calificados para las ubicaciones de datos externas. Cada URI puede contener un carácter comodín de asterisco (*), que debe aparecer después del nombre del bucket. Cuando especificas valores uris que se orientan a varios archivos, todos esos archivos deben compartir un esquema compatible.

En los siguientes ejemplos, se muestran valores uris válidos:

  • ['gs://bucket/path1/myfile.csv']
  • ['gs://bucket/path1/*.csv']
  • ['gs://bucket/path1/*', 'gs://bucket/path2/file00*']

En el caso de las tablas de Bigtable:

STRING

El URI que identifica la tabla de Bigtable que se usará como fuente de datos. Solo puedes especificar un URI de Bigtable.

Ejemplo: https://googleapis.com/bigtable/projects/project_id/instances/instance_id[/appProfiles/app_profile]/tables/table_name

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
Reemplaza lo siguiente:

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"  |
  +----------------+---------------+------------+-------------+-------------+--------------+