Gestisci i suggerimenti vista materializzata

Questo documento descrive il funzionamento del motore per suggerimenti della vista materializzata. e mostra anche come visualizzare e applicare eventuali consigli sulla vista materializzata.

Introduzione

Il motore per suggerimenti della vista materializzata di BigQuery può aiutarti a migliorare le prestazioni dei carichi di lavoro e risparmiare sui costi di esecuzione. Questi consigli sono in base alle caratteristiche storiche di esecuzione delle query degli ultimi 30 giorni.

Le viste materializzate sono precalcolate visualizzazioni che memorizzano periodicamente nella cache i risultati di una query per migliorare le prestazioni ed efficienza. Le viste materializzate utilizzano l'ottimizzazione intelligente in modo trasparente riscrivere le query sulle tabelle di origine per utilizzare le viste materializzate esistenti in termini di prestazioni ed efficienza.

Come funziona il motore per suggerimenti

Il motore per suggerimenti genera quotidianamente suggerimenti per ogni progetto in esecuzione in BigQuery. I consigli si basano sull'analisi dell'esecuzione del carico di lavoro negli ultimi 30 giorni. La vista materializzata il motore per suggerimenti cerca pattern di query ripetitive e calcola eventuali risparmi che potrebbe essere effettuata se la sottoquery ripetitiva potesse essere spostata in una vista materializzata. Il motore per suggerimenti tiene conto di eventuali risparmi durante il tempo di esecuzione delle query e i costi di manutenzione della vista materializzata. Se questi elementi vengono combinati fattori mostrano un risultato positivo significativo, il motore per suggerimenti esegue il nostro consiglio.

Considera l'esempio di query seguente:

WITH revenue   AS
(SELECT l_suppkey as supplier_no,
        sum(l_extendedprice * (1 - l_discount)) as total_revenue
  FROM lineitem
  WHERE
    l_shipdate >= date '1996-01-01'
    AND l_shipdate < date_add(date '1996-01-01', interval 3 MONTH)
  GROUP BY l_suppkey)
SELECT s_suppkey,
      s_name,
      s_address,
      s_phone,
      total_revenue
FROM
supplier,
revenue
WHERE s_suppkey = supplier_no
AND total_revenue =
  (SELECT max(total_revenue)
    FROM revenue)
ORDER BY s_suppkey

Questo esempio di query mostra informazioni sul fornitore principale. La query contiene un'espressione di tabella comune (CTE) denominata revenue che rappresenta il totale entrate per ogni fornitore (l_suppkey). revenue è unito al fornitore a condizione che il valore total_revenue del fornitore corrisponda max(total_revenue) per tutti i fornitori. Di conseguenza, la query calcola informazioni (l_suppkey, s_name, s_address, s_phone, total_revenue) sul fornitore con le entrate totali massime.

L'intera query stessa è troppo complicata per essere inserita in una query vista materializzata. Tuttavia, la CTE di supplier è un'aggregazione su un singolo : un pattern di query supportato da materiali visualizzazioni. Il CTE supplier è anche la parte più costosa dal punto di vista del calcolo query. Pertanto, se la query di esempio è stata eseguita ripetutamente cambiando le tabelle di origine, il motore per suggerimenti della vista materializzata potrebbe suggerire visualizzazione della CTE di supplier in una vista materializzata. La vista materializzata suggerimento per la query di esempio precedente potrebbe essere simile al seguenti:

CREATE MATERIALIZED VIEW mv AS
SELECT l_suppkey as supplier_no,
         sum(l_extendedprice * (1 - l_discount)) as total_revenue
  FROM lineitem
  WHERE
    l_shipdate >= date '1996-01-01'
    AND l_shipdate < date_add(date '1996-01-01', interval 3 MONTH)
  GROUP BY l_suppkey

L'API Recommender restituisce inoltre informazioni sull'esecuzione delle query sotto forma di insight. Gli approfondimenti sono risultati che ti aiutano a comprendere il carico di lavoro del progetto, fornendo maggiore contesto sul modo in cui visualizza suggerimento può migliorare i costi del carico di lavoro.

Limitazioni

Prima di iniziare

Prima di poter visualizzare o applicare i consigli della vista materializzata, devi: abilitare l'API Recommender.

Autorizzazioni obbligatorie

