
Hoe DWAAS zijn we als we Snowflake negeren?
April 2019
Tijdens een recente Nippur Night heeft Snowflake een mooie inkijk gegeven in hun product.
Vanuit Nippur zijn we altijd geïnteresseerd in nieuwe datawarehouse oplossingen. Gezien de beloftes van Snowflake op hun site en bij events, waren we uiteraard zeer benieuwd naar de visie en mogelijkheden van Snowflake. Allereerst wilden we het vergelijken met ‘cloud-datawarehouses’ van andere leveranciers, maar we wilden ook ontdekken hoe we Snowflake goed in zouden kunnen passen in het landschap van datawarehouse-architectuur en het ontwerp van data-oplossingen.
Deze blog is gericht op de positionering van Snowflake in het grotere geheel van mogelijke oplossingen.
Amazon Redshift
Azure SQL Data Warehouse
Google BigQuery
Dit is toevallig niet alleen alfabetische volgorde, het komt ook overeen met de grootte van het cloud marktaandeel van respectievelijk Amazon Web Services, Microsoft Azure en Google Cloud Platform. (Zie bv Datamation en Synergy Research Group) Alle deze leveranciers noemen hun oplossing een cloud datawarehouse.
Bij zowel Amazon als Azure zijn 'storage' en 'compute' gekoppeld, in tegenstelling tot bij Snowflake. Bij het op- of afschalen worden dus altijd beide componenten meegenomen, ook in de prijs. Bovendien is de nieuwe ‘size’ niet direct na vergroten/verkleinen te gebruiken zoals bij Snowflake.
Voor BigQuery was mij wat minder duidelijk hoe de koppeling is tussen 'storage' en 'compute'. Google zelf zegt er dit over; BigQuery is feitelijk 'the service'. Een (wat gedateerde) vergelijking tussen Snowflake en BigQuery vind je hier (let op: betreft één gebruiker die aangeeft aan naar beide gekeken te hebben). Bij deze vergelijking wordt database cloning genoemd als voordeel van Snowflake ten opzichte van BigQuery.
Maar er zijn dus ook een aantal overeenkomsten, waaronder ontkoppeling van 'storage' en 'compute', het standaard zijn van column storage en het kunnen koppelen met semi-gestructureerde data.
Geen vendor lock-in op één cloudplatform (al draait Snowflake nog niet op GCP)
Onafhankelijke schaalbaarheid van storage, compute en cloud services (wel bij BigQuery)
Standaard column storage
Zero management
Metadata gecontroleerde data-aanpassingen
Zero-copy database cloning
Het lijkt erop dat met name metadata gecontroleerde data-aanpassingen en database cloning écht uniek zijn ten opzichte van de andere drie leveranciers. En al hebben de andere leveranciers verder niet allen een eigen variant van onderscheidende Snowflake opties, dat is waarschijnlijk vooral een kwestie van tijd. Wel is het zo dat AWS en Azure nu (nog) geen mogelijkheden bieden voor onafhankelijk schalen van 'storage' en 'compute'. Verder valt op dat Google BigQuery en Snowflake al redelijk vergelijkbare opties hebben.
Wat is Snowflake?
Snowflake presenteert zich als het eerste en, vooralsnog, enige datawarehouse gebouwd voor de cloud. In tegenstelling tot vrijwel alle andere datawarehouse leveranciers, levert Snowflake geen cloudoplossing die voortborduurt op al bestaande technologie, maar juist een omgeving die specifiek ontwikkeld is voor de cloud. Een Snowflake datawarehouse kun je dan ook niet ‘on-premises’ realiseren. Snowflake is daarmee een zogenaamde ‘datawarehouse-as-a-service’ oplossing, (ook wel DAAS of DWAAS). Ik wil een paar zaken uitlichten voor de rest van het verhaal:- Snowflake is een volledig relationeel ANSI SQL datawarehouse en biedt ondersteuning voor zowel gestructureerde data, zoals CSV bestanden en tabellen, als semi-gestructureerde data, waaronder JSON, Avro, Parquet, etc.
- Snowflake heeft een unieke datawarehouse architectuur, waarbij opslag (storage), verwerking (compute) en cloud diensten (cloud services) losgekoppeld zijn en onafhankelijk van elkaar op- en afgeschaald kunnen worden.
- Verwerking van metadata verloopt automatisch en heeft geen impact op de ‘normale’ gegevensverwerking van het datawarehouse en staat dus los van ‘compute’, omdat het onderdeel is van de cloud diensten.
- Snowflake biedt daarmee vrijwel lineaire schaalbaarheid, omdat het geen last heeft van de koppeling tussen ‘storage’ en ‘compute’ die je wel ziet bij andere leveranciers.
- De onderliggende database is een column store database.
- Het is een ‘zero-management’ omgeving, alles wordt geregeld door/binnen Snowflake.
- Een opvallende mogelijkheid is het ‘zero-copy’ klonen van databases, waarna vervolgens (data) aanpassingen, zoals inserts en deletes, kunnen worden gedaan op de kloon. Dit wordt volledig afgehandeld in de metadata en meegenomen bij het bevragen van de kloon.
- Snowflake draait op zowel AWS als Azure.