Exporta estadísticas y recomendaciones a BigQuery

Descripción general

Con BigQuery Export, puedes ver instantáneas diarias de las recomendaciones para tu organización. Esto se hace con el Servicio de transferencia de datos de BigQuery. Se pueden exportar las siguientes estadísticas y recomendaciones:

Nombre ID del recomendador
Recomendador de IAM google.iam.policy.Recommender
Recomendador de tipos de máquinas de VM google.compute.instance.MachineTypeRecommender
Recomendador de tipos de máquinas del grupo administrado de instancias google.compute.instanceGroupManager.MachineTypeRecommender
Recomendador del PD inactivo google.compute.disk.IdleResourceRecommender
Recomendador de VM inactivas google.compute.instance.IdleResourceRecommender

Antes de comenzar

Se recomienda que completes estos pasos antes de crear una transferencia de datos para las recomendaciones:

  • Permite que el Servicio de transferencia de datos de BigQuery administre tu transferencia de datos. Si usas la IU web de BigQuery para crear la transferencia, debes admitir las ventanas emergentes de console.cloud.google.com en tu navegador para ver los permisos. Para obtener más detalles, consulta Habilita un Servicio de transferencia de datos de BigQuery.
  • Crea un conjunto de datos de BigQuery para almacenar datos.
    • Todas las recomendaciones se transfieren a un conjunto de datos en EE.UU. Esto se debe a que, por el momento, solo los conjuntos de datos en EE.UU. son compatibles.
    • La transferencia de datos usa la misma región donde se crea el conjunto de datos. La ubicación no se puede cambiar una vez que se crean el conjunto de datos y la transferencia.

Precios

Actualmente, la exportación de recomendaciones a BigQuery está disponible para todos los clientes del recomendador sin costo durante la vista previa. Una vez que esté disponible de forma general, los clientes podrán usarlo en función del nivel de precios del recomendador.

Permisos necesarios

Se requieren los siguientes permisos a nivel del proyecto en el que creas una transferencia de datos:

  • bigquery.transfers.update: Te permite crear la transferencia.
  • bigquery.datasets.update: Te permite actualizar las acciones en el conjunto de datos de destino.

Debes otorgar cualquiera de las siguientes funciones en el proyecto en el que creas la transferencia de datos:

  • Función de administrador de BigQuery: roles/bigquery.admin
  • Funciones personalizadas que contienen los permisos anteriores

Los siguientes permisos son obligatorios a nivel de organización a la que se exporta tu recomendador.

  • recommender.exporter: Te permite exportar recomendaciones a BigQuery.

Para otorgar este permiso, debes ejecutar el siguiente comando:

gcloud organizations add-iam-policy-binding *<organization_id>* --member='user:*<user_name>*' --role='roles/recommender.exporter'

Limitaciones

Se aplicarán las siguientes limitaciones hasta que la función BigQuery Export esté en su fase de disponibilidad general (GA):

  • Para poder exportar recomendaciones a BigQuery, puedes agregar el permiso recommender.exporter, solo con gcloud.
  • Todavía no se migran los datos de descripción general del contenido.
  • Por el momento, solo se exportan las recomendaciones a nivel de proyecto. La exportación de las recomendaciones de CUD de la cuenta de facturación se admitirá en la fase de GA.

Crea una transferencia de datos para las recomendaciones

  1. Accede a Google Cloud Console.

    Acceder a Cloud Console

  2. En la pantalla Página principal, haz clic en la pestaña Recomendaciones.

  3. Haz clic en Exportar para ver el formulario de BigQuery Export.

  4. Selecciona un Proyecto de destino para almacenar los datos de recomendaciones y haz clic en Siguiente.

  5. Haz clic en Habilitar API a fin de habilitar las API de BigQuery para la exportación. Esto puede tardar varios segundos en completarse. Cuando finalice, haz clic en Continuar.

  6. En el formulario Configurar transferencia, proporciona los siguientes detalles:

    • En la sección Nombre de configuración de la transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.

    • En la sección Schedule options (Opciones de programación), en Programar (Schedule), deja el valor predeterminado [Start now (Comenzar ahora)] o haz clic en Start at a set time (Comenzar a una hora determinada).

      • En Repeticiones (Repeats), selecciona una opción para la frecuencia con la que se ejecutará la transferencia.

        • Diaria (predeterminada)
        • Semanal
        • Mensual
        • Personalizada
        • A pedido
      • En Fecha de inicio y hora de ejecución (Start date and run time), ingresa la fecha y hora para iniciar la transferencia. Si seleccionas Start now (Comenzar ahora), esta opción se inhabilitará.

    • En la sección Destination settings (Configuración de destino), en Destination dataset (Conjunto de datos de destino), selecciona el conjunto de datos que creaste para almacenar tus datos.

    • En la sección Detalles de fuente de datos (Data source details):

      • El valor predeterminado de organization_id corresponde a la organización cuyas recomendaciones ves actualmente. Si deseas exportar recomendaciones a otra organización, puedes cambiar esto en la consola, en el visualizador de la organización.

    • (Opcional) En la sección Opciones de notificación:

      • Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Cuando habilitas esta opción, el administrador de transferencias recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
      • En Seleccionar un tema de Cloud Pub/Sub (Select a Cloud Pub/Sub topic), elige el nombre de tu tema o haz clic en Crear un tema (Create a topic). Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.

  7. Haz clic en Crear para crear la transferencia.

  8. Haz clic en Permitir en la ventana emergente de consentimiento.

  9. Una vez creada la transferencia, se te redireccionará al Centro de recomendaciones. Puedes hacer clic en el vínculo para acceder a los detalles de configuración de la transferencia. Como alternativa, puedes acceder a las transferencias si haces lo siguiente:

    • Ve a la página de BigQuery en Cloud Console.

      Ir a la página de BigQuery

    • Haz clic en Transferencias de datos. Puedes ver todas las transferencias de datos disponibles.

