Automatisering van datapijplijnen in Snowflake
Emily Melhuish
Technical Curriculum Developer, Snowflake

Snowflake cachet resultaten op drie niveaus — elk met eigen scope en duur

| Voorwaarde | Cache-miss wanneer… |
|---|---|
| Querytekst komt exact overeen | Hoofdletters, spaties of aliassen verschillen |
| Geen niet-herbruikbare functies | functies die per run veranderen: RANDOM |
| Onderliggende tabellen ongewijzigd | DML, reclustering of consolidatie sinds vorige run |
| Bestaand resultaat nog beschikbaar | 24-uurs TTL verlopen zonder hergebruik, of 31 dagen |
| Rol heeft vereiste rechten | SELECT: rol mist rechten SHOW: andere rol |

Warehouse‑cache
Metadata‑cache
Voorkomt pruning:
SELECT *
FROM logistics.shipments
WHERE MONTH(dispatch_date) = 3;
Maakt pruning mogelijk:
SELECT *
FROM logistics.shipments
WHERE dispatch_date >= '2024-03-01'
AND dispatch_date < '2024-04-01';
Vermijd SELECT *
-- Leest elke kolom
SELECT *
FROM logistics.shipments
WHERE region = 'EMEA';
-- Leest alleen wat nodig is
SELECT shipment_id
, delivery_days
FROM logistics.shipments
WHERE region = 'EMEA';
Vermijd impliciete cross-joins
-- Ontbrekende join-voorwaarde = Cartesian
SELECT s.shipment_id
, c.name
FROM shipments s, carriers c;
-- Expliciete JOIN met ON-voorwaarde
SELECT s.shipment_id
, c.name
FROM shipments s
JOIN carriers c ON s.carrier_id = c.id;
Automatisering van datapijplijnen in Snowflake