Vista TABLE_OPTIONS

La vista INFORMATION_SCHEMA.TABLE_OPTIONS contiene una fila por cada opción, tabla o vista de un conjunto de datos. Las vistas TABLES y TABLE_OPTIONS también contienen información general sobre las vistas. Para obtener información detallada, consulta la vista INFORMATION_SCHEMA.VIEWS.

Permisos obligatorios

Para consultar la vista INFORMATION_SCHEMA.TABLE_OPTIONS, necesitas los siguientes permisos de gestión de identidades y accesos (IAM):

  • bigquery.tables.get
  • bigquery.tables.list
  • bigquery.routines.get
  • bigquery.routines.list

Cada uno de los siguientes roles de gestión de identidades y accesos predefinidos incluye los permisos anteriores:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer

Para obtener más información sobre los permisos de BigQuery, consulta Control de acceso con gestión de identidades y accesos.

Esquema

Cuando consultas la vista INFORMATION_SCHEMA.TABLE_OPTIONS, los resultados de la consulta 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.

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 Nombre del conjunto de datos que contiene la tabla o la vista, también denominado datasetId
TABLE_NAME STRING Nombre de la tabla o de la vista, también conocido como 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 de la tabla de opciones
OPTION_VALUE STRING Una de las opciones de valor de la tabla de opciones
Tabla de opciones

OPTION_NAME

OPTION_TYPE

OPTION_VALUE

description

STRING

Una descripción de la tabla

enable_refresh

BOOL

Si la actualización automática está habilitada en una vista materializada

expiration_timestamp

TIMESTAMP

La hora en la que caduca esta tabla

friendly_name

STRING

Nombre descriptivo de la tabla

kms_key_name

STRING

Nombre de la clave de Cloud KMS que se usa para cifrar la tabla.

labels

ARRAY<STRUCT<STRING, STRING>>

Es un array de STRUCT que representa las etiquetas de la tabla.

max_staleness

INTERVAL

La antigüedad máxima de la tabla configurada para las inserciones y actualizaciones de captura de datos de cambios (CDC) de BigQuery

partition_expiration_days

FLOAT64

Tiempo de vida predeterminado, en días, de todas las particiones de una tabla con particiones.

refresh_interval_minutes

FLOAT64

Con qué frecuencia se actualiza una vista materializada

require_partition_filter

BOOL

Indica si las consultas en la tabla requieren un filtro de partición.

tags

ARRAY<STRUCT<STRING, STRING>>

Etiquetas asociadas a una tabla con la sintaxis <clave, valor> de espacio de nombres. Para obtener más información, consulta el artículo sobre etiquetas y acceso condicional.

En el caso de las tablas externas, se pueden usar las siguientes opciones:

Opciones
allow_jagged_rows

BOOL

Si es true, permite las filas que no tengan columnas opcionales finales.

Se aplica a los datos CSV.

allow_quoted_newlines

BOOL

Si true, permite secciones de datos entre comillas que contengan caracteres de salto de línea en el archivo.

Se aplica a los datos CSV.

bigtable_options

STRING

Solo es obligatorio cuando se crea una tabla externa de Bigtable.

Especifica el esquema de la tabla externa de Bigtable en formato JSON.

Para ver una lista de las opciones de definición de tablas de Bigtable, consulta BigtableOptions en la referencia de la API REST.

column_name_character_map

STRING

Define el ámbito de los caracteres admitidos en los nombres de columna y el comportamiento de los caracteres no admitidos. El ajuste predeterminado es STRICT, lo que significa que los caracteres no admitidos provocan que BigQuery genere errores. V1 y V2 sustituyen los caracteres no admitidos por guiones bajos.

Entre los valores admitidos se incluyen los siguientes:

compression

STRING

El tipo de compresión de la fuente de datos. Los valores admitidos son: GZIP. Si no se especifica, la fuente de datos no se comprime.

Se aplica a los datos CSV y JSON.

decimal_target_types

ARRAY<STRING>

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

Ejemplo: ["NUMERIC", "BIGNUMERIC"]

description

STRING

Descripción de esta tabla.

enable_list_inference

BOOL

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

Se aplica a los datos de Parquet.

enable_logical_types

BOOL

Si 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. Entre los valores admitidos se incluyen los siguientes: UTF8 (o UTF-8), ISO_8859_1 (o ISO-8859-1), UTF-16BE, UTF-16LE, UTF-32BE o UTF-32LE. El valor predeterminado es UTF-8.

Se aplica a los datos CSV.

enum_as_string

BOOL

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

Se aplica a los datos de Parquet.

expiration_timestamp

TIMESTAMP

La hora en la que caduca esta tabla. Si no se especifica, la tabla no caduca.

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

field_delimiter

STRING

El separador de los campos de un archivo CSV.

Se aplica a los datos CSV.

format

STRING

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

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

El valor JSON equivale a NEWLINE_DELIMITED_JSON.

hive_partition_uri_prefix

STRING

