Visualiza las recomendaciones de particiones y clústeres

En este documento, se describe cómo funciona el recomendador de particiones y clústeres, y cómo ver las recomendaciones y estadísticas.

El recomendador de particiones y agrupamiento en clústeres de BigQuery genera recomendaciones de particiones o clústeres para optimizar tus tablas de BigQuery. El recomendador analiza los flujos de trabajo en tus tablas de BigQuery y ofrece recomendaciones para optimizar mejor tus flujos de trabajo y costos de consultas mediante la partición o el agrupamiento en clústeres de las tablas.

Para obtener más información sobre el servicio del recomendador, consulta la descripción general del recomendador.

Cómo funciona el recomendador

Para generar una recomendación, el recomendador de partición y agrupamiento en clústeres usa los datos de ejecución de la carga de trabajo del proyecto de los últimos 30 días a fin de analizar cada tabla de BigQuery para detectar parámetros de configuración de partición y agrupamiento en clústeres no óptimos. Además, este servicio usa el aprendizaje automático para predecir cuánto se podría optimizar la ejecución de la carga de trabajo con diferentes parámetros de configuración de partición o agrupamiento en clústeres. Si el recomendador descubre que la partición o el agrupamiento en clústeres de una tabla produce ahorros significativos, genera una recomendación. El recomendador de partición y agrupamiento en clústeres genera los siguientes tipos de recomendaciones:

Tipo de tabla existente Subtipo de recomendación Ejemplo de recomendación
Sin particiones ni agrupamiento Partición “Ahorra alrededor de 64 horas de ranuras por mes con la partición en column_C by DAY”
Sin particiones ni agrupamiento Clúster “Ahorra alrededor de 64 horas de ranuras por mes mediante el agrupamiento en clústeres en column_C”
Con partición, sin agrupamiento Clúster “Ahorra alrededor de 64 horas de ranuras por mes mediante el agrupamiento en clústeres en column_C”

Cada recomendación consta de tres partes:

  • Orientación para particionar o agrupar en clústeres una tabla específica
  • La columna específica de una tabla para particionar o agrupar en clústeres
  • Ahorros mensuales estimados por aplicar la recomendación

Para calcular los posibles ahorros de cargas de trabajo, el recomendador supone que los datos históricos de carga de trabajo de ejecución de los últimos 30 días representan la carga de trabajo futura.

La API del recomendador también muestra información de las cargas de trabajo de la tabla en forma de estadísticas. Las estadísticas son hallazgos que te ayudan a comprender la carga de trabajo de tu proyecto y proporcionan más contexto sobre cómo una recomendación de particiones o clústeres podría mejorar los costos de carga de trabajo.

Limitaciones

El recomendador de partición y agrupamiento en clústeres excluye las consultas de SQL heredado en su análisis.

El recomendador de partición y agrupamiento en clústeres no admite recursos almacenados en las siguientes regiones:

  • europe-central2, europe-west8, europe-west9, europe-west12, europe-north1, europe-southwest1
  • us-east1, us-east5, us-south1
  • me-central1, me-central2, me-west1
  • australia-southeast2
  • southamerica-west1

Antes de comenzar

Antes de ver las recomendaciones de particiones y clústeres, debes habilitar la API del recomendador.

Permisos necesarios

A fin de obtener los permisos que necesitas para acceder a las recomendaciones de particiones y clústeres, pídele a tu administrador que te otorgue el rol de IAM de visualizador del recomendador de agrupamiento en clústeres por particiones de BigQuery (roles/recommender.bigqueryPartitionClusterViewer). Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para acceder a las recomendaciones de particiones y clústeres. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para acceder a las recomendaciones de particiones y clústeres:

  • recommender.bigqueryPartitionClusterRecommendations.get
  • recommender.bigqueryPartitionClusterRecommendations.list

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener más información sobre los roles y permisos de IAM en BigQuery, consulta Introducción a IAM.

Ver recomendaciones

En esta sección, se describe cómo ver recomendaciones y estadísticas de particiones y clústeres mediante la consola de Google Cloud, Google Cloud CLI o la API del recomendador.

Selecciona una de las opciones siguientes:

Console

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. Para abrir la pestaña Recomendaciones, haz clic en Recomendaciones > Ver todas las recomendaciones.

    Haz clic en Recomendaciones para ver todas las recomendaciones.

    En la pestaña de recomendaciones, se muestran todas las recomendaciones disponibles para tu proyecto.

  3. En el panel Optimizar el costo de la carga de trabajo de BigQuery, haz clic en Ver todo.

    En la tabla de recomendaciones de costos, se muestran todas las recomendaciones generadas para el proyecto actual. Por ejemplo, en la siguiente captura de pantalla, se muestra que el recomendador analizó la tabla example_table y, luego, recomendó el agrupamiento en clústeres de la columna example_column para ahorrar una cantidad aproximada de bytes y ranuras.

    Tabla de recomendaciones con recomendaciones de partición y agrupamiento en clústeres.

  4. Para ver más información sobre las estadísticas y recomendaciones de la tabla, haz clic en una recomendación.

gcloud

Para ver las recomendaciones de particiones o clústeres de un proyecto específico, usa el comando gcloud recommender recommendations list:

