Gestire i suggerimenti sulle viste materializzate
Questo documento descrive il funzionamento del consigliatore delle viste materializzate e mostra anche come visualizzare e applicare eventuali consigli per le viste materializzate.
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 viste predefinite che memorizzano nella cache i risultati di una query periodicamente per migliorare le prestazioni e l'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 recommender
Il recommender genera consigli giornalieri per ogni progetto che esegue job di query in BigQuery. I consigli si basano sull'analisi dell'esecuzione del carico di lavoro negli ultimi 30 giorni. Il recommender delle visualizzazioni materializzate cerca pattern di query ripetitivi e calcola gli eventuali risparmi che potrebbero essere realizzati se la sottoquery ripetitiva potesse essere spostata in una visualizzazione materializzata incrementale. 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 un consiglio per i nostri esperti.
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 tabella comune (CTE) denominata revenue
che rappresenta le entrate
totali per ogni fornitore (l_suppkey
). revenue
viene unito alla tabella fornitore
a condizione che total_revenue
del fornitore corrisponda
max(total_revenue)
in 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 è troppo complicata per essere inserita in una vista materializzata incrementale. 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 su tabelle di origine in costante
variazione, il consigliatore di visualizzazioni materializzate potrebbe suggerire di inserire la CTE supplier
in una visualizzazione 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 anche informazioni sull'esecuzione delle query sotto forma di approfondimenti. 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
- Il Recommender delle viste materializzate non supporta la procedura standard per disattivare l'elaborazione dei dati. Per interrompere ricevere consigli vista materializzata, segui le istruzioni Modulo di registrazione pre-GA a Gemini in BigQuery
- I suggerimenti vista materializzata non possono essere esportati in BigQuery.
Prima di iniziare
Prima di poter visualizzare o applicare i suggerimenti sulle viste materializzate, 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 a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per accedere ai consigli sulle visualizzazioni materializzate. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
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 saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Introduzione a IAM.
Visualizzare i suggerimenti sulle viste materializzate
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
Nella console Google Cloud, vai alla pagina BigQuery.
Fai clic su
Consigli.Viene visualizzato il riquadro Suggerimenti di BigQuery. In Ottimizza i costi dei carichi di lavoro BigQuery, fai clic su Visualizza dettagli.
Viene visualizzato un elenco di consigli che mostra tutti i consigli generati per il progetto corrente. 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 consigli disponibili per il tuo progetto o la tua organizzazione facendo clic su Consigli nel menu di navigazione laterale.
gcloud
Per visualizzare i suggerimenti sulle viste materializzate 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:
PROJECT_NAME
: il nome del progetto che esegue job di queryREGION_NAME
: la regione in cui vengono eseguiti i job di queryFORMAT_TYPE
: un formato di output dell'interfaccia a riga di comando gcloud supportato, ad esempio JSON
Proprietà | Pertinente per il sottotipo | Descrizione |
---|---|---|
recommenderSubtype |
CREATE_MATERIALIZED_VIEW |
Il tipo di consiglio. |
content.overview.sql |
CREATE_MATERIALIZED_VIEW |
Istruzione DDL suggerita che crea una vista materializzata. |
content.overview.slotMsSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Milisecondi di slot stimati da risparmiare mensilmente in base alla visualizzazione suggerita. |
content.overview.bytesSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Byte analizzati stimati da salvare mensilmente in base alla visualizzazione suggerita. |
content.overview.baseTables |
CREATE_MATERIALIZED_VIEW |
Riservato per uso futuro. |
- Per ulteriori informazioni sugli altri campi della risposta
recommendations
, consulta la sezione Risorsa REST:projects.locations.recommenders.recommendation
. - Per ulteriori informazioni sull'utilizzo dell'API Recommender, consulta Utilizzo dell'API - Suggerimenti.
Per visualizzare gli approfondimenti che hanno generato i consigli sulle viste materializzate
utilizzando l'interfaccia a riga di comando gcloud, utilizza il
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:
PROJECT_NAME
: il nome del progetto che esegue job di queryREGION_NAME
: la regione in cui vengono eseguiti i job di queryFORMAT_TYPE
: un formato di output dell'interfaccia a riga di comando gcloud supportato, ad esempio JSON
Proprietà | Pertinente per il 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. |
- Per maggiori informazioni su altri campi nella risposta degli insight, consulta Risorsa REST:
projects.locations.insightTypes.insights
. - Per saperne di più sull'utilizzo degli insight, consulta Utilizzo dell'API: insight.
API REST
Per visualizzare i suggerimenti per le viste materializzate per un progetto specifico, utilizza 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 BigQueryLOCATION
: la posizione in cui si trova il progetto.
Proprietà | Pertinente per il sottotipo | Descrizione |
---|---|---|
recommenderSubtype |
CREATE_MATERIALIZED_VIEW |
Il tipo di consiglio. |
content.overview.sql |
CREATE_MATERIALIZED_VIEW |
Istruzione DDL suggerita che crea una vista materializzata. |
content.overview.slotMsSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Milisecondi di slot stimati da risparmiare mensilmente in base alla visualizzazione suggerita. |
content.overview.bytesSavedMonthly |
CREATE_MATERIALIZED_VIEW |
Byte analizzati stimati da salvare mensilmente in base alla visualizzazione suggerita. |
content.overview.baseTables |
CREATE_MATERIALIZED_VIEW |
Riservato per uso futuro. |
- Per ulteriori informazioni sugli altri campi della risposta
recommendations
, consulta la sezione Risorsa REST:projects.locations.recommenders.recommendation
. - Per saperne di più sull'utilizzo dell'API Recommender, consulta Utilizzo dell'API - Suggerimenti.
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 BigQueryLOCATION
: la posizione in cui si trova il progetto.
Proprietà | Pertinente per il sottotipo | Descrizione |
---|---|---|
content.queryCount |
CREATE_MATERIALIZED_VIEW |
Numero di query nel periodo di osservazione con pattern ripetitivi che possono essere ottimizzati utilizzando la vista materializzata. |
- Per ulteriori informazioni sugli altri campi nella risposta degli approfondimenti, consulta Risorsa REST:
projects.locations.insightTypes.insights
. - Per saperne di più sull'utilizzo degli approfondimenti, consulta Utilizzo dell'API - Approfondimenti.
Visualizza i consigli con INFORMATION_SCHEMA
Puoi anche visualizzare consigli e approfondimenti utilizzando INFORMATION_SCHEMA
visualizzazioni. Ad esempio, puoi utilizzare la vista INFORMATION_SCHEMA.RECOMMENDATIONS
per
visualizza i tre consigli principali in base al risparmio degli slot, come mostrato in
nell'esempio seguente:
+---------------------------------------------------+--------------------------------------------------------------------------------------------------+ | recommender | target_resources | est_gb_saved_monthly | slot_hours_saved_monthly | last_updated_time +---------------------------------------------------+--------------------------------------------------------------------------------------------------+ | google.bigquery.materializedview.Recommender | ["project_resource"] | 140805.38289248943 | 9613.139166666666 | 2024-07-01 13:00:00 | google.bigquery.table.PartitionClusterRecommender | ["table_resource_1"] | 4393.7416711859405 | 56.61476777777777 | 2024-07-01 13:00:00 | google.bigquery.table.PartitionClusterRecommender | ["table_resource_2"] | 3934.07264107652 | 10.499466666666667 | 2024-07-01 13:00:00 +---------------------------------------------------+--------------------------------------------------------------------------------------------------+
Per maggiori informazioni, consulta le seguenti risorse:
- Visualizzazione
INFORMATION_SCHEMA.RECOMMENDATIONS
- Visualizzazione
INFORMATION_SCHEMA.RECOMMENDATIONS_BY_ORGANIZATION
- Visualizzazione
INFORMATION_SCHEMA.INSIGHTS
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.
Nella console Google Cloud, vai alla pagina BigQuery.
Fai clic su
Consigli.Viene visualizzato il riquadro Suggerimenti di BigQuery. In Ottimizza i costi dei carichi di lavoro BigQuery, fai clic su Visualizza dettagli.
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.
Fai clic su Visualizza in BigQuery Studio. Si apre un editor SQL contenente un'
CREATE MATERIALIZED VIEW
istruzione DDL.Nell'istruzione
CREATE MATERIALIZED VIEW
fornita, modifica il valore SegnapostoMATERIALIZED_VIEW
con un nome di vista materializzata univoco.Esegui l'istruzione DDL
CREATE MATERIALIZED VIEW
per creare una vista materializzata consigliata.
Risolvere i problemi relativi ai suggerimenti
Problema: non vengono visualizzati consigli 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 i limiti per le visualizzazioni materializzate incrementali e non possono essere inseriti in una visualizzazione materializzata adatta per l'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, quindi una vista materializzata subirebbe un aggiornamento completo, comporta ulteriori costi.
- Non è presente un numero sufficiente di query con un pattern ricorrente comune.
- I risparmi mensili stimati sono troppo insignificanti (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 consigli creando viste materializzate, potresti dover sostenere costi di archiviazione, manutenzione e query. Per ulteriori informazioni, consulta i prezzi delle viste materializzate.