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

OPTION_NAME

OPTION_TYPE

OPTION_VALUE

description

STRING

Una descripción de la tabla

enable_refresh

BOOL

Indica si la actualización automática está habilitada para una vista materializada

expiration_timestamp

TIMESTAMP

La hora a la que vence esta tabla

friendly_name

STRING

El nombre descriptivo de la tabla

kms_key_name

STRING

El nombre de la clave de Cloud KMS que se usa para encriptar la tabla

labels

ARRAY<STRUCT<STRING, STRING>>

Un array de STRUCT que representa las etiquetas de la tabla

partition_expiration_days

FLOAT64

El ciclo de vida predeterminado de todas las particiones de una tabla particionada, expresado en días

refresh_interval_minutes

FLOAT64

Frecuencia con la que se actualiza una vista materializada

require_partition_filter

BOOL

Si las consultas sobre la tabla requieren un filtro de partición

tags

ARRAY<STRUCT<STRING, STRING>>

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

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.

column_name_character_map

STRING

Define los permisos de los caracteres de nombre de columna admitidos y el comportamiento de manejo de caracteres no compatibles. La configuración predeterminada es STRICT, lo que significa que los caracteres no admitidos hacen que BigQuery genere errores. V1 y V2 reemplazan cualquier carácter no admitido por guiones bajos.

Entre los valores admitidos, se incluyen los siguientes:

  • STRICT. Habilita los nombres flexibles de columnas. Este es el valor predeterminado. Los trabajos de carga con caracteres no compatibles en los nombres de columna fallan con un mensaje de error. Para configurar el reemplazo de caracteres no admitidos por guiones bajos para que la tarea de carga se realice correctamente, especifica el parámetro de configuración default_column_name_character_map.
  • V1. Los nombres de las columnas solo pueden contener caracteres de nombre de columna estándar. Los caracteres no admitidos se reemplazan por guiones bajos. Este es el comportamiento predeterminado de las tablas creadas antes de la introducción de column_name_character_map.
  • V2. Además de los caracteres de nombre de columna estándar, también admite nombres de columnas flexibles. Los caracteres no admitidos se reemplazan por guiones bajos.
  • Se aplica a los datos CSV y Parquet.

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.

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 y todos los archivos de datos a los que se hace referencia deben estar en el mismo bucket que el archivo 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.

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:

  • 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. Un ejemplo es 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"  |
  +----------------+---------------+------------+-------------+-------------+--------------+