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
En la consola de Google Cloud, ve a la página de BigQuery.
Para abrir la pestaña Recomendaciones, haz clic en > Ver todas las recomendaciones.
RecomendacionesEn la pestaña de recomendaciones, se muestran todas las recomendaciones disponibles para tu proyecto.
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 columnaexample_column
para ahorrar una cantidad aproximada de bytes y ranuras.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 BigQueryREGION_NAME
: es la región en la que se encuentra tu proyectoFORMAT_TYPE
: un formato de salida de CLI de gcloud compatible; por ejemplo, JSON
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 obtener más información sobre otros campos de la respuesta del recomendador, consulta Recurso de REST:
projects.locations.recommendersrecommendation
. - Para obtener más información sobre la API del recomendador, consulta Usa la API: Recomendaciones.
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 BigQueryREGION_NAME
: es la región en la que se encuentra tu proyectoFORMAT_TYPE
: un formato de salida de CLI de gcloud compatible; por ejemplo, JSON
Propiedad | Relevante para el subtipo | Descripción |
---|---|---|
content.existingPartitionColumn |
Clúster | Columna de partición existente, si existe |
content.tableSizeTb |
Todos | Tamaño de la tabla en terabytes |
content.bytesReadMonthly |
Todos | Bytes mensuales leídos de la tabla |
content.slotMsConsumedMonthly |
Todos | Milisegundos de ranura mensuales que consume la carga de trabajo que se ejecuta en la tabla |
content.queryJobsCountMonthly |
Todos | Recuento mensual de trabajos que se ejecutan en la tabla |
- Para obtener más información sobre otros campos de la respuesta de las estadísticas, consulta Recurso de REST:
projects.locations.insightTypes.insights
. - Para obtener más información sobre el uso de estadísticas, consulta Usa la API: Estadísticas.
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álidoPROJECT_NAME
: el nombre del proyecto que contiene tu tabla de BigQuery
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 obtener más información sobre otros campos de la respuesta del recomendador, consulta Recurso de REST:
projects.locations.recommendersrecommendation
. - Para obtener más información sobre la API del recomendador, consulta Usa la API: Recomendaciones.
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álidoPROJECT_NAME
: el nombre del proyecto que contiene tu tabla de BigQuery
Propiedad | Relevante para el subtipo | Descripción |
---|---|---|
content.existingPartitionColumn |
Clúster | Columna de partición existente, si existe |
content.tableSizeTb |
Todos | Tamaño de la tabla en terabytes |
content.bytesReadMonthly |
Todos | Bytes mensuales leídos de la tabla |
content.slotMsConsumedMonthly |
Todos | Milisegundos de ranura mensuales que consume la carga de trabajo que se ejecuta en la tabla |
content.queryJobsCountMonthly |
Todos | Recuento mensual de trabajos que se ejecutan en la tabla |
- Para obtener más información sobre otros campos de la respuesta de las estadísticas, consulta Recurso de REST:
projects.locations.insightTypes.insights
. - Para obtener más información sobre el uso de estadísticas, consulta Usa la API: Estadísticas.
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.