Per ottenere le autorizzazioni necessarie per accedere ai suggerimenti della vista materializzata, chiedi all'amministratore di concederti Ruolo IAM Visualizzatore motore per suggerimenti vista materializzata BigQuery (roles/recommender.bigqueryMaterializedViewViewer). Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per accedere ai suggerimenti della vista materializzata. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per accedere ai suggerimenti vista materializzata sono necessarie le seguenti autorizzazioni:

  • recommender.bigqueryMaterializedViewRecommendations.get
  • recommender.bigqueryMaterializedViewRecommendations.list

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.

Per ulteriori informazioni su ruoli e autorizzazioni IAM in per BigQuery, consulta Introduzione a IAM.

Visualizza i suggerimenti sulle viste vista materializzata

Questa sezione descrive come visualizzare i suggerimenti sulle viste materializzate e insight utilizzando la console Google Cloud, Google Cloud CLI o l'API Recommender.

Seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Consigli.

    Fai clic su Consigli per visualizzare tutti i consigli.

  3. Si apre il riquadro Suggerimenti BigQuery. In Ottimizza i costi dei carichi di lavoro BigQuery, Fai clic su Visualizza dettagli.

    Visualizza i dettagli per vedere tutti i suggerimenti di BigQuery

  4. Viene visualizzato un elenco di consigli con tutti quelli generati per per il progetto attuale. Per visualizzare ulteriori informazioni su una specifica Visualizza il consiglio o l'approfondimento della tabella e fai clic su Dettagli.

In alternativa, puoi visualizzare tutti i suggerimenti disponibili per il tuo progetto o organizzazione facendo clic su Consigli nella barra di navigazione laterale.

gcloud

Per visualizzare suggerimenti della vista materializzata per un progetto specifico, utilizza Il comando gcloud recommender recommendations list:

gcloud recommender recommendations list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --recommender=google.bigquery.materializedview.Recommender \
    --format=FORMAT_TYPE \

Sostituisci quanto segue:

La seguente tabella descrive i campi importanti della risposta "recommendations":

Proprietà Pertinente per sottotipo Descrizione
recommenderSubtype CREATE_MATERIALIZED_VIEW Il tipo di suggerimento.
content.overview.sql CREATE_MATERIALIZED_VIEW Istruzione DDL suggerita che crea una vista materializzata.
content.overview.slotMsSavedMonthly CREATE_MATERIALIZED_VIEW Stima dei millisecondi di slot che verranno salvati mensilmente dalla visualizzazione suggerita.
content.overview.bytesSavedMonthly CREATE_MATERIALIZED_VIEW Stima dei byte analizzati che verranno salvati mensilmente dalla visualizzazione suggerita.
content.overview.baseTables CREATE_MATERIALIZED_VIEW Riservato per un uso futuro.

Per visualizzare gli insight che hanno richiesto suggerimenti sulla vista materializzata con gcloud CLI, utilizza Comando gcloud recommender insights list:

gcloud recommender insights list \
    --project=PROJECT_NAME \
    --location=REGION_NAME \
    --insight-type=google.bigquery.materializedview.Insight \
    --format=FORMAT_TYPE \

Sostituisci quanto segue:

La seguente tabella descrive i campi importanti della risposta dell'API Insights:

Proprietà Pertinente per sottotipo Descrizione
content.queryCount CREATE_MATERIALIZED_VIEW Numero di query nel periodo di osservazione con pattern ripetitivi che possono essere ottimizzati mediante la vista materializzata.

API REST

Per visualizzare suggerimenti della vista materializzata per un progetto specifico: utilizzare l'API REST. Con ciascun comando, devi fornire un metodo di autenticazione che puoi ottenere usando gcloud CLI. Per maggiori informazioni informazioni su come ottenere un token di autenticazione, consulta Metodi per ottenere un token ID.

Puoi utilizzare la richiesta curl list per visualizzare tutti i consigli per un progetto specifico:

$ curl
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/PROJECT_NAME/locations/LOCATION/recommenders/google.bigquery.materializedview.Recommender/recommendations

Sostituisci quanto segue:

  • PROJECT_NAME: il nome del progetto contenente la tabella BigQuery
  • LOCATION: la località in cui si trova il progetto individuarlo.
