Esportare i suggerimenti in BigQuery
Panoramica
Con l'esportazione BigQuery, puoi visualizzare snapshot giornalieri dei consigli per la tua organizzazione. Questa operazione viene eseguita utilizzando BigQuery Data Transfer Service. Consulta questo documento per scoprire quali sistemi di raccomandazione sono inclusi in BigQuery Export oggi.
Prima di iniziare
Completa i seguenti passaggi prima di creare un trasferimento di dati per i consigli:
- Consenti l'autorizzazione BigQuery Data Transfer Service per gestire il trasferimento dei dati. Se
utilizzi l'interfaccia web BigQuery per creare il trasferimento, devi consentire
i popup di
console.cloud.google.com
nel browser per poter visualizzare le autorizzazioni. Per maggiori dettagli, vedi Abilitare BigQuery Data Transfer Service. - Crea un
set di dati BigQuery per archiviare i dati.
- Il trasferimento dei dati utilizza la stessa regione in cui viene creato il set di dati. La località è immutabile una volta creati il set di dati e il trasferimento.
- Il set di dati conterrà approfondimenti e consigli di tutte le regioni del mondo. Pertanto, questa operazione aggregherebbe tutti questi dati in una regione globale durante il processo. Per eventuali dubbi sulla residenza dei dati, consulta l'assistenza clienti Google Cloud.
- Se la posizione del set di dati è stata lanciata di recente, potrebbe verificarsi un ritardo nella disponibilità dei dati di esportazione iniziali.
Prezzi
L'esportazione dei suggerimenti in BigQuery è disponibile per tutti i clienti del motore per suggerimenti in base al livello di prezzo del motore per suggerimenti.
Autorizzazioni obbligatorie
Durante la configurazione del trasferimento dei dati, sono necessarie le seguenti autorizzazioni a livello di progetto in cui crei un trasferimento dei dati:
bigquery.transfers.update
: ti consente di creare il trasferimentobigquery.datasets.update
: consente di aggiornare le azioni sul set di dati di destinazioneresourcemanager.projects.update
: consente di selezionare un progetto in cui archiviare i dati di esportazionepubsub.topics.list
: consente di selezionare un argomento Pub/Sub per ricevere notifiche sull'esportazione
È richiesta la seguente autorizzazione a livello di organizzazione. Questa organizzazione corrisponde a quella per cui viene configurata l'esportazione.
recommender.resources.export
- Consente di esportare i suggerimenti in BigQuery
Per esportare i prezzi negoziati per i consigli sul risparmio sui costi sono necessarie le seguenti autorizzazioni:
billing.resourceCosts.get at project level
: consente di esportare i prezzi negoziati per i consigli a livello di progettobilling.accounts.getSpendingInformation at billing account level
: consente di esportare i prezzi negoziati per i consigli a livello di account di fatturazione
Senza queste autorizzazioni, i consigli per il risparmio sui costi verranno esportati con prezzi standard anziché prezzi negoziati.
Concedi le autorizzazioni
I seguenti ruoli devono essere concessi nel progetto in cui crei il trasferimento di dati:
- Ruolo Amministratore BigQuery:
roles/bigquery.admin
- Ruolo Project owner -
roles/owner
- Ruolo Proprietario progetto -
roles/owner
- Ruolo Visualizzatore progetto:
roles/viewer
- Ruolo di Editor progetto -
roles/editor
- Ruolo Amministratore account di fatturazione:
roles/billing.admin
- Ruolo Billing Account Costs Manager:
roles/billing.costsManager
- Ruolo Visualizzatore account di fatturazione -
roles/billing.viewer
Per consentirti di creare un trasferimento e aggiornare le azioni sul set di dati di destinazione, devi concedere il seguente ruolo:
Esistono più ruoli che contengono autorizzazioni per selezionare un progetto per l'archiviazione dei dati di esportazione e per selezionare un argomento Pub/Sub per ricevere notifiche. Per avere a disposizione entrambe queste autorizzazioni, puoi concedere il seguente ruolo:
Esistono più ruoli che contengono l'autorizzazione billing.resourceCosts.get per esportare i prezzi negoziati per i consigli a livello di progetto per il risparmio sui costi. Puoi concedere uno qualsiasi di questi ruoli:
Esistono più ruoli che contengono l'autorizzazione billing.accounts.getSpendingInformation per esportare i prezzi negoziati per i consigli a livello di account di fatturazione per il risparmio sui costi. Puoi concederne uno qualsiasi:
Devi concedere il seguente ruolo a livello di organizzazione:
- Ruolo Recommendations Exporter (
roles/recommender.exporter
) nella console Google Cloud .
Puoi anche creare ruoli personalizzati contenenti le autorizzazioni richieste.
Crea un trasferimento dati per i consigli
Accedi alla console Google Cloud .
Dalla schermata Home, fai clic sulla scheda Consigli.
Fai clic su Esporta per visualizzare il modulo di esportazione BigQuery.
Seleziona un progetto di destinazione in cui archiviare i dati dei consigli e fai clic su Avanti.
Fai clic su Abilita API per abilitare le API BigQuery per l'esportazione. Il completamento dell'operazione può richiedere diversi secondi. Al termine, fai clic su Continua.
Nel modulo Configura trasferimento, fornisci i seguenti dettagli:
Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare facilmente il trasferimento se devi modificarlo in un secondo momento.
Nella sezione Opzioni di pianificazione, per Pianifica, lascia il valore predefinito (Inizia ora) o fai clic su Inizia a un'ora specifica.
Per Si ripete, scegli un'opzione per la frequenza con cui eseguire il trasferimento.
- Ogni giorno (impostazione predefinita)
- Ogni settimana
- Ogni mese
- Personalizzato
- On demand
Per Data di inizio e ora di esecuzione, inserisci la data e l'ora di inizio del trasferimento. Se scegli Inizia ora, questa opzione è disabilitata.
Nella sezione Impostazioni destinazione, per Set di dati di destinazione, scegli l'ID set di dati che hai creato per archiviare i dati.
Nella sezione Dettagli origine dati:
Il valore predefinito per organization_id è l'organizzazione per cui stai visualizzando i suggerimenti. Se vuoi esportare i consigli in un'altra organizzazione, puoi modificare questa impostazione nella parte superiore della console nel visualizzatore dell'organizzazione.
(Facoltativo) Nella sezione Opzioni di notifica:
- Fai clic sul pulsante di attivazione/disattivazione per abilitare le notifiche via email. Quando attivi questa opzione, l'amministratore del trasferimento riceve una notifica via email quando l'esecuzione di un trasferimento non riesce.
- In Seleziona un argomento Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione configura l'esecuzione delle notifiche di Pub/Sub in relazione al trasferimento.
Fai clic su Crea per creare il trasferimento.
Fai clic su Consenti nel popup del consenso.
Una volta creata la richiesta di trasferimento, tornerai ad Active Assist. Puoi fare clic sul link per accedere ai dettagli della configurazione del trasferimento. In alternativa, puoi accedere ai trasferimenti nel seguente modo:
Vai alla pagina BigQuery nella console Google Cloud .
Fai clic su Trasferimenti di dati. Puoi visualizzare tutti i trasferimenti di dati disponibili.
Visualizzare la cronologia delle esecuzioni di un trasferimento
Per visualizzare la cronologia delle esecuzioni di un trasferimento:
Vai alla pagina BigQuery nella console Google Cloud .
Fai clic su Trasferimenti di dati. Puoi visualizzare tutti i trasferimenti di dati disponibili.
Fai clic sul trasferimento appropriato nell'elenco.
Nell'elenco dei trasferimenti delle corse visualizzato nella scheda CRONOLOGIA CORSE, seleziona il trasferimento di cui vuoi visualizzare i dettagli.
Viene visualizzato il riquadro Dettagli corsa per il trasferimento della singola corsa selezionata. Alcuni dei possibili dettagli della corsa visualizzati sono:
- Trasferimento posticipato a causa di dati di origine non disponibili.
- Job che indica il numero di righe esportate in una tabella
- Autorizzazioni mancanti per un'origine dati che devi concedere e per cui devi pianificare un backfill in un secondo momento.
Quando vengono esportati i dati?
Quando crei un trasferimento di dati, la prima esportazione avviene dopo due giorni. Dopo la prima esportazione, i job di esportazione vengono eseguiti alla cadenza richiesta al momento della configurazione. Si applicano le seguenti condizioni:
Il job di esportazione per un giorno specifico (D) esporta i dati di fine giornata (D) nel tuo set di dati BigQuery, operazione che in genere termina entro la fine del giorno successivo (D+1). Il job di esportazione viene eseguito nel fuso orario PST e potrebbe sembrare che abbia un ritardo aggiuntivo per altri fusi orari.
Il job di esportazione giornaliera non viene eseguito finché non sono disponibili tutti i dati da esportare. Ciò può comportare variazioni e talvolta ritardi nel giorno e nell'ora in cui viene aggiornato il set di dati. Pertanto, è meglio utilizzare l'ultimo snapshot disponibile dei dati piuttosto che avere una dipendenza sensibile alla data da tabelle con date specifiche.
Il job di esportazione trasferisce gli ultimi dati disponibili per regione, il che significa che potrebbe esserci una differenza nell'ultima data per cui sono disponibili i consigli per le diverse regioni.
Messaggi di stato comuni in un'esportazione
Scopri di più sui messaggi di stato comuni che puoi visualizzare durante l'esportazione dei suggerimenti in BigQuery.
L'utente non dispone dell'autorizzazione richiesta
Quando l'utente non dispone dell'autorizzazione richiesta, viene visualizzato il seguente messaggio: recommender.resources.export
. Verrà visualizzato il seguente messaggio:
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
Per risolvere il problema, concedi il ruolo IAM roles/recommender.exporter
a user/service account
che configura l'esportazione a livello di organizzazione per l'organizzazione per cui è stata configurata l'esportazione. Può essere fornito tramite i comandi gcloud riportati di seguito:
In caso di utente:
gcloud organizations add-iam-policy-binding *<organization_id>* --member='user:*<user_name>*' --role='roles/recommender.exporter'
In caso di account di servizio:
gcloud organizations add-iam-policy-binding *<organization_id>* --member='serviceAccount:*<service_acct_name>*' --role='roles/recommender.exporter'
Trasferimento posticipato perché i dati di origine non sono disponibili
Il seguente messaggio viene visualizzato quando il trasferimento viene riprogrammato perché i dati di origine non sono ancora disponibili. Non si tratta di un errore. Significa che le pipeline di esportazione non sono ancora state completate per la giornata. Il trasferimento verrà eseguito di nuovo al nuovo orario pianificato e avrà esito positivo una volta completate le pipeline di esportazione. Verrà visualizzato il seguente messaggio:
Transfer deferred due to source data not being available
Dati di origine non trovati
Il seguente messaggio viene visualizzato quando le pipeline F1toPlacer sono state completate, ma non sono stati trovati consigli o approfondimenti per l'organizzazione per cui è stata configurata l'esportazione. Verrà visualizzato il seguente messaggio:
Source data not found for 'recommendations_export$<date>'insights_export$<date>
Questo messaggio viene visualizzato per i seguenti motivi:
- L'utente ha configurato l'esportazione meno di due giorni fa. La guida per i clienti comunica ai clienti che l'esportazione sarà disponibile dopo un giorno.
- Non sono disponibili suggerimenti o approfondimenti per la loro organizzazione per il giorno specifico. Potrebbe trattarsi del caso reale o le pipeline potrebbero essere state eseguite prima che tutte le raccomandazioni o gli approfondimenti fossero disponibili per la giornata.
Visualizzare le tabelle per un trasferimento
Quando esporti i suggerimenti in BigQuery, il set di dati contiene due tabelle partizionate per data:
- recommendations_export
- insight_export
Per maggiori dettagli su tabelle e schema, vedi Creare e utilizzare tabelle e Specificare uno schema.
Per visualizzare le tabelle per un trasferimento di dati:
Vai alla pagina BigQuery nella console Google Cloud . Vai alla pagina BigQuery
Fai clic su Trasferimenti di dati. Puoi visualizzare tutti i trasferimenti di dati disponibili.
Fai clic sul trasferimento appropriato nell'elenco.
Fai clic sulla scheda CONFIGURAZIONE e poi sul set di dati.
Nel riquadro Spazio di esplorazione, espandi il progetto e seleziona un set di dati. La descrizione e i dettagli vengono visualizzati nel riquadro dei dettagli. Le tabelle di un set di dati sono elencate con il nome del set di dati nel riquadro Explorer.
Pianificare un backfill
I consigli per una data nel passato (successiva alla data in cui l'organizzazione ha attivato l'esportazione) possono essere esportati pianificando un backfill. Per pianificare un backfill:
Vai alla pagina BigQuery nella console Google Cloud .
Fai clic su Trasferimenti di dati.
Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.
Fai clic su Pianifica riempimento.
Nella finestra di dialogo Pianifica riempimento, scegli la data di inizio e la data di fine.
Per ulteriori informazioni su come utilizzare i trasferimenti, consulta Utilizzo dei trasferimenti.
Schema di esportazione
Tabella Esportazione consigli:
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.
Tabella Esportazione approfondimenti:
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.
Esempi di query
Puoi utilizzare le seguenti query di esempio per analizzare i dati esportati.
Visualizzazione del risparmio sui costi per i suggerimenti in cui la durata del suggerimento è visualizzata in giorni
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"
Visualizzare l'elenco dei ruoli IAM inutilizzati
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REMOVE_ROLE"
Visualizzazione di un elenco di ruoli concessi che devono essere sostituiti da ruoli più piccoli
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and recommender = "google.iam.policy.Recommender"
and recommender_subtype = "REPLACE_ROLE"
Visualizzare gli approfondimenti per un consiglio
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)
Visualizzare i consigli per i progetti appartenenti a una cartella specifica
Questa query restituisce le cartelle padre fino a cinque livelli dal progetto.
SELECT *
FROM `<project>.<dataset>.recommendations_export`
WHERE DATE(_PARTITIONTIME) = "<date>"
and "<folder_id>" in unnest(ancestors.folder_ids)
Visualizzazione dei consigli per l'ultima data disponibile esportata finora
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
Utilizzare Fogli per esplorare i dati BigQuery
In alternativa all'esecuzione di query su BigQuery, puoi accedere, analizzare, visualizzare e condividere miliardi di righe di dati BigQuery dal tuo foglio di lavoro con Fogli connessi, il nuovo connettore dati di BigQuery. Per ulteriori informazioni, consulta Iniziare a utilizzare i dati BigQuery in Fogli Google.
Configurare l'esportazione utilizzando la riga di comando di BigQuery e l'API REST
Ottieni le autorizzazioni richieste:
Puoi ottenere le autorizzazioni Identity and Access Management richieste tramite la console o la riga di comandoGoogle Cloud .
- Riga di comando per i service account
- Riga di comando per gli utenti:
Ad esempio, per utilizzare la riga di comando per ottenere l'autorizzazione recommender.resources.export a livello di organizzazione per l'account di servizio:
gcloud organizations add-iam-policy-binding *<organization_id>* --member=serviceAccount:*<service_acct_name>*' --role='roles/recommender.exporter'
Registrare il progetto nell'origine dati BigQuery
Datasource to use: 6063d10f-0000-2c12-a706-f403045e6250
Crea l'esportazione:
Utilizzo della riga di comando 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
Dove:
- project_id è l'ID progetto.
- dataset è l'ID del set di dati di destinazione per la configurazione del trasferimento.
- name è il nome visualizzato della configurazione di trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare facilmente il trasferimento se devi modificarlo in un secondo momento.
- parameters contiene i parametri per la configurazione del trasferimento creata in formato JSON. Per l'esportazione BigQuery di suggerimenti e approfondimenti, devi fornire l'organization_id per cui devono essere esportati suggerimenti e approfondimenti. Formato dei parametri: '{"organization_id":"<org id>"}'
- data_source Origine dati da utilizzare: "6063d10f-0000-2c12-a706-f403045e6250"
- service_account_name è il nome account di servizio utilizzato per
autenticare l'esportazione. Il account di servizio deve
essere di proprietà dello stesso
project_id
utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste elencate sopra.
Gestisci un'esportazione esistente tramite l'interfaccia utente o la riga di comando BigQuery:
Nota: l'esportazione viene eseguita come utente che ha configurato l'account, indipendentemente da chi aggiornerà la configurazione dell'esportazione in futuro. Ad esempio, se l'esportazione è configurata utilizzando un account di servizio e in un secondo momento un utente umano aggiorna la configurazione dell'esportazione tramite l'interfaccia utente di BigQuery Data Transfer Service, l'esportazione continuerà a essere eseguita come account di servizio. In questo caso, il controllo dell'autorizzazione "recommender.resources.export" viene eseguito per l'account di servizio ogni volta che viene eseguita l'esportazione.