Esporta i suggerimenti in BigQuery

Panoramica

Con BigQuery Export puoi visualizzare snapshot giornalieri di suggerimenti per la tua organizzazione. utilizzando BigQuery Data Transfer Service. È possibile esportare i dati e i consigli seguenti:

Nome ID motore per suggerimenti
Motore per suggerimenti IAM google.iam.policy.Recommender
Motore per suggerimenti tipo di macchina VM google.compute.instance.MachineTypeRecommender
Motore per suggerimenti tipo di macchina del gruppo di istanze gestite google.compute.instanceGroupManager.MachineTypeRecommender
Motore per suggerimenti DP inattivo google.compute.disk.IdleResourceRecommender
Motore per suggerimenti VM inattive google.compute.instance.IdleResourceRecommender
Motore per suggerimenti immagine inattiva google.compute.image.IdleResourceRecommender
Motore per suggerimenti per gli indirizzi IP inattivi google.compute.address.IdleResourceRecommender
Motore per suggerimenti istanze Cloud SQL con provisioning eccessivo google.cloudsql.instance.OverprovisionedRecommender
Strumento per suggerimenti delle istanze inattive di Cloud SQL google.cloudsql.instance.IdleRecommender
Motore per suggerimenti di progetti non previsti google.resourcemanager.projectUtilization.Recommender
Strumento per suggerimenti di Cloud Run Service Identity google.run.service.IdentityRecommender
Informazioni sui costi di fatturazione Cloud google.costinsights.Insight

Prima di iniziare

Completa i seguenti passaggi prima di creare un trasferimento di dati per i consigli:

  • Consenti a BigQuery Data Transfer Service di gestire il trasferimento dei dati. Se utilizzi la UI web di 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.
    • Tutti i consigli vengono spostati in un set di dati negli Stati Uniti. Questo perché i set di dati sono attualmente supportati solo negli Stati Uniti.
    • 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.

Prezzi

L'esportazione dei suggerimenti in BigQuery è disponibile per tutti i clienti con motore per suggerimenti in base al livello di prezzo del motore per suggerimenti.

Autorizzazioni obbligatorie

Durante la configurazione del trasferimento dati, devi disporre delle seguenti autorizzazioni a livello di progetto in cui crei il trasferimento:

  • bigquery.transfers.update: consente di creare il trasferimento
  • bigquery.datasets.update: consente di aggiornare le azioni sul set di dati di destinazione
  • resourcemanager.projects.update: consente di selezionare un progetto in cui archiviare i dati di esportazione
  • pubsub.topics.list: consente di selezionare un argomento Pub/Sub per ricevere notifiche relative all'esportazione

La seguente autorizzazione è richiesta a livello di organizzazione. Questa organizzazione corrisponde a quella per cui è stata configurata l'esportazione.

  • recommender.resources.export: consente di esportare i suggerimenti in BigQuery

Concedi le autorizzazioni

Nel progetto in cui crei il trasferimento dei dati devi concedere i seguenti ruoli:

    Per consentire la creazione di azioni di trasferimento e aggiornamento sul set di dati di destinazione, devi concedere il seguente ruolo:

  • Ruolo Amministratore BigQuery - roles/bigquery.admin
  • Esistono più ruoli che contengono autorizzazioni per selezionare un progetto per l'archiviazione dei dati di esportazione e selezionare un argomento Pub/Sub per ricevere notifiche. Per rendere disponibili entrambe le autorizzazioni, puoi concedere il seguente ruolo:

  • Ruolo Proprietario progetto - roles/owner

Devi concedere il seguente ruolo a livello di organizzazione:

  • Recommendations Exporter (roles/recommender.exporter) su Google Cloud Console.

Puoi anche creare ruoli personalizzati contenenti le autorizzazioni richieste.