Prefijo común de todos los URIs de origen antes de que empiece la codificación de la clave de partición. Solo se aplica a las tablas externas con particiones de Hive.

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 URIs de origen de las tareas de carga y las tablas externas.

Entre los valores admitidos se incluyen los siguientes:

  • FILE_SYSTEM_MATCH. Amplía los URIs de origen mostrando los archivos del almacén de objetos. Este es el comportamiento predeterminado si no se define FileSetSpecType.
  • NEW_LINE_DELIMITED_MANIFEST. Indica que los URIs proporcionados son archivos de manifiesto delimitados por saltos de línea, con un URI por línea. Las URIs comodín no se admiten en los archivos de manifiesto y todos los archivos de datos a los que se haga referencia deben estar en el mismo segmento que el archivo de manifiesto.

Por ejemplo, si tiene un URI de origen "gs://bucket/path/file" y el file_set_spec_type es FILE_SYSTEM_MATCH, el archivo se usa directamente como archivo de datos. Si el 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 devolver un error.

Se aplica a los datos CSV y JSON.

json_extension

STRING

En el caso de los datos JSON, indica un formato de intercambio JSON concreto. Si no se especifica, BigQuery lee los datos como registros JSON genéricos.

Los valores admitidos son los siguientes:
GEOJSON. Datos de GeoJSON delimitados por líneas nuevas. Para obtener más información, consulta el artículo Crear una tabla externa a partir de un archivo GeoJSON delimitado por líneas nuevas.

max_bad_records

INT64

Número máximo de registros incorrectos que se deben ignorar al leer los datos.

Se aplica a los datos CSV, JSON y de Hojas de cálculo de Google.

max_staleness

INTERVAL

Se aplica a las tablas de BigLake y a las tablas de objetos.

Especifica si las operaciones de la tabla usan metadatos almacenados en caché y cuánto tiempo deben haber pasado desde la última actualización de los metadatos almacenados en caché para que la operación los pueda usar.

Para inhabilitar el almacenamiento en caché de metadatos, especifica 0. Este es el valor predeterminado.

Para habilitar el almacenamiento en caché de metadatos, especifica un valor de literal de intervalo entre 30 minutos y 7 días. Por ejemplo, especifica INTERVAL 4 HOUR para un intervalo de obsolescencia de 4 horas. Con este valor, las operaciones en la tabla usan metadatos almacenados en caché si se han actualizado en las últimas 4 horas. Si los metadatos almacenados en caché son anteriores a esa fecha, la operación recurre a la recuperación de metadatos de Cloud Storage.

null_marker

STRING

Cadena que representa los valores de NULL en un archivo CSV.

Se aplica a los datos CSV.

null_markers

ARRAY<STRING>

Vista previa

Lista de cadenas que representan valores NULL en un archivo CSV.

Esta opción no se puede usar con la opción null_marker.

Se aplica a los datos CSV.

object_metadata

STRING

Solo es obligatorio cuando se crea una tabla de objetos.

Asigna el valor SIMPLE a esta opción cuando crees una tabla de objetos.

preserve_ascii_control_characters

BOOL

Si true, se conservan los caracteres de control ASCII insertados, que son los 32 primeros caracteres de la tabla ASCII, que van de "\x00" a "\x1F".

Se aplica a los datos CSV.

projection_fields

STRING

Lista de propiedades de la entidad que se van a cargar.

Se aplica a los datos de Datastore.

quote

STRING

Cadena que se usa para poner entre comillas las secciones de datos de un archivo CSV. Si sus datos contienen caracteres de salto de línea entre comillas, también debe asignar el valor true a la propiedad allow_quoted_newlines.

Se aplica a los datos CSV.

reference_file_schema_uri

STRING

Archivo de referencia proporcionado por el usuario con el esquema de la tabla.

Se aplica a los datos de Parquet, ORC y AVRO.

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

require_hive_partition_filter

BOOL

Si true, todas las consultas de esta tabla requieren un filtro de partición que se pueda usar para descartar particiones al leer datos. Solo se aplica a las tablas externas con particiones de Hive.

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

sheet_range

STRING

Intervalo de una hoja de cálculo de Google del que se va a obtener información.

Se aplica a los datos de Hojas de cálculo de Google.

Ejemplo: "sheet1!A1:B20",

skip_leading_rows

INT64

Número de filas de la parte superior de un archivo que se deben omitir al leer los datos.

Se aplica a los datos de archivos CSV y de Hojas de cálculo de Google.

source_column_match

STRING

Vista previa

Controla la estrategia utilizada para asociar las columnas cargadas al esquema.

Si no se especifica ningún valor, el valor predeterminado se basa en cómo se proporciona el esquema. Si la detección automática está habilitada, el comportamiento predeterminado es hacer coincidir las columnas por nombre. De lo contrario, las columnas se emparejan por posición de forma predeterminada. Esto se hace para mantener la retrocompatibilidad.

