Cursus
Wat is Snowflake?
Als iemand me zou vragen om Snowflake in zo min mogelijk woorden te omschrijven, zou ik deze kiezen:
- Datawarehouses
- Grootschalige data
- Multi-cloud
- Scheiding
- Schaalbaar
- Flexibel
- Eenvoudig
Als ze willen dat ik het toelicht, zou ik de woorden zo aan elkaar rijgen:
Snowflake is een enorm populair AI-datacloudplatform. Het onderscheidt zich van concurrenten door grote hoeveelheden data en workloads sneller en efficiënter te verwerken. Die superieure prestaties komen voort uit de unieke architectuur, met gescheiden opslag- en rekenlagen, waardoor het ongelooflijk flexibel en schaalbaar is. Daarnaast integreert het standaard met meerdere cloudproviders. Ondanks deze geavanceerde features blijft het eenvoudig om te leren en te implementeren.
Als ze nog meer details willen, tja, dan zou ik deze tutorial schrijven. Als je totaal nieuw bent met dit onderwerp, is onze cursus Introduction to Snowflake een uitstekende start.
Waarom Snowflake gebruiken?
Snowflake bedient wereldwijd meer dan 8.900 klanten en verwerkt elke dag 3,9 miljard queries. Zulke gebruikscijfers zijn zeker geen toeval.
Hieronder staan de belangrijkste voordelen van Snowflake die zo aantrekkelijk zijn:
1. Cloudgebaseerde architectuur
Snowflake draait in de cloud, waardoor bedrijven resources kunnen opschalen en afschalen op basis van de vraag, zonder zich zorgen te hoeven maken over fysieke infrastructuur (hardware). Het platform verzorgt ook routinematig onderhoud zoals software-updates, hardwarebeheer en performance-tuning. Dit verlicht de onderhoudslast, zodat organisaties zich kunnen richten op wat ertoe doet: waarde halen uit data.
2. Elasticiteit en schaalbaarheid
Snowflake scheidt de opslag- en rekenlagen, zodat gebruikers hun rekenresources onafhankelijk van hun opslagbehoeften kunnen schalen. Deze elasticiteit maakt efficiënte afhandeling van diverse workloads mogelijk met optimale prestaties en zonder onnodige kosten.
3. Gelijktijdigheid en performance
Snowflake gaat moeiteloos om met hoge gelijktijdigheid: meerdere gebruikers kunnen de data benaderen en bevragen zonder performanceverlies.
4. Data delen
De beveiligingsmaatregelen van Snowflake maken het mogelijk om data te delen met andere organisaties, interne afdelingen, externe partners, klanten of andere stakeholders. Geen complexe datatransfers nodig.
5. Time Travel
Snowflake gebruikt de chique term "Time Travel" voor dataversiebeheer. Telkens als er een wijziging in de database wordt aangebracht, maakt Snowflake een snapshot. Hierdoor kunnen gebruikers historische data op verschillende momenten in de tijd raadplegen.
6. Kostenefficiëntie
Snowflake biedt een pay-as-you-go-model dankzij het dynamisch kunnen schalen van resources. Je betaalt alleen voor wat je gebruikt.
Al deze voordelen samen maken Snowflake tot een zeer aantrekkelijk AI-datacloudplatform.
Laten we nu kijken naar de onderliggende architectuur van Snowflake die deze features mogelijk maakt.
Wat is een datawarehouse?
Voordat we in de architectuur van Snowflake duiken, bekijken we eerst datawarehouses, zodat we allemaal op één lijn zitten.
Een datawarehouse is een centrale opslagplaats die grote hoeveelheden gestructureerde en georganiseerde data uit verschillende bronnen voor een bedrijf bewaart. Verschillende persona's (medewerkers) binnen organisaties gebruiken die data om uiteenlopende inzichten te verkrijgen.
Zo kunnen data-analisten, in samenwerking met het marketingteam, een A/B-test draaien voor een nieuwe marketingcampagne met behulp van de verkoopstabel. HR-specialisten kunnen personeelsinformatie bevragen om prestaties te volgen.
Dit zijn voorbeelden van hoe bedrijven wereldwijd datawarehouses inzetten om groei te versnellen. Maar zonder juiste implementatie en beheer met tools zoals Snowflake blijven datawarehouses slechts uitgewerkte concepten.
Je kunt meer over dit onderwerp leren met onze cursus Data Warehousing.
Snowflake-architectuur
Snowflakes unieke architectuur, ontworpen voor snellere analytische queries, komt voort uit de scheiding van de opslag- en rekenlagen. Dit onderscheid draagt bij aan de voordelen die we eerder noemden.
Opslaglaag
In Snowflake is de opslaglaag een cruciaal onderdeel, waarin data efficiënt en schaalbaar wordt opgeslagen. Dit zijn enkele kernkenmerken van deze laag:
- Cloudgebaseerd: Snowflake integreert naadloos met grote cloudproviders zoals AWS, GCP en Microsoft Azure.
- Kolomformaat: Snowflake slaat data op in kolomformaat, geoptimaliseerd voor analytische queries. In tegenstelling tot de traditionele rijgebaseerde formaten die door tools als Postgres worden gebruikt, is het kolomformaat zeer geschikt voor data-aggregatie. In kolomopslag benaderen queries alleen de specifieke kolommen die ze nodig hebben, wat efficiënter is. Rijgebaseerde formaten vereisen daarentegen toegang tot alle rijen in het geheugen voor simpele bewerkingen zoals het berekenen van gemiddelden.
- Micro-partitionering: Snowflake gebruikt een techniek genaamd micro-partitionering, waarbij tabellen in kleine brokjes in het geheugen worden opgeslagen. Elk brokje is doorgaans onveranderlijk en slechts enkele megabytes groot, wat queryoptimalisatie en -uitvoering veel sneller maakt.
- Zero-copy cloning: Snowflake heeft een unieke feature waarmee het virtuele klonen van data kan maken. Klonen is direct en verbruikt geen extra geheugen totdat er wijzigingen in de nieuwe kopie worden aangebracht.
- Schaal en elasticiteit: De opslaglaag schaalt horizontaal, wat betekent dat toenemende datavolumes verwerkt kunnen worden door meer servers toe te voegen om de belasting te verdelen. Bovendien gebeurt dit schalen onafhankelijk van rekenresources, ideaal als je veel data wilt opslaan maar slechts een klein deel analyseert.
Laten we nu de rekenlaag bekijken.
Rekenlaag
Zoals de naam al aangeeft, is de rekenlaag de motor die je queries uitvoert. Deze werkt samen met de opslaglaag om de data te verwerken en verschillende rekenintensieve taken uit te voeren. Hieronder wat meer details over hoe deze laag werkt:
- Virtuele warehouses: Je kunt Virtual Warehouses zien als teams van computers (compute-nodes) die zijn ontworpen voor queryprocessing. Elk teamlid behandelt een ander deel van de query, wat de uitvoering indrukwekkend snel en parallel maakt. Snowflake biedt Virtual Warehouses in verschillende maten en dus met verschillende prijzen (de maten zijn XS, S, M, L, XL).
- Multi-cluster-, multi-node-architectuur: De rekenlaag gebruikt meerdere clusters met meerdere nodes voor hoge gelijktijdigheid, zodat meerdere gebruikers de data gelijktijdig kunnen benaderen en bevragen.
- Automatische query-optimalisatie: Het systeem van Snowflake analyseert alle queries en identificeert patronen om te optimaliseren met behulp van historische data. Veelvoorkomende optimalisaties zijn het snoeien van onnodige data, gebruik van metadata en het kiezen van het meest efficiënte uitvoeringstraject.
- Resultcache: De rekenlaag bevat een cache die de resultaten van vaak uitgevoerde queries opslaat. Wanneer dezelfde query opnieuw wordt uitgevoerd, worden de resultaten vrijwel direct teruggegeven.
Deze ontwerpprincipes van de rekenlaag dragen allemaal bij aan Snowflakes vermogen om verschillende en veeleisende workloads in de cloud aan te kunnen.
Cloudservices-laag
De laatste laag is cloudservices. Omdat deze laag in elk onderdeel van Snowflakes architectuur is geïntegreerd, zijn er veel details over de werking. Naast features die samenhangen met andere lagen, heeft deze laag de volgende extra verantwoordelijkheden:
- Beveiliging en toegangsbeheer: Deze laag handhaaft beveiligingsmaatregelen, waaronder authenticatie, autorisatie en versleuteling. Beheerders gebruiken Role-Based Access Control (RBAC) om gebruikersrollen en -rechten te definiëren en te beheren.
- Data delen: Deze laag implementeert veilige protocollen voor het delen van data tussen verschillende accounts en zelfs met externe organisaties. Dataconsumenten kunnen de data benaderen zonder dataduplicatie, wat samenwerking en het gelde-lijk maken van data stimuleert.
- Ondersteuning voor semi-gestructureerde data: Een ander uniek voordeel van Snowflake is het vermogen om semi-gestructureerde data, zoals JSON en Parquet, te verwerken, ondanks dat het een datawarehouseplatform is. Het kan semi-gestructureerde data eenvoudig bevragen en de resultaten integreren met bestaande tabellen. Deze flexibiliteit zie je niet bij andere RDBMS-tools.
Nu we een globaal beeld hebben van de architectuur van Snowflake, gaan we wat SQL op het platform schrijven.
Snowflake SQL instellen
Snowflake heeft een eigen versie van SQL, genaamd Snowflake SQL. Het verschil met andere SQL-dialecten is vergelijkbaar met het verschil tussen Engelse accenten.
Veel analytische queries die je in dialecten als PostgreSQL uitvoert, veranderen niet, maar er zijn enkele verschillen in DDL-commando's (Data Definition Language).
Laten we nu eens kijken hoe je wat queries kunt uitvoeren!
Snowsight: webinterface