La seguente tabella descrive i campi importanti della risposta "recommendations":

Proprietà Pertinente per sottotipo Descrizione
recommenderSubtype CREATE_MATERIALIZED_VIEW Il tipo di suggerimento.
content.overview.sql CREATE_MATERIALIZED_VIEW Istruzione DDL suggerita che crea una vista materializzata.
content.overview.slotMsSavedMonthly CREATE_MATERIALIZED_VIEW Stima dei millisecondi di slot che verranno salvati mensilmente dalla visualizzazione suggerita.
content.overview.bytesSavedMonthly CREATE_MATERIALIZED_VIEW Stima dei byte analizzati che verranno salvati mensilmente dalla visualizzazione suggerita.
content.overview.baseTables CREATE_MATERIALIZED_VIEW Riservato per un uso futuro.

Per visualizzare gli insight che hanno richiesto suggerimenti sulla vista materializzata utilizzando REST esegui questo comando:

$ curl
-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "x-goog-user-project: PROJECT_NAME" https://recommender.googleapis.com/v1/projects/PROJECT_NAME/locations/LOCATION/insightTypes/google.bigquery.materializedview.Insight/insights

Sostituisci quanto segue:

  • PROJECT_NAME: il nome del progetto contenente la tabella BigQuery
  • LOCATION: la località in cui si trova il progetto individuarlo.
La seguente tabella descrive i campi importanti della risposta dell'API Insights:

Proprietà Pertinente per sottotipo Descrizione
content.queryCount CREATE_MATERIALIZED_VIEW Numero di query nel periodo di osservazione con pattern ripetitivi che possono essere ottimizzati mediante la vista materializzata.

Applica i suggerimenti vista materializzata

Puoi applicare un suggerimento per creare una vista materializzata eseguendo il comando istruzione DDL di tipo CREATE MATERIALIZED VIEW suggerita nella console Google Cloud.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Fai clic su Consigli.

    Fai clic su Consigli per visualizzare tutti i consigli.

  3. Si apre il riquadro Suggerimenti BigQuery. In Ottimizza i costi dei carichi di lavoro BigQuery, Fai clic su Visualizza dettagli.

    Visualizza i dettagli per vedere tutti i suggerimenti di BigQuery

  4. Viene visualizzato un elenco di consigli con tutti quelli generati per al progetto o all'organizzazione corrente, a seconda dell'ambito selezionato. Individua un vista materializzata e fai clic su Dettagli.

  5. Fai clic su Visualizza in BigQuery Studio. Si apre un editor SQL contenente CREATE MATERIALIZED VIEW Istruzione DDL.

  6. Nell'istruzione CREATE MATERIALIZED VIEW fornita, modifica il valore Segnaposto MATERIALIZED_VIEW con un nome di vista materializzata univoco.

  7. Esegui l'istruzione DDL CREATE MATERIALIZED VIEW per creare un'istruzione vista materializzata.

Risolvere i problemi relativi ai suggerimenti

Problema: non viene visualizzato alcun consiglio per una tabella specifica.

I suggerimenti delle viste materializzate potrebbero non essere mostrati sotto i seguenti circostanze:

  • Non sono stati trovati pattern di query ricorrenti tra i job di query eseguiti progetto.
  • I pattern di query ricorrenti non soddisfano le limitazioni per le viste materializzate incrementali e non possono essere inserite in una vista materializzata adatta per un'ottimizzazione intelligente.
  • La potenziale vista materializzata avrebbe un costo di manutenzione elevato. Ad esempio: le tabelle di origine vengono spesso modificate dal Data Manipulation Language (DML) operazioni, perciò una vista materializzata verrebbe aggiornata comporta ulteriori costi.
  • Non è disponibile un numero insufficiente di query con un ricorrente comune pattern.
  • Il risparmio mensile stimato è troppo trascurabile (meno di 1 slot).
  • I job di query eseguiti dal progetto utilizzano già le viste materializzate.

Prezzi

La visualizzazione non comporta alcun costo o impatto negativo sulle prestazioni dei carichi di lavoro personalizzati.

Quando applichi i suggerimenti creando viste materializzate, puoi incorrere in i costi di archiviazione, manutenzione e query. Per ulteriori informazioni, consulta i prezzi delle viste materializzate.