Visualiza el historial de ejecuciones de una transferencia

Para ver el historial de ejecuciones de una transferencia, haz lo siguiente:

  1. Ve a la página de BigQuery en Cloud Console.

    Ir a la página de BigQuery

  2. Haz clic en Transferencias de datos. Puedes ver todas las transferencias de datos disponibles.

  3. Haz clic en la transferencia correspondiente en la lista.

  4. En la lista de transferencias de ejecución que se muestran debajo de la pestaña EJECUTAR HISTORIAL, selecciona la transferencia cuyos detalles deseas ver.

  5. Se muestra el panel Detalles del proceso de la transferencia que seleccionaste. Estos son algunos de los detalles de ejecución posibles:

    • Se aplaza la transferencia porque los datos de origen no están disponibles.
    • Se muestra un trabajo en el que se indica la cantidad de filas exportadas a una tabla.
    • Faltan permisos que debes otorgar para una fuente de datos y, luego, programar un reabastecimiento.

Visualiza las tablas de una transferencia

Cuando exportas recomendaciones a BigQuery, el conjunto de datos contiene dos tablas particionadas por fecha:

  • recommendations_export
  • insight_export

Para obtener más información sobre las tablas y el esquema, consulta Crea y usa tablas y Especifica un esquema.

Para ver las tablas de una transferencia de datos, haz lo siguiente:

  1. Ve a la página de BigQuery en Cloud Console.

    Ir a la página de BigQuery

  2. Haz clic en Transferencias de datos. Puedes ver todas las transferencias de datos disponibles.

  3. Haz clic en la transferencia correspondiente en la lista.

  4. Haz clic en la pestaña CONFIGURATION y en el conjunto de datos.

  5. En el panel Explorador, expande tu proyecto y selecciona un conjunto de datos. La descripción y los detalles aparecen en el panel de detalles. Las tablas para un conjunto de datos se enumeran con el nombre del conjunto de datos en el panel Explorador.

Programa un reabastecimiento

Se pueden exportar las recomendaciones de una fecha pasada (siendo esta posterior a la fecha en que la organización se incluyó a la exportación) mediante la programación de un reabastecimiento. Para programar un reabastecimiento, haz lo siguiente:

  1. Ve a la página de BigQuery en Cloud Console.

    Ir a la página de BigQuery

  2. Haz clic en Transferencias de datos.

  3. En la página Transferencias, haz clic en la transferencia apropiada en la lista.

    1. Haz clic en Programar reabastecimiento (Schedule Backfill).

    2. En el cuadro de diálogo Programar reabastecimiento (Schedule backfill), elige la Fecha de inicio (Start date) y la Fecha de finalización (End date).

Para obtener más información sobre cómo trabajar con transferencias, consulta la sección sobre cómo trabajar con transferencias.

Consultas de ejemplo

Puedes usar las siguientes consultas de muestra para analizar los datos exportados.

Visualiza los ahorros de costos de las recomendaciones en las que la duración de la recomendación se muestra en días

SELECT name, recommender, target_resources,
  case primary_impact.cost_projection.cost.units is null
       when true then round(primary_impact.cost_projection.cost.nanos * power(10,-9),2)
       else
       round( primary_impact.cost_projection.cost.units +
       (primary_impact.cost_projection.cost.nanos * power(10,-9)), 2)
   end
   as dollar_amt,
   primary_impact.cost_projection.duration.seconds/(60*60*24) as duration_in_days
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and primary_impact.category = "COST"

Visualiza la lista de funciones de IAM sin usar

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REMOVE_ROLE"

Visualiza una lista de funciones otorgadas que deben reemplazarse por funciones más pequeñas

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REPLACE_ROLE"

Visualiza las estadísticas de una recomendación

SELECT recommendations.name as recommendation_name,
insights.name as insight_name,
recommendations.cloud_entity_id,
recommendations.cloud_entity_type,
recommendations.recommender,
recommendations.recommender_subtype,
recommendations.description,
recommendations.target_resources,
recommendations.recommendation_details,
recommendations.state,
recommendations.last_refresh_time as recommendation_last_refresh_time,
insights.insight_type,
insights.insight_subtype,
insights.category,
insights.description,
insights.insight_details,
insights.state,
insights.last_refresh_time as insight_last_refresh_time
FROM `<project>.<dataset>.recommendations_export` as recommendations,
   `<project>.<dataset>.insights_export` as insights
WHERE DATE(recommendations._PARTITIONTIME) = "<date>"
and DATE(insights._PARTITIONTIME) = "<date>"
and insights.name in unnest(recommendations.associated_insights)

Consulta las recomendaciones para los proyectos que pertenecen a una carpeta específica

Esta consulta muestra carpetas superiores del proyecto, hasta cinco niveles.

SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and "<folder_id>" in unnest(ancestors.folder_ids)