Aller au contenu principal
SaaS · On-premise

Vues matérialisées

Une vue matérialisée stocke le résultat d'une requête. Les requêtes compatibles sont réécrites automatiquement pour la lire, sans modification de votre SQL.

Vue matérialisée asynchrone​

Recalculée selon un déclencheur : à la demande, à intervalle régulier ou à chaque chargement de la table source. Elle peut joindre plusieurs tables.

CREATE MATERIALIZED VIEW analytics.mv_ventes_jour
BUILD IMMEDIATE
REFRESH AUTO ON SCHEDULE EVERY 1 HOUR
DISTRIBUTED BY HASH(region) BUCKETS AUTO
AS
SELECT dt, region, SUM(amount) AS total, COUNT(*) AS commandes
FROM analytics.orders
GROUP BY dt, region;
DéclencheurRecalcul
ON MANUALREFRESH MATERIALIZED VIEW mv_ventes_jour AUTO;
ON SCHEDULE EVERY 1 HOURÀ intervalle régulier
ON COMMITAprès chaque chargement de la table source

REFRESH AUTO ne recalcule que les partitions modifiées quand c'est possible.

Vue matérialisée synchrone​

Mise à jour en même temps que sa table, sur une seule table :

CREATE MATERIALIZED VIEW mv_ventes_region AS
SELECT region, SUM(amount) FROM analytics.orders GROUP BY region;

Vérifier l'utilisation​

EXPLAIN indique si une requête lit une vue matérialisée.

Référence : CREATE MATERIALIZED VIEW (asynchrone), CREATE MATERIALIZED VIEW (synchrone), REFRESH MATERIALIZED VIEW.