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 per user_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:

REFRESH MATERIALIZED VIEW my_dataset.my_materialized_view;

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

Mòdul 2: SQL bàsic a BigQuery

Mòdul 3: SQL intermedi a BigQuery

Mòdul 4: SQL avançat a BigQuery

Mòdul 5: Gestió de dades a BigQuery

Mòdul 6: Optimització del rendiment de BigQuery

Mòdul 7: Seguretat i compliment de BigQuery

Mòdul 8: Integració i automatització de BigQuery

Mòdul 9: Aprenentatge automàtic a BigQuery (BQML)

Mòdul 10: Casos d'ús de BigQuery en el món real

© Copyright 2024. Tots els drets reservats