Om te beginnen met Snowsight ga je naar de pagina voor de Snowflake-proefperiode van 120 dagen en maak je een account aan. Voer je persoonlijke gegevens in en kies een van de vermelde cloudproviders. Dit geeft je een proefperiode van 120 dagen in plaats van de meer gangbare 30 dagen die je elders ziet. De proef bevat ook $400 aan tegoed.
Bij het aanmelden voor een proef wordt aangeraden dat gebruikers AWS en de regio US-Oregon West kiezen. Oregon is onder meer een van de goedkoopste regio's voor AWS-infrastructuur en daardoor gaan proeftegoeden langer mee.
Na het verifiëren van je e-mailadres word je doorgestuurd naar de pagina Worksheets. Worksheets zijn interactieve live-codingomgevingen waar je de resultaten van je SQL-queries kunt schrijven, uitvoeren en bekijken.

Om wat queries te draaien, hebben we een database en een tabel nodig (we gebruiken de voorbeelddata in Snowsight niet). Om te beginnen stel ik voor dat je een nieuwe database maakt (je kunt die bijvoorbeeld test_db noemen) en een tabel aanmaakt met behulp van een lokaal CSV-bestand. Je kunt het CSV-bestand downloaden door de code in deze GitHub-gist in je terminal te draaien.
Daarna word je doorgestuurd naar een nieuw werkblad waar je elke gewenste SQL-query kunt uitvoeren. Ik vind de werkbladinterface behoorlijk overzichtelijk en zeer functioneel. Neem een paar minuten de tijd om de panelen, de knoppen en hun locaties te leren kennen.
Conclusie en verder leren
Zo! We begonnen met eenvoudige concepten, maar naar het einde toe doken we echt de taaie details in. Nou, dat is mijn idee van een degelijke tutorial.
Je raadt het al: er is veel meer aan Snowflake dan we hier hebben behandeld. Sterker nog, de Snowflake-documentatie bevat quickstarts die eigenlijk 128 minuten duren! Maar voordat je daaraan begint, raad ik aan om eerst wat praktijkervaring op te doen met andere bronnen. Wat dacht je van deze:
- Cursus Introduction to Snowflake
- Een webinar over het moderniseren van sales analytics met Snowflake
- Data-analyse in Snowflake met Python code-along
- Officiële Snowflake-gebruikersgidsen
- Snowflake Northstar om meer te leren over Snowflakes langetermijnvisie.
Bedankt voor het lezen!
Ik ben een contentmaker op het gebied van data science met meer dan 2 jaar ervaring en een van de grootste achterbannen op Medium. Ik schrijf graag diepgaande artikelen over AI en ML met een vleugje sarcasme, want je moet íets doen om ze wat minder droog te maken. Ik heb meer dan 130 artikelen en een DataCamp-cursus gemaakt, met nog een in de maak. Mijn content is door meer dan 5 miljoen ogen bekeken, van wie 20k mij is gaan volgen op zowel Medium als LinkedIn.

