Snowflake - ongekende performance met datawarehouse voor de cloud
De ontwikkelingen in de informatievoorziening gaan snel, erg snel. Nieuwe technieken en methoden volgen elkaar snel op. Toch zijn veel nieuwe ontwikkelingen gebaseerd op oude technieken. Hierdoor hebben ze vaak een hybride vorm; ontstaan in een on-premise omgeving en cloud compatible gemaakt. Snowflake daarentegen is een datawarehouse dat alleen ontwikkeld is voor de cloud.
Van 2012 tot 2014 werkten twee voormalig werknemers van Oracle in stilte aan de ontwikkeling van Snowflake. Vanaf het begin draait Snowflake op Amazon S3 en sinds 2018 ook op Microsoft Azure. Daarnaast wordt er gewerkt aan een versie die draait op Google Cloud Platform.
In dit blog deelt Business Intelligence Architect Martin Lantinga zijn bevindingen over de mogelijkheden van Snowflake.
Voor wie is Snowflake?
Snowflake is voor iedereen die van plan is om te migreren van on-premise naar de cloud. Maar ook voor iedereen die al op de cloud werkt maar nog steeds performance problemen ondervindt, doordat er op de ouderwetse manier van datawarehousing is voortgeborduurd. Het voordeel van Snowflake is dan dat het 100% gebouwd is voor de cloud en sterk is in het flexibel schalen zonder downtime en daarmee ongekende performance kan halen.
Verschillen met andere datawarehouses
Wat maakt Snowflake nou anders dan andere datawarehouses?
- 100% cloud
- 100% ANSI-SQL
- Structured en semi-structured data
- De performance
- Het beheer
Wat je daaraan hebt? Dat lees je hieronder!
100% cloud
Het bezitten van een asset om van een dienst gebruik te maken is niet meer van deze tijd. Het gebruik maken van diensten neemt daarentegen een grote vlucht. Laten we de online streamingdiensten als voorbeeld nemen. Het kopen van cd’s en een cd-speler (de assets) zijn niet meer nodig om je favoriete muziek (de dienst) te luisteren. De cloud biedt deze mogelijkheden. De dienstverlener draagt zorg voor de assets en levert de dienst. De afnemer hoeft alleen voor de geleverde dienst te betalen.
100% ANSI-SQL
Snowflake ondersteunt ANSI-SQL, net als oudere databasesystemen zoals bijvoorbeeld Oracle, DB2, SQL server, Postgress. Hierdoor is het voor SQL-ontwikkelaars eenvoudig om te switchen naar Snowflake.
Structured en semi-structured data
Snowflake biedt de mogelijkheid om zowel gestructureerde data (bv. CSV- en TSV-files) als semi-gestructureerde data (bv. JSON, Avro en XML) te laden in dezelfde database. Queries voor beide typen data zijn volledig geoptimaliseerd.
Performance
In Snowflake zijn de storage en compute laag gescheiden. Hierdoor kan er op twee verschillende manieren worden opgeschaald: up-scaling en out-scaling.
Bij up-scaling maak je gebruik van een zwaardere server, wat je online direct kunt regelen zonder downtime. Dankzij de zwaardere server is er meer rekenkracht beschikbaar en kun je zwaardere queries sneller uitvoeren. De compute laag wordt uitgebreid en de storage laag blijft onaangetast.
Bij out-scaling worden er meerdere servers ingezet om veel queries tegelijk te kunnen bedienen. Meerdere clusters (compute laag) op dezelfde data.
Beheer
Het beheer van fysieke machines is uiteraard niet meer nodig, omdat alles in de cloud staat. Maar de toegang tot de systemen en de data moet wel beheerd worden. De toegangsverlening kent 4 stappen:
- Toegang: vanaf welke werkplekken wordt er toegang verleend?
- Authenticatie: wie mag bij de systemen?
- Autorisatie: wie mag wat zien in de systemen?
- Encryptie: alle data wordt encrypted en periodiek van andere sleutels voorzien.

Meer informatie over Martin