gcloud recommender recommendations list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --recommender=google.bigquery.table.PartitionClusterRecommender \
    --format=FORMAT_TYPE \

Reemplaza lo siguiente:

  • PROJECT_NAME: es el nombre del proyecto que contiene tu tabla de BigQuery
  • REGION_NAME: es la región en la que se encuentra tu proyecto
  • FORMAT_TYPE: un formato de salida de CLI de gcloud compatible; por ejemplo, JSON
En la siguiente tabla, se describen los campos importantes de la respuesta de la API del recomendador:

Propiedad Relevante para el subtipo Descripción
recommenderSubtype Partición o clúster Indica el tipo de recomendación.
content.overview.partitionColumn Partición Nombre de columna de partición recomendada.
content.overview.partitionTimeUnit Partición Unidad de tiempo de partición recomendada. Por ejemplo, DAY significa que la recomendación es tener particiones diarias en la columna recomendada.
content.overview.clusterColumns Clúster Nombres de columnas de agrupamiento en clústeres recomendados.

Para ver las estadísticas de tablas mediante la CLI de gcloud, usa el comando gcloud recommender insights list:

gcloud recommender insights list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --insight-type=google.bigquery.table.StatsInsight \
    --format=FORMAT_TYPE \

Reemplaza lo siguiente:

  • PROJECT_NAME: es el nombre del proyecto que contiene tu tabla de BigQuery
  • REGION_NAME: es la región en la que se encuentra tu proyecto
  • FORMAT_TYPE: un formato de salida de CLI de gcloud compatible; por ejemplo, JSON
En la siguiente tabla, se describen los campos importantes de la respuesta de la API de estadísticas:

Propiedad Relevante para el subtipo Descripción
content.existingPartitionColumn Clúster Columna de partición existente, si existe
content.tableSizeTb Todas Tamaño de la tabla en terabytes
content.bytesReadMonthly Todas Bytes mensuales leídos de la tabla
content.slotMsConsumedMonthly Todas Milisegundos de ranura mensuales que consume la carga de trabajo que se ejecuta en la tabla
content.queryJobsCountMonthly Todas Recuento mensual de trabajos que se ejecutan en la tabla

API de REST

Para ver las recomendaciones de particiones o clústeres de un proyecto específico, usa la API de REST. Con cada comando, debes proporcionar un token de autenticación, que puedes obtener mediante la CLI de gcloud. Si deseas obtener más información sobre cómo obtener un token de autenticación, consulta Métodos para obtener un token de ID.

Puedes usar la solicitud curl list para ver todas las recomendaciones de un proyecto específico:

curl
    -H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
    -H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/recommenders/google.bigquery.table.PartitionClusterRecommender/recommendations

Reemplaza lo siguiente:

  • GCLOUD_AUTH_TOKEN: el nombre de un token de acceso a gcloud CLI válido
  • PROJECT_NAME: el nombre del proyecto que contiene tu tabla de BigQuery
En la siguiente tabla, se describen los campos importantes de la respuesta de la API del recomendador:

Propiedad Relevante para el subtipo Descripción
recommenderSubtype Partición o clúster Indica el tipo de recomendación.
content.overview.partitionColumn Partición Nombre de columna de partición recomendada.
content.overview.partitionTimeUnit Partición Unidad de tiempo de partición recomendada. Por ejemplo, DAY significa que la recomendación es tener particiones diarias en la columna recomendada.
content.overview.clusterColumns Clúster Nombres de columnas de agrupamiento en clústeres recomendados.

Para ver las estadísticas de las tablas mediante la API de REST, ejecuta el siguiente comando:

curl
-H "Authorization: Bearer $GCLOUD_AUTH_TOKEN"
-H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/my-project/locations/us/insightTypes/google.bigquery.table.StatsInsight/insights

Reemplaza lo siguiente:

  • GCLOUD_AUTH_TOKEN: el nombre de un token de acceso a gcloud CLI válido
  • PROJECT_NAME: el nombre del proyecto que contiene tu tabla de BigQuery
En la siguiente tabla, se describen los campos importantes de la respuesta de la API de estadísticas:

Propiedad Relevante para el subtipo Descripción
content.existingPartitionColumn Clúster Columna de partición existente, si existe
content.tableSizeTb Todas Tamaño de la tabla en terabytes
content.bytesReadMonthly Todas Bytes mensuales leídos de la tabla
content.slotMsConsumedMonthly Todas Milisegundos de ranura mensuales que consume la carga de trabajo que se ejecuta en la tabla
content.queryJobsCountMonthly Todas Recuento mensual de trabajos que se ejecutan en la tabla

Soluciona problemas

Problema: No aparecen recomendaciones para una tabla específica.

Es posible que las recomendaciones de particiones y clústeres no aparezcan en las siguientes circunstancias:

  • El tamaño de la tabla es inferior a 10 GB.
  • La tabla tiene un costo de escritura alto por operaciones de lenguaje de manipulación de datos (DML).
  • La tabla no se leyó en los últimos 30 días.
  • El ahorro mensual estimado es demasiado insignificante (menos de 1 hora de ahorro).
  • La tabla ya está agrupada en clústeres.

Precios

No hay costo ni impactos adversos en el rendimiento de las cargas de trabajo cuando ves las recomendaciones.

¿Qué sigue?