Entre los valores admitidos se incluyen los siguientes:

  • POSITION: coincidencias por posición. Esta opción da por supuesto que las columnas están ordenadas de la misma forma que el esquema.
  • NAME: coincide por nombre. Esta opción lee la fila de encabezado como nombres de columna y reordena las columnas para que coincidan con los nombres de los campos del esquema. Los nombres de las columnas se leen de la última fila omitida en función de la propiedad skip_leading_rows.
tags <ARRAY<STRUCT<STRING, STRING>>>

Es un array de etiquetas de gestión de identidades y accesos de la tabla, expresado como pares clave-valor. La clave debe ser el nombre de la clave con espacio de nombres y el valor debe ser el nombre abreviado.

time_zone

STRING

Vista previa

Zona horaria predeterminada que se aplicará al analizar valores de marca de tiempo que no tengan una zona horaria específica.

Consulta los nombres de zonas horarias válidos.

Si no se incluye este valor, las marcas de tiempo sin una zona horaria específica se analizan con la zona horaria predeterminada UTC.

Se aplica a los datos CSV y JSON.

date_format

STRING

Vista previa

Elementos de formato que definen cómo se les da formato a los valores DATE en los archivos de entrada (por ejemplo, MM/DD/YYYY).

Si este valor está presente, este formato es el único compatible con DATE. La detección automática de esquemas también determinará el tipo de columna DATE en función de este formato en lugar del formato actual.

Si no se incluye este valor, el campo DATE se analiza con los formatos predeterminados.

Se aplica a los datos CSV y JSON.

datetime_format

STRING

Vista previa

Elementos de formato que definen cómo se formatean los valores DATETIME en los archivos de entrada (por ejemplo, MM/DD/YYYY HH24:MI:SS.FF3).

Si este valor está presente, este formato es el único compatible con DATETIME. La detección automática de esquemas también determinará el tipo de columna DATETIME en función de este formato en lugar del formato actual.

Si no se incluye este valor, el campo DATETIME se analiza con los formatos predeterminados.

Se aplica a los datos CSV y JSON.

time_format

STRING

Vista previa

Elementos de formato que definen cómo se formatean los valores TIME en los archivos de entrada (por ejemplo, HH24:MI:SS.FF3).

Si este valor está presente, este formato es el único compatible con TIME. La detección automática de esquemas también decidirá el tipo de columna TIME en función de este formato en lugar del formato actual.

Si no se incluye este valor, el campo TIME se analiza con los formatos predeterminados.

Se aplica a los datos CSV y JSON.

timestamp_format

STRING

Vista previa

Elementos de formato que definen cómo se formatean los valores TIMESTAMP en los archivos de entrada (por ejemplo, MM/DD/YYYY HH24:MI:SS.FF3).

Si este valor está presente, este formato es el único compatible con TIMESTAMP. La detección automática de esquemas también determinará el tipo de columna TIMESTAMP en función de este formato en lugar del formato actual.

Si no se incluye este valor, el campo TIMESTAMP se analiza con los formatos predeterminados.

Se aplica a los datos CSV y JSON.

uris

En el caso de las tablas externas, incluidas las tablas de objetos, que no sean tablas de Bigtable:

ARRAY<STRING>

Matriz de URIs totalmente cualificados de las ubicaciones de datos externos. Cada URI puede contener un asterisco (*) comodín, que debe ir después del nombre del depósito. Si especifica valores de uris que se dirijan a varios archivos, todos esos archivos deben compartir un esquema compatible.

En los siguientes ejemplos se muestran valores de 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 va a 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

Para obtener más información sobre cómo crear un URI de Bigtable, consulta Obtener el URI de Bigtable.

Ámbito y sintaxis

Las consultas en esta vista deben incluir un conjunto de datos o un calificador de región. En el caso de las consultas con un calificador de conjunto de datos, debes tener permisos para el conjunto de datos. En el caso de las consultas con un calificador de región, debes tener permisos para el proyecto. Para obtener más información, consulta la sección Sintaxis. En la siguiente tabla se explican los ámbitos de región y de recurso de esta vista:

Nombre de la vista Ámbito de los recursos Ámbito 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 del conjunto de datos Ubicación del conjunto de datos
Sustituye lo siguiente:
  • Opcional: PROJECT_ID: el ID de tu Google Cloud proyecto. 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 de tu conjunto de datos. Para obtener más información, consulta Calificador de conjunto de datos.

Ejemplo

Ejemplo 1:

En el siguiente ejemplo se obtienen los tiempos de caducidad de tabla predeterminados de todas las tablas de mydataset en tu proyecto predeterminado (myproject) consultando la vista INFORMATION_SCHEMA.TABLE_OPTIONS.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente 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 siguiente ejemplo se recuperan los metadatos de todas las tablas de mydataset que contienen datos de prueba. La consulta usa los valores de la opción description para buscar tablas que contengan "test" en cualquier parte de la descripción. mydataset está en tu proyecto predeterminado: myproject.

Para ejecutar la consulta en un proyecto que no sea el predeterminado, añade el ID del proyecto al conjunto de datos con el siguiente 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 = '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"  |
  +----------------+---------------+------------+-------------+-------------+--------------+