Exportar recomendaciones a BigQuery
Información general
Con la exportación de BigQuery, puedes ver las instantáneas diarias de las recomendaciones para tu organización. Para ello, se usa BigQuery Data Transfer Service. Consulta este documento para ver qué recomendadores se incluyen en BigQuery Export actualmente.
Antes de empezar
Siga estos pasos antes de crear una transferencia de datos para las recomendaciones:
- Permita que BigQuery Data Transfer Service gestione su transferencia de datos. Si usa la interfaz web de BigQuery para crear la transferencia, debe permitir las ventanas emergentes de
console.cloud.google.com
en su navegador para poder ver los permisos. Para obtener más información, consulta cómo habilitar BigQuery Data Transfer Service. - Crea un
conjunto de datos de BigQuery para almacenar los datos.
- La transferencia de datos usa la misma región en la que se crea el conjunto de datos. La ubicación es inmutable una vez que se han creado el conjunto de datos y la transferencia.
- El conjunto de datos contendrá estadísticas y recomendaciones de todas las regiones del mundo. Por lo tanto, esta operación agregaría todos esos datos en una región global durante el proceso. Si tiene alguna duda sobre la residencia de los datos, consulte la página Asistencia de Google Cloud.
- Si la ubicación del conjunto de datos se ha lanzado recientemente, puede haber un retraso en la disponibilidad de los datos de exportación iniciales.
Precios
La exportación de recomendaciones a BigQuery está disponible para todos los clientes del recomendador en función de su nivel de precios del recomendador.
Permisos obligatorios
Al configurar la transferencia de datos, necesita los siguientes permisos a nivel de proyecto en el que cree 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.resourcemanager.projects.update
: le permite seleccionar un proyecto en el que quiera que se almacenen los datos de exportación.pubsub.topics.list
: te permite seleccionar un tema de Pub/Sub para recibir notificaciones sobre tu exportación.
Se requiere el siguiente permiso a nivel de organización. Esta organización corresponde a la que se está configurando la exportación.
recommender.resources.export
: permite exportar recomendaciones a BigQuery.
Para exportar los precios negociados de las recomendaciones de ahorro de costes, se necesitan los siguientes permisos:
billing.resourceCosts.get at project level
: permite exportar precios negociados para recomendaciones a nivel de proyecto.billing.accounts.getSpendingInformation at billing account level
: permite exportar los precios negociados de las recomendaciones a nivel de cuenta de facturación.
Sin estos permisos, las recomendaciones de ahorro de costes se exportarán con precios estándar en lugar de precios negociados.
Conceder permisos
Deben concederse los siguientes roles en el proyecto en el que cree la transferencia de datos:
- Rol Administrador de BigQuery:
roles/bigquery.admin
- Rol Propietario del proyecto:
roles/owner
- Rol Propietario del proyecto:
roles/owner
- Rol Lector de proyectos:
roles/viewer
- Rol Editor de proyectos:
roles/editor
- Rol Administrador de cuenta de facturación:
roles/billing.admin
- Rol Gestor de costes de (la) cuenta de facturación:
roles/billing.costsManager
- Rol Lector de cuenta de facturación:
roles/billing.viewer
Para que puedas crear una transferencia y actualizar acciones en el conjunto de datos de destino, debes asignar el siguiente rol:
Hay varios roles que contienen permisos para seleccionar un proyecto en el que almacenar los datos de exportación y para seleccionar un tema de Pub/Sub para recibir notificaciones. Para tener disponibles ambos permisos, puede conceder el siguiente rol:
Hay varios roles que incluyen el permiso billing.resourceCosts.get para exportar precios negociados de recomendaciones a nivel de proyecto para ahorrar costes. Puedes conceder cualquiera de ellos:
Hay varios roles que incluyen el permiso billing.accounts.getSpendingInformation para exportar precios negociados de recomendaciones a nivel de cuenta de facturación para ahorrar costes. Puedes conceder cualquiera de ellos:
Debes conceder el siguiente rol a nivel de organización:
- Rol Exportador de recomendaciones (
roles/recommender.exporter
) en la consola Google Cloud .
También puedes crear roles personalizados que contengan los permisos necesarios.
Crear una transferencia de datos para recomendaciones
Inicia sesión en la Google Cloud consola
En la pantalla Inicio, haz clic en la pestaña Recomendaciones.
Haga clic en Exportar para ver el formulario de exportación de BigQuery.
Selecciona un proyecto de destino para almacenar los datos de las recomendaciones y haz clic en Siguiente.
Haz clic en Habilitar APIs para habilitar las APIs de BigQuery para la exportación. Este proceso puede tardar varios segundos. Cuando hayas terminado, haz clic en Continuar.
En el formulario Configurar transferencia, proporciona los siguientes detalles:
En la sección Nombre de la configuración de transferencia, en Nombre visible, indica el nombre de la transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla fácilmente si necesitas modificarla más adelante.
En la sección Opciones de programación, en Programación, deja el valor predeterminado (Empezar ahora) o haz clic en Empezar a una hora determinada.
En Se repite, elige una opción para determinar la frecuencia con la que se ejecutará la transferencia.
- Diario (predeterminado)
- Semanal
- Mensual
- Personalizado
- bajo demanda
En Fecha de inicio y tiempo de ejecución, introduce la fecha y la hora en las que quieres que empiece la transferencia. Si eliges Empezar ahora, esta opción se inhabilita.
En la sección Configuración de destino, en Conjunto de datos de destino, elija el ID del conjunto de datos que ha creado para almacenar sus datos.
En la sección Detalles de la fuente de datos:
El valor predeterminado de organization_id es la organización de la que estás viendo las recomendaciones. Si quieres exportar recomendaciones a otra organización, puedes cambiar esta opción en la parte superior de la consola, en el visor de organizaciones.
(Opcional) En la sección Opciones de notificación:
- Haz clic en el interruptor para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de las transferencias recibirá una notificación por correo cuando falle una ejecución de transferencia.
- En Selecciona un tema de Pub/Sub, elige el tema o haz clic en Crear un tema. Esta opción configura las notificaciones de Pub/Sub sobre la transferencia.
Haz clic en Crear para crear la transferencia.
Haz clic en Permitir en la ventana emergente de consentimiento.
Una vez que se haya creado la transferencia, se le redirigirá al Centro de recomendaciones. Puede hacer clic en el enlace para acceder a los detalles de la configuración de la transferencia. También puede acceder a las transferencias haciendo lo siguiente:
Ve a la página de BigQuery en la Google Cloud consola.
Haz clic en Transferencias de datos. Puedes ver todas las transferencias de datos disponibles.
Ver el historial de ejecuciones de una transferencia
Para ver el historial de ejecuciones de una transferencia, siga estos pasos:
Ve a la página de BigQuery en la Google Cloud consola.
Haz clic en Transferencias de datos. Puedes ver todas las transferencias de datos disponibles.
Haga clic en la transferencia correspondiente de la lista.
En la lista de transferencias de carreras que se muestra en la pestaña HISTORIAL DE CARRERAS, selecciona la transferencia cuyos detalles quieras ver.
Se muestra el panel Detalles de la ejecución de la transferencia que has seleccionado. Algunos de los detalles de la carrera que se pueden mostrar son los siguientes:
- Transferencia aplazada debido a que los datos de origen no están disponibles.
- Trabajo que indica el número de filas exportadas a una tabla.
- Faltan permisos para una fuente de datos que debes conceder y, después, programar una reposición.
¿Cuándo se exportan tus datos?
Cuando creas una transferencia de datos, la primera exportación se produce en un plazo de dos días. Después de la primera exportación, las tareas de exportación se ejecutan con la cadencia que hayas solicitado en el momento de la configuración. Se aplican las siguientes condiciones:
La tarea de exportación de un día concreto (D) exporta los datos de final del día (D) a tu conjunto de datos de BigQuery, que suele completarse al final del día siguiente (D+1). El trabajo de exportación se ejecuta en la zona horaria del Pacífico y puede parecer que tiene un retraso adicional en otras zonas horarias.
La tarea de exportación diaria no se ejecuta hasta que estén disponibles todos los datos que se van a exportar. Esto puede provocar variaciones y, en ocasiones, retrasos en el día y la hora en que se actualiza tu conjunto de datos. Por lo tanto, es mejor usar la última instantánea de datos disponible que depender de tablas con fechas específicas.
La tarea de exportación transfiere los datos más recientes disponibles por región, lo que significa que puede haber una diferencia en la fecha más reciente en la que están disponibles las recomendaciones de las distintas regiones.
Mensajes de estado habituales de una exportación
Consulte los mensajes de estado habituales que puede ver al exportar recomendaciones a BigQuery.
El usuario no tiene el permiso necesario
El siguiente mensaje se muestra cuando el usuario no tiene el permiso necesario recommender.resources.export
. Verá el siguiente mensaje:
User does not have required permission "recommender.resources.export". Please, obtain the required permissions for the datasource and try again by triggering a backfill for this date
Para solucionar este problema, asigna el rol de gestión de identidades y accesos roles/recommender.exporter
a user/service account
al configurar la exportación a nivel de organización para la organización en la que se configuró la exportación. Se puede asignar mediante los comandos de gcloud que se indican a continuación:
En caso de que el usuario:
gcloud organizations add-iam-policy-binding *<organization_id>* --member='user:*<user_name>*' --role='roles/recommender.exporter'
En el caso de las cuentas de servicio:
gcloud organizations add-iam-policy-binding *<organization_id>* --member='serviceAccount:*<service_acct_name>*' --role='roles/recommender.exporter'
Transferencia aplazada porque los datos de origen no están disponibles
Este mensaje se muestra cuando se reprograma la transferencia porque los datos de origen aún no están disponibles. No se trata de un error. Esto significa que los flujos de procesamiento de exportación del día aún no se han completado. La transferencia se volverá a ejecutar a la nueva hora programada y se completará cuando se hayan completado las canalizaciones de exportación. Verá el siguiente mensaje:
Transfer deferred due to source data not being available
No se han encontrado los datos de origen
Este mensaje se muestra cuando se han completado las canalizaciones de F1toPlacer, pero no se han encontrado recomendaciones ni estadísticas para la organización para la que se ha configurado la exportación. Verá el siguiente mensaje:
Source data not found for 'recommendations_export$<date>'insights_export$<date>
Este mensaje se produce por los siguientes motivos:
- El usuario configuró la exportación hace menos de dos días. En la guía para clientes se indica que la exportación estará disponible al día siguiente.
- No hay recomendaciones ni estadísticas disponibles para su organización en ese día concreto. Puede que sea así o que las canalizaciones se hayan ejecutado antes de que estuvieran disponibles todas las recomendaciones o estadísticas del día.
Ver las tablas de una transferencia
Cuando exporta 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 los esquemas, consulta los artículos Crear y usar tablas y Especificar un esquema.
Para ver las tablas de una transferencia de datos, siga estos pasos:
Ve a la página de BigQuery en la Google Cloud consola. Ir a la página de BigQuery
Haz clic en Transferencias de datos. Puedes ver todas las transferencias de datos disponibles.
Haga clic en la transferencia correspondiente de la lista.
Haz clic en la pestaña CONFIGURACIÓN y, a continuación, en el conjunto de datos.
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 de un conjunto de datos se muestran junto con el nombre del conjunto de datos en el panel Explorador.
Programar una reposición
Las recomendaciones de una fecha anterior (posterior a la fecha en la que la organización habilitó la exportación) se pueden exportar programando una reposición. Para programar una reposición, siga estos pasos:
Ve a la página de BigQuery en la Google Cloud consola.
Haz clic en Transferencias de datos.
En la página Transferencias, haz clic en la transferencia correspondiente de la lista.
Haz clic en Programar relleno.
En el cuadro de diálogo Programar relleno, elija las fechas de inicio y finalización.
Para obtener más información sobre cómo trabajar con transferencias, consulta el artículo Trabajar con transferencias.
Esquema de exportación
Tabla de exportación de recomendaciones:
schema:
fields:
- name: cloud_entity_type
type: STRING
description: |
Represents what cloud entity type the recommendation was generated for - eg: project number, billing account
- name: cloud_entity_id
type: STRING
description: |
Value of the project number or billing account id
- name: name
type: STRING
description: |
Name of recommendation. A project recommendation is represented as
projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID]
- name: location
type: STRING
description: |
Location for which this recommendation is generated
- name: recommender
type: STRING
description: |
Recommender ID of the recommender that has produced this recommendation
- name: recommender_subtype
type: STRING
description: |
Contains an identifier for a subtype of recommendations produced for the
same recommender. Subtype is a function of content and impact, meaning a
new subtype will be added when either content or primary impact category
changes.
Examples:
For recommender = "google.iam.policy.Recommender",
recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
- name: target_resources
type: STRING
mode: REPEATED
description: |
Contains the fully qualified resource names for resources changed by the
operations in this recommendation. This field is always populated. ex:
[//cloudresourcemanager.googleapis.com/projects/foo].
- name: description
type: STRING
description: |
Required. Free-form human readable summary in English.
The maximum length is 500 characters.
- name: last_refresh_time
type: TIMESTAMP
description: |
Output only. Last time this recommendation was refreshed by the system that created it in the first place.
- name: primary_impact
type: RECORD
description: |
Required. The primary impact that this recommendation can have while trying to optimize
for one category.
schema:
fields:
- name: category
type: STRING
description: |
Category that is being targeted.
Values can be the following:
CATEGORY_UNSPECIFIED:
Default unspecified category. Do not use directly.
COST:
Indicates a potential increase or decrease in cost.
SECURITY:
Indicates a potential increase or decrease in security.
PERFORMANCE:
Indicates a potential increase or decrease in performance.
RELIABILITY:
Indicates a potential increase or decrease in reliability.
- name: cost_projection
type: RECORD
description: Optional. Use with CategoryType.COST
schema:
fields:
- name: cost
type: RECORD
description: |
An approximate projection on amount saved or amount incurred.
Negative cost units indicate cost savings and positive cost units indicate
increase. See google.type.Money documentation for positive/negative units.
schema:
fields:
- name: currency_code
type: STRING
description: The 3-letter currency code defined in ISO 4217.
- name: units
type: INTEGER
description: |
The whole units of the amount. For example if `currencyCode` is `"USD"`,
then 1 unit is one US dollar.
- name: nanos
type: INTEGER
description: |
Number of nano (10^-9) units of the amount.
The value must be between -999,999,999 and +999,999,999 inclusive.
If `units` is positive, `nanos` must be positive or zero.
If `units` is zero, `nanos` can be positive, zero, or negative.
If `units` is negative, `nanos` must be negative or zero.
For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
- name: cost_in_local_currency
type: RECORD
description: |
An approximate projection on amount saved or amount incurred in the local currency.
Negative cost units indicate cost savings and positive cost units indicate
increase. See google.type.Money documentation for positive/negative units.
schema:
fields:
- name: currency_code
type: STRING
description: The 3-letter currency code defined in ISO 4217.
- name: units
type: INTEGER
description: |
The whole units of the amount. For example if `currencyCode` is `"USD"`,
then 1 unit is one US dollar.
- name: nanos
type: INTEGER
description: |
Number of nano (10^-9) units of the amount.
The value must be between -999,999,999 and +999,999,999 inclusive.
If `units` is positive, `nanos` must be positive or zero.
If `units` is zero, `nanos` can be positive, zero, or negative.
If `units` is negative, `nanos` must be negative or zero.
For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
- name: duration
type: RECORD
description: Duration for which this cost applies.
schema:
fields:
- name: seconds
type: INTEGER
description: |
Signed seconds of the span of time. Must be from -315,576,000,000
to +315,576,000,000 inclusive. Note: these bounds are computed from:
60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
- name: nanos
type: INTEGER
description: |
Signed fractions of a second at nanosecond resolution of the span
of time. Durations less than one second are represented with a 0
`seconds` field and a positive or negative `nanos` field. For durations
of one second or more, a non-zero value for the `nanos` field must be
of the same sign as the `seconds` field. Must be from -999,999,999
to +999,999,999 inclusive.
- name: pricing_type_name
type: STRING
description: |
A pricing type can either be based on the price listed on GCP (LIST) or a custom
price based on past usage (CUSTOM).
- name: reliability_projection
type: RECORD
description: Optional. Use with CategoryType.RELIABILITY
schema:
fields:
- name: risk_types
type: STRING
mode: REPEATED
description: |
The risk associated with the reliability issue.
RISK_TYPE_UNSPECIFIED:
Default unspecified risk. Do not use directly.
SERVICE_DISRUPTION:
Potential service downtime.
DATA_LOSS:
Potential data loss.
ACCESS_DENY:
Potential access denial. The service is still up but some or all clients
can not access it.
- name: details_json
type: STRING
description: |
Additional reliability impact details that is provided by the recommender in JSON
format.
- name: state
type: STRING
description: |
Output only. The state of the recommendation:
STATE_UNSPECIFIED:
Default state. Do not use directly.
ACTIVE:
Recommendation is active and can be applied. Recommendations content can
be updated by Google.
ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.
CLAIMED:
Recommendation is in claimed state. Recommendations content is
immutable and cannot be updated by Google.
CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.
SUCCEEDED:
Recommendation is in succeeded state. Recommendations content is
immutable and cannot be updated by Google.
SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.
FAILED:
Recommendation is in failed state. Recommendations content is immutable
and cannot be updated by Google.
FAILED recommendations can be marked as SUCCEEDED, or FAILED.
DISMISSED:
Recommendation is in dismissed state.
DISMISSED recommendations can be marked as ACTIVE.
- name: ancestors
type: RECORD
description: |
Ancestry for the recommendation entity
schema:
fields:
- name: organization_id
type: STRING
description: |
Organization to which the recommendation project
- name: folder_ids
type: STRING
mode: REPEATED
description: |
Up to 5 levels of parent folders for the recommendation project
- name: associated_insights
type: STRING
mode: REPEATED
description: |
Insights associated with this recommendation. A project insight is represented as
projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[insight_id]
- name: recommendation_details
type: STRING
description: |
Additional details about the recommendation in JSON format.
schema:
- name: overview
type: RECORD
description: Overview of the recommendation in JSON format
- name: operation_groups
type: OperationGroup
mode: REPEATED
description: Operations to one or more Google Cloud resources grouped in such a way
that, all operations within one group are expected to be performed
atomically and in an order. More here: https://cloud.google.com/recommender/docs/key-concepts#operation_groups
- name: operations
type: Operation
description: An Operation is the individual action that must be performed as one of the atomic steps in a suggested recommendation. More here: https://cloud.google.com/recommender/docs/key-concepts?#operation
- name: state_metadata
type: map with key: STRING, value: STRING
description: A map of STRING key, STRING value of metadata for the state, provided by user or automations systems.
- name: additional_impact
type: Impact
mode: REPEATED
description: Optional set of additional impact that this recommendation may have when
trying to optimize for the primary category. These may be positive
or negative. More here: https://cloud.google.com/recommender/docs/key-concepts?#recommender_impact
- name: priority
type: STRING
description: |
Priority of the recommendation:
PRIORITY_UNSPECIFIED:
Default unspecified priority. Do not use directly.
P4:
Lowest priority.
P3:
Second lowest priority.
P2:
Second highest priority.
P1:
Highest priority.
Tabla de exportación de estadísticas:
schema:
- fields:
- name: cloud_entity_type
type: STRING
description: |
Represents what cloud entity type the recommendation was generated for - eg: project number, billing account
- name: cloud_entity_id
type: STRING
description: |
Value of the project number or billing account id
- name: name
type: STRING
description: |
Name of recommendation. A project recommendation is represented as
projects/[PROJECT_NUMBER]/locations/[LOCATION]/recommenders/[RECOMMENDER_ID]/recommendations/[RECOMMENDATION_ID]
- name: location
type: STRING
description: |
Location for which this recommendation is generated
- name: insight_type
type: STRING
description: |
Recommender ID of the recommender that has produced this recommendation
- name: insight_subtype
type: STRING
description: |
Contains an identifier for a subtype of recommendations produced for the
same recommender. Subtype is a function of content and impact, meaning a
new subtype will be added when either content or primary impact category
changes.
Examples:
For recommender = "google.iam.policy.Recommender",
recommender_subtype can be one of "REMOVE_ROLE"/"REPLACE_ROLE"
- name: target_resources
type: STRING
mode: REPEATED
description: |
Contains the fully qualified resource names for resources changed by the
operations in this recommendation. This field is always populated. ex:
[//cloudresourcemanager.googleapis.com/projects/foo].
- name: description
type: STRING
description: |
Required. Free-form human readable summary in English.
The maximum length is 500 characters.
- name: last_refresh_time
type: TIMESTAMP
description: |
Output only. Last time this recommendation was refreshed by the system that created it in the first place.
- name: category
type: STRING
description: |
Category being targeted by the insight. Can be one of:
Unspecified category.
CATEGORY_UNSPECIFIED = Unspecified category.
COST = The insight is related to cost.
SECURITY = The insight is related to security.
PERFORMANCE = The insight is related to performance.
MANAGEABILITY = The insight is related to manageability.
RELIABILITY = The insight is related to reliability.;
- name: state
type: STRING
description: |
Output only. The state of the recommendation:
STATE_UNSPECIFIED:
Default state. Do not use directly.
ACTIVE:
Recommendation is active and can be applied. Recommendations content can
be updated by Google.
ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.
CLAIMED:
Recommendation is in claimed state. Recommendations content is
immutable and cannot be updated by Google.
CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.
SUCCEEDED:
Recommendation is in succeeded state. Recommendations content is
immutable and cannot be updated by Google.
SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.
FAILED:
Recommendation is in failed state. Recommendations content is immutable
and cannot be updated by Google.
FAILED recommendations can be marked as SUCCEEDED, or FAILED.
DISMISSED:
Recommendation is in dismissed state.
DISMISSED recommendations can be marked as ACTIVE.
- name: ancestors
type: RECORD
description: |
Ancestry for the recommendation entity
schema:
fields:
- name: organization_id
type: STRING
description: |
Organization to which the recommendation project
- name: folder_ids
type: STRING
mode: REPEATED
description: |
Up to 5 levels of parent folders for the recommendation project
- name: associated_recommendations
type: STRING
mode: REPEATED
description: |
Insights associated with this recommendation. A project insight is represented as
projects/[PROJECT_NUMBER]/locations/[LOCATION]/insightTypes/[INSIGHT_TYPE_ID]/insights/[insight_id]
- name: insight_details
type: STRING
description: |
Additional details about the insight in JSON format
schema:
fields:
- name: content
type: STRING
description: |
A struct of custom fields to explain the insight.
Example: "grantedPermissionsCount": "1000"
- name: observation_period
type: TIMESTAMP
description: |
Observation period that led to the insight. The source data used to
generate the insight ends at last_refresh_time and begins at
(last_refresh_time - observation_period).
- name: state_metadata
type: STRING
description: |
A map of metadata for the state, provided by user or automations systems.
- name: severity
type: STRING
description: |
Severity of the insight:
SEVERITY_UNSPECIFIED:
Default unspecified severity. Do not use directly.
LOW:
Lowest severity.
MEDIUM:
Second lowest severity.
HIGH:
Second highest severity.
CRITICAL:
Highest severity.
Consultas de ejemplo
Puedes usar las siguientes consultas de ejemplo para analizar los datos exportados.
Ver el ahorro de costes de las recomendaciones cuya duració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"
Ver la lista de roles de gestión de identidades y accesos sin usar
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REMOVE_ROLE"
Ver una lista de roles concedidos que deben sustituirse por roles más pequeños
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REPLACE_ROLE"
Ver 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)
Ver recomendaciones de proyectos de una carpeta específica
Esta consulta devuelve las carpetas principales hasta cinco niveles del proyecto.
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and "<folder_id>" in unnest(ancestors.folder_ids)
Ver recomendaciones de la última fecha disponible exportada hasta el momento
DECLARE max_date TIMESTAMP;
SET max_date = (
SELECT MAX(_PARTITIONTIME) FROM
`<project>.<dataset>.recommendations_export`
);
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE _PARTITIONTIME = max_date
Usar Hojas de cálculo para explorar datos de BigQuery
Como alternativa a la ejecución de consultas en BigQuery, puedes acceder, analizar, visualizar y compartir miles de millones de filas de datos de BigQuery desde tu hoja de cálculo con Hojas vinculadas, el nuevo conector de datos de BigQuery. Para obtener más información, consulta el artículo Empezar a utilizar datos de BigQuery en Hojas de cálculo de Google.
Configurar la exportación mediante la línea de comandos de BigQuery y la API REST
Obtener los permisos necesarios:
Puedes obtener los permisos de gestión de identidades y accesos necesarios a través de la Google Cloud consola o de la línea de comandos.
- Línea de comandos para cuentas de servicio
- Línea de comandos para usuarios:
Por ejemplo, para usar la línea de comandos y obtener el permiso recommender.resources.export a nivel de organización para la cuenta de servicio, haz lo siguiente:
gcloud organizations add-iam-policy-binding *<organization_id>* --member=serviceAccount:*<service_acct_name>*' --role='roles/recommender.exporter'
Registrar un proyecto en una fuente de datos de BigQuery
Datasource to use: 6063d10f-0000-2c12-a706-f403045e6250
Crea la exportación:
Usar la línea de comandos de BigQuery:
bq mk \ --transfer_config \ --project_id=project_id \ --target_dataset=dataset_id \ --display_name=name \ --params='parameters' \ --data_source=data_source \ --service_account_name=service_account_name
Donde:
- project_id es el ID del proyecto.
- dataset es el ID del conjunto de datos de destino de la configuración de transferencia.
- name es el nombre visible de la configuración de transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla fácilmente si necesitas modificarla más adelante.
- parameters contiene los parámetros de la configuración de transferencia creada en formato JSON. En el caso de BigQuery Export de recomendaciones y estadísticas, debe proporcionar el organization_id de las recomendaciones y las estadísticas que quiera exportar. Formato de los parámetros: '{"organization_id":"<org id>"}'
- data_source Fuente de datos que se va a usar: "6063d10f-0000-2c12-a706-f403045e6250"
- service_account_name es el nombre de la cuenta de servicio que se usa para autenticar tu exportación. La cuenta de servicio debe ser propiedad del mismo
project_id
que se usó para crear la transferencia y debe tener todos los permisos necesarios que se indican arriba.
Gestionar una exportación mediante la interfaz de usuario o la línea de comandos de BigQuery:
Nota: La exportación se ejecuta como el usuario que configuró la cuenta, independientemente de quién actualice la configuración de la exportación en el futuro. Por ejemplo, si la exportación se configura con una cuenta de servicio y, más adelante, un usuario humano actualiza la configuración de la exportación a través de la interfaz de usuario de BigQuery Data Transfer Service, la exportación seguirá ejecutándose como la cuenta de servicio. En este caso, la comprobación del permiso "recommender.resources.export" se realiza en la cuenta de servicio cada vez que se ejecuta la exportación.