Vista de SCHEMATA_OPTIONS

La vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS contiene una fila para cada opción que se establece en cada conjunto de datos en un proyecto.

Antes de comenzar

Para consultar la vista SCHEMATA_OPTIONS de los metadatos del conjunto de datos, necesitas el permiso bigquery.datasets.get de Identity and Access Management (IAM) a nivel de proyecto.

Cada uno de los siguientes roles predefinidos de IAM incluye los permisos que necesitas para obtener la vista SCHEMATA_OPTIONS:

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer

Para obtener más información sobre IAM de BigQuery, consulta Control de acceso con IAM.

Esquema

Cuando consultas la vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS, los resultados de la consulta contienen una fila por cada opción que se establece en cada conjunto de datos de un proyecto.

La vista INFORMATION_SCHEMA.SCHEMATA_OPTIONS tiene el siguiente esquema:

Nombre de la columna Tipo de datos Valor
CATALOG_NAME STRING El nombre del proyecto que contiene el conjunto de datos
SCHEMA_NAME STRING El nombre del conjunto de datos, también denominado datasetId
OPTION_NAME STRING El nombre de la opción. Para obtener una lista de las opciones compatibles, consulta la lista de opciones de esquema.

La opción storage_billing_model solo se muestra para los conjuntos de datos que se actualizaron después del 1 de diciembre de 2022. Para los conjuntos de datos que se actualizaron por última vez antes de esa fecha, el modelo de facturación de almacenamiento es LOGICAL.

OPTION_TYPE STRING Tipo de datos de la opción
OPTION_VALUE STRING El valor de la opción

Permiso y sintaxis

Las consultas realizadas a esta vista deben incluir un calificador de región. Si no especificas un calificador regional, los metadatos se recuperan de la región de EE.UU. En la siguiente tabla, se explica el permiso de la región para esta vista:

Nombre de la vista Permiso del recurso Permiso de la región
[PROJECT_ID.]INFORMATION_SCHEMA.SCHEMATA_OPTIONS Nivel de proyecto Región de EE.UU.
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS Nivel de proyecto REGION
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.

Ejemplo

-- Returns metadata for datasets in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA_OPTIONS;

Ejemplos

Recupera el tiempo de vencimiento de tabla predeterminado de todos los conjuntos de datos en tu proyecto

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`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
Por ejemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

SELECT
  *
FROM
  INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE
  option_name = 'default_table_expiration_days';

El resultado es similar al siguiente:

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

Recupera las etiquetas de todos los conjuntos de datos de tu proyecto

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`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
; Por ejemplo, `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS.

SELECT
  *
FROM
  INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE
  option_name = 'labels';

El resultado es similar al siguiente:

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+