Introducció
Les vistes materialitzades són una característica poderosa de BigQuery que permet emmagatzemar els resultats d'una consulta de manera persistent. Això pot millorar significativament el rendiment de les consultes, especialment per a dades que no canvien freqüentment. En aquesta secció, aprendrem què són les vistes materialitzades, com crear-les, i com utilitzar-les per optimitzar les nostres consultes.
Què són les vistes materialitzades?
Una vista materialitzada és una vista que emmagatzema físicament els resultats d'una consulta. A diferència de les vistes regulars, que es recalculen cada vegada que s'executen, les vistes materialitzades es mantenen actualitzades automàticament i es poden utilitzar per accelerar les consultes.
Avantatges de les vistes materialitzades
- Rendiment millorat: Les consultes que utilitzen vistes materialitzades poden ser molt més ràpides perquè no han de recalcular els resultats cada vegada.
- Costos reduïts: Menys recursos de computació són necessaris per executar consultes, el que pot reduir els costos.
- Actualitzacions automàtiques: Les vistes materialitzades es mantenen actualitzades automàticament quan les dades subjacents canvien.
Crear una vista materialitzada
Per crear una vista materialitzada a BigQuery, utilitzem la instrucció CREATE MATERIALIZED VIEW
. A continuació es mostra un exemple pràctic:
CREATE MATERIALIZED VIEW my_dataset.my_materialized_view AS SELECT user_id, COUNT(*) AS total_purchases, SUM(amount) AS total_amount FROM my_dataset.purchases GROUP BY user_id;
Explicació del codi
CREATE MATERIALIZED VIEW
: Instrucció per crear una vista materialitzada.my_dataset.my_materialized_view
: Nom complet de la vista materialitzada, incloent el conjunt de dades.SELECT
: Consulta SQL que defineix la vista materialitzada. En aquest cas, estem agregant compres peruser_id
.
Utilitzar una vista materialitzada
Un cop creada, podem utilitzar la vista materialitzada en les nostres consultes de la mateixa manera que utilitzaríem una taula o una vista regular:
SELECT user_id, total_purchases, total_amount FROM my_dataset.my_materialized_view WHERE total_amount > 100;
Explicació del codi
SELECT
: Consulta SQL que recupera dades de la vista materialitzada.my_dataset.my_materialized_view
: Nom de la vista materialitzada.WHERE
: Filtre per obtenir només els usuaris amb un total de compres superior a 100.
Actualització de vistes materialitzades
Les vistes materialitzades es mantenen actualitzades automàticament, però també podem forçar una actualització manualment si cal:
Explicació del codi
REFRESH MATERIALIZED VIEW
: Instrucció per actualitzar manualment la vista materialitzada.
Exercicis pràctics
Exercici 1: Crear una vista materialitzada
Crea una vista materialitzada que agregui les vendes per producte en una taula de vendes.
CREATE MATERIALIZED VIEW my_dataset.product_sales_summary AS SELECT product_id, COUNT(*) AS total_sales, SUM(sale_amount) AS total_revenue FROM my_dataset.sales GROUP BY product_id;
Exercici 2: Utilitzar la vista materialitzada
Escriu una consulta que utilitzi la vista materialitzada creada en l'exercici anterior per obtenir els productes amb ingressos totals superiors a 1000.
SELECT product_id, total_sales, total_revenue FROM my_dataset.product_sales_summary WHERE total_revenue > 1000;
Errors comuns i consells
- Error: "View is stale": Això pot ocórrer si la vista materialitzada no s'ha actualitzat recentment. Utilitza
REFRESH MATERIALIZED VIEW
per actualitzar-la. - Consell: Utilitza vistes materialitzades per a consultes que es repeteixen freqüentment i que processen grans volums de dades.
Conclusió
Les vistes materialitzades són una eina poderosa per millorar el rendiment de les consultes a BigQuery. En aquesta secció, hem après què són, com crear-les, i com utilitzar-les. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. En el proper tema, explorarem altres tècniques d'optimització de consultes per maximitzar l'eficiència de les nostres operacions a BigQuery.
Curs de BigQuery
Mòdul 1: Introducció a BigQuery
- Què és BigQuery?
- Configurar el teu entorn de BigQuery
- Comprendre l'arquitectura de BigQuery
- Visió general de la consola de BigQuery
Mòdul 2: SQL bàsic a BigQuery
Mòdul 3: SQL intermedi a BigQuery
Mòdul 4: SQL avançat a BigQuery
- Unions avançades
- Camps niats i repetits
- Funcions definides per l'usuari (UDFs)
- Particionament i agrupament
Mòdul 5: Gestió de dades a BigQuery
- Carregar dades a BigQuery
- Exportar dades de BigQuery
- Transformació i neteja de dades
- Gestió de conjunts de dades i taules
Mòdul 6: Optimització del rendiment de BigQuery
- Tècniques d'optimització de consultes
- Comprendre els plans d'execució de consultes
- Ús de vistes materialitzades
- Optimització de l'emmagatzematge
Mòdul 7: Seguretat i compliment de BigQuery
Mòdul 8: Integració i automatització de BigQuery
- Integració amb serveis de Google Cloud
- Ús de BigQuery amb Dataflow
- Automatització de fluxos de treball amb Cloud Functions
- Programació de consultes amb Cloud Scheduler
Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)
- Introducció a BigQuery ML
- Creació i entrenament de models
- Avaluació i predicció amb models
- Funcions avançades de BQML