Creare un trasferimento di dati per i consigli

  1. Accedi a Google Cloud Console.

    Accedi alla console

  2. Nella schermata Home, fai clic sulla scheda Consigli.

  3. Fai clic su Esporta per visualizzare il modulo BigQuery Export.

  4. Seleziona un progetto di destinazione per archiviare i dati dei consigli e fai clic su Avanti.

  5. 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.

  6. Nel modulo Configura trasferimento, inserisci i seguenti dettagli:

    • Nella sezione Nome configurazione trasferimento, in Nome visualizzato, inserisci un nome per il trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consente di identificare facilmente il trasferimento se hai bisogno di modificarlo in un secondo momento.

    • Nella sezione Pianifica opzioni, per Programma, lascia il valore predefinito (Inizia ora) o fai clic su Inizia a un'ora impostata.

      • In Ripetizioni, scegli un'opzione per la frequenza di trasferimento.

        • Giornaliera (impostazione predefinita)
        • Ogni settimana
        • Ogni mese
        • Personalizzato
        • On demand
      • In Data di inizio e ora di esecuzione, inserisci la data e l'ora di inizio per il trasferimento. Se scegli Inizia ora, questa opzione viene disattivata.

    • Nella sezione Impostazioni destinazione, per Set di dati di destinazione, scegli l'ID del set di dati che hai creato per archiviare i tuoi dati.

    • Nella sezione Dettagli origine dati:

      • Il valore predefinito di organization_id è l'organizzazione per la quale stai visualizzando i consigli. Se vuoi esportare i consigli in un'altra organizzazione, puoi modificare l'impostazione nella console nel visualizzatore dell'organizzazione.

    • (Facoltativo) Nella sezione Opzioni di notifica:

      • Fai clic sul pulsante per attivare le notifiche via email. Quando abiliti questa opzione, l'amministratore del trasferimento riceve una notifica via email quando un'operazione di trasferimento non va a buon fine.
      • 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 Pub/Sub per il trasferimento.

  7. Fai clic su Crea per creare il trasferimento.

  8. Fai clic su Consenti nella finestra popup del consenso.

  9. Una volta creato il trasferimento, verrai reindirizzato all'hub dei suggerimenti. Puoi fare clic sul link per accedere ai dettagli della configurazione del trasferimento. In alternativa, puoi accedere ai trasferimenti procedendo come segue:

    • Vai alla pagina BigQuery nella console.

      Vai alla pagina BigQuery

    • Fai clic su Trasferimenti di dati. Puoi visualizzare tutti i trasferimenti di dati disponibili.

Visualizzare la cronologia di esecuzione di un trasferimento

Per visualizzare la cronologia delle esecuzioni di un trasferimento:

  1. Vai alla pagina BigQuery nella console.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti di dati. Puoi visualizzare tutti i trasferimenti di dati disponibili.

  3. Fai clic sul trasferimento appropriato nell'elenco.

  4. Nell'elenco dei trasferimenti eseguiti, nella scheda RUN HISTORY (Cronologia esecuzioni), seleziona il trasferimento per cui vuoi visualizzare i dettagli.

  5. Viene visualizzato il riquadro Dettagli esecuzione per la singola esecuzione della corsa selezionata. Alcuni dei possibili dettagli di esecuzione visualizzati sono:

    • Trasferimento differito 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 in seguito pianificare un backfill.

Quando vengono esportati i dati?

Quando crei un trasferimento di dati, sono necessari due giorni prima che si verifichi la prima esportazione. In seguito, i job di esportazione vengono eseguiti ogni giorno. Si applicano le seguenti condizioni:

  • Il job di esportazione giornaliero esporta i dati del giorno precedente nel set di dati BigQuery.
  • Il job di esportazione giornaliero non viene eseguito fino a quando non sono disponibili i dati del giorno precedente. Questo può comportare piccole variazioni dell'ora del giorno in cui il set di dati viene aggiornato.

Visualizzare le tabelle per un trasferimento

Quando esporti i suggerimenti in BigQuery, il set di dati contiene due tabelle partizionate per data:

  • suggerimenti_esportazione
  • esportazione_approfondimento

Per maggiori dettagli su tabelle e schema, vedi Creare e utilizzare tabelle e Specificare uno schema.

Per visualizzare le tabelle di un trasferimento di dati:

  1. Vai alla pagina BigQuery nella console.
    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti di dati. Puoi visualizzare tutti i trasferimenti di dati disponibili.

  3. Fai clic sul trasferimento appropriato nell'elenco.

  4. Fai clic sulla scheda CONFIGURAZIONE e poi sul set di dati.

  5. Nel riquadro Explorer, 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 suggerimenti relativi a una data già trascorsa (data successiva a quella in cui l'organizzazione ha attivato l'esportazione) possono essere esportati pianificando un backfill. Per pianificare un backfill, procedi nel seguente modo:

  1. Vai alla pagina BigQuery nella console.

    Vai alla pagina BigQuery

  2. Fai clic su Trasferimenti di dati.

  3. Nella pagina Trasferimenti, fai clic su un trasferimento appropriato nell'elenco.

    1. Fai clic su Pianifica backfill.

    2. Nella finestra di dialogo Pianifica backfill, scegli la Data di inizio e la Data di fine.

Per ulteriori informazioni sull'utilizzo dei trasferimenti, vedi Utilizzo dei trasferimenti.

Esempi di query

Puoi utilizzare le seguenti query di esempio per analizzare i dati esportati.

Visualizzazione dei risparmi sui costi per i consigli in cui viene visualizzata la durata del consiglio 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"

Visualizzazione dell'elenco di 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)

Visualizzazione dei consigli per progetti che appartengono a una cartella specifica

Questa query restituisce le cartelle principali fino a cinque livelli del progetto.

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

Utilizzare Fogli per esplorare i dati BigQuery

In alternativa all'esecuzione di query su BigQuery, puoi accedere a, analizzare, visualizzare e condividere miliardi di righe di dati di BigQuery dal tuo foglio di lavoro con Fogli connessi, il nuovo connettore dati di BigQuery. Per ulteriori informazioni, consulta la guida introduttiva ai dati di BigQuery in Fogli Google.

Configurare l'esportazione utilizzando la riga di comando BigQuery e AMP

  • Ottieni le autorizzazioni necessarie:

    Puoi ottenere le autorizzazioni necessarie per Identity and Access Management tramite la console di Google Cloud o la riga di comando.

    Ad esempio, per utilizzare la riga di comando per ottenere l'autorizzazionerecommender.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'

  • Creare set di dati e abilitare l'API BigQuery

  • Registra il progetto nell'origine dati BigQuery

    Datasource to use: 6063d10f-0000-2c12-a706-f403045e6250

  • Crea l'esportazione:

    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 per la configurazione del trasferimento. Il nome del trasferimento può essere qualsiasi valore che ti consente di identificare facilmente il trasferimento in caso di modifiche in un secondo momento.
    • parameters contiene i parametri per la configurazione del trasferimento creata in formato JSON. Per i suggerimenti e gli approfondimenti BigQuery Export, devi fornire l'ID organizzazione per il quale devono essere esportati i suggerimenti e gli approfondimenti. Formato parametri: '{"organization_id":"<org id>"}'
    • data_source Origine dati da utilizzare: '6063d10f-0000-2c12-a706-f403045e6250'
    • service_account_name è il nome dell'account di servizio utilizzato per autenticare l'esportazione. L'account di servizio deve essere di proprietà dello stesso project_id utilizzato per la creazione del trasferimento e deve disporre di tutte le autorizzazioni richieste elencate sopra.
  • Gestire un'esportazione esistente tramite UI o riga di comando BigQuery:

  • Nota: l'esportazione viene eseguita come l'utente che ha configurato l'account, indipendentemente da chi aggiorna la configurazione dell'esportazione in futuro. Ad esempio, se l'esportazione è configurata utilizzando un account di servizio e in seguito un utente umano aggiorna la configurazione tramite l'interfaccia utente di BigQuery Data Transfer Service, l'esportazione continuerà a essere eseguita come account di servizio. Il controllo delle autorizzazioni per 'recommender.resources.export' in questo caso viene eseguito per l'account di servizio ogni volta che viene eseguita l'esportazione.