Wat is Snowflake? Wat maakt het zo waardevol?

Abonneer je gratis op Techzine!

Recent heb je misschien iets meegekregen over Snowflake. Het softwarebedrijf had een zeer succesvolle beursgang onder de leiding van CEO Frank Slootman. Het bedrijf doet het dus goed met zijn cloudgebaseerde datawarehouse. Al laat Snowflake ons weten dat die benaming wat te kort schiet: het ziet zichzelf meer als een Data Cloud Platform.

Snowflake werd in 2012 opgericht en heeft in slechts 9 jaar naam weten te maken. Het bedrijf focust op een traditionele markt met grote spelers, maar weet die middels innovatie te doorbreken en succesvol te zijn. Een markt waarin Oracle zeer dominant is, maar ook grote cloudspelers als Amazon en Google. Snowflake begon als een cloudgebaseerde datawarehouse-oplossing, nu is het meer de core van het product waar de nodige features aan zijn toegevoegd. Het bedrijf omschrijft zichzelf inmiddels als een Data Cloud Platform. Snowflake elimineert de architecturale complexiteit en maakt het mogelijk om meerdere workloads op alle drie de belangrijke clouds uit te kunnen voeren, met de elasticiteit, prestaties en schaal die de moderne enterprise organisatie vereist.

Gerelateerd: Snowflake-aandelen in waarde verdubbeld op eerste beursdag

Flexibel data platform as a service

Snowflake maakt enorm veel indruk met het Data Cloud Platform. Het weet aan de ene kant de complete installatie, configuratie, beheer en onderhoud bij de klant weg te halen. Terwijl het aan de andere kant een simplistisch platform biedt, waarmee enorme hoeveelheden data eenvoudig kunnen worden samengebracht in één database. Op de aanwezige data in Snowflake kunnen vervolgens allerlei acties worden toegepast. Bijvoorbeeld om data-analyse mogelijk te maken of data te koppelen en herstructureren om een andere applicatie te voeden.

Snowflake platform is cloud-agnostisch

Snowflake heeft het platform van de grond af aan zelf opgebouwd. Daardoor is het een cloud native-oplossing die vanuit Amazon Web Services, Google Cloud en Microsoft Azure kan worden aangeboden. Bij het ontwerpen van het Snowflake-platform is rekening gehouden met standaard cloud principes, zoals eenvoudig op- en afschalen en het betaalbaar houden van de oplossing. Daarnaast kan Snowflake de data tot op rij niveau beveiligen en voldoen aan alle eisen rond compliance en governance.

Werken met Snowflake

Voor dit artikel hebben we een demo bijgewoond en zelf kunnen spelen met een testomgeving van Snowflake, zodat we zelf kunnen ervaren hoe het product werkt. Snowflake kan je in de basis op twee manieren gebruiken. Als ontwikkelaar kan je Snowflake aanspreken via een API en op die manier data inladen, opvragen en analyseren. Of je kan gebruikmaken van de webinterface, waar je al deze handelingen ook kan doen en het gelijk zichtbaar is in je browser. Voor onze demo hebben we de webinterface gebruikt.

Snowflake leunt enorm op SQL (Structured Query Language), iets wat veel ontwikkelaars standaard beheersen en veel data-analisten in getraind zijn. SQL is een van de meeste simpele talen om met data te werken en iedereen kan dit vrij snel leren. In de webinterface moet je ook gebruikmaken van diverse SQL-commando’s om te kunnen werken met Snowflake.

Ontwikkelaars die via de API werken, kunnen in principe met elke programmeertaal uit de voeten in combinatie met SQL. Voor Snowflake zijn Java Database Connectivity (JDBC)- en Open Database Connectivity (ODBC)-interfaces beschikbaar. Hiermee kan je in elke programmeertaal verbinden met een Snowflake-database.

Het Snowflake Data Platform kan overweg met gestructureerde data, zoals CSV-bestanden of Excel-sheets die bestaan uit rijen en kolommen. Snowflake heeft zich echter aangepast aan het cloudtijdperk en kan daardoor ook overweg met XML- en JSON-datasets. Iets wat zeer wenselijk is, wanneer data uit SaaS-oplossingen moeten worden opgehaald en verwerkt in Snowflake.

Ongeacht hoe de data is gestructureerd, in Snowflake kan het middels SQL worden opgevraagd en gefilterd. Ook is het mogelijk om data uit verschillende tabellen te combineren, ook als het gaat om honderdduizenden of miljoenen rijen.

Daarnaast heeft Snowflake recent Snowpark gepresenteerd. Snowpark biedt data analisten, data scientist en ontwikkelaars de mogelijkheid om code te schrijven in hun favoriete taal, gebruikmakend van voor hen bekende programmeerconcepten. Daarmee kunnen vervolgens workloads zoals ETL/ELT uit worden gevoerd, data te prepareren en features toe te voegen aan Snowflake.

Snowflake Data Platform is kampioen in metadata

We hebben van de experts van Snowflake begrepen dat ze kampioen zijn in het creëren van metadata. Door alle data in Snowflake te analyseren en hier metadata over aan te leggen, presteert Snowflake sneller dan andere databases. Daarnaast kent het Snowflake Data Platform een uitgebreid cache-systeem, wat er ook voor zorgt dat de prestaties verder toenemen.

Snowflake kan op veel manieren worden ingezet. Bijvoorbeeld, voor het analyseren van aanwezige data in de database. Maar ook voor het realtime verwerken en analyseren van inkomende streaming data. Inkomende streaming data kan worden gemodelleerd en direct geschikt worden gemaakt voor een toepassing. Daarnaast kan het ook worden aangepast om op een efficiëntere manier op te slaan.

Kostenefficiënt werken

Snowflake heeft het cloudmodel zoveel mogelijk proberen te omarmen. Hierbij betaal je op basis van gebruik, maar kan je ook bepalen wanneer je welk type workload inzet. Op die manier kan je als organisatie meer controle uitvoeren op de hoeveelheid workloads die je inzet, voor hoelang en welke kosten daarbij gemoeid zijn.

Stel dat je een enorme database hebt met miljoenen records waarin je data wil analyseren. Dan zou je er bijvoorbeeld voor kunnen kiezen om je data-analist eerst met een kleinere beperkte set te laten werken om tot de juiste queries en algoritmes te komen. Bij succes kunnen ze verder toegepast worden op de volledige dataset, om te zien of ze dan ook tot het juiste resultaat leiden.

Dit is in Snowflake zeer snel en eenvoudig te regelen. Wat echter ook belangrijk is, is om tijdig op te schalen. Stel dat je zo’n query en algoritme hebt ontwikkeld en je staat op het punt om die op een gigantische dataset toe te passen, dan is het verstandig om de workloads die daarvoor ingezet worden flink op te schroeven.

In de demonstratie die wij kregen maakt dat echt een enorm verschil en kan het ook enorm veel kosten besparen. Een zware query draaien op een grote database met een beperkte workload kan bijvoorbeeld tientallen minuten of zelfs uren in beslag nemen, terwijl het draaien van dezelfde query op veel zwaardere hardware binnen een minuut is afgerond. De zwaardere workload is misschien maar drie keer zo duur per uur als die kleinere workload. Door te kiezen voor kleine workloads bespaar je dus niet per definitie op de kosten. Het is echt een kwestie van de juiste workload voor de juiste query’s.

Als je Snowflake echt in een productieomgeving gaat inzetten waarbij de database 24/7 wordt gebruikt, zal wel moeten worden gekozen voor een workload die in veel situaties het hoofd kan bieden aan de aanvragen. Ook dan is het mogelijk om op en af te schalen.

Data delen en samenwerken

Er is een grote vraag naar goede data-analisten en het aanbod is zeer beperkt. Veel bedrijven zullen dus ook regelmatig externe analisten inhuren om ze te helpen bij het analyseren van cruciale bedrijfsdata. Binnen Snowflake is het mogelijk om ook gebruikers van buiten de organisatie met data te laten werken. Hiervoor kunnen gebruikers en gebruikersrechten op maat worden geconfigureerd. Ook kan tot op rij niveau worden bepaald tot welke data een gebruiker toegang heeft. Het is dus mogelijk een externe analist met een beperktere dataset te laten werken. Daarbij is zeer cruciale data achtergehouden, maar een interne werknemer kan zijn analyses wel toepassen op de volledige dataset. Op die manier kan in sommige gevallen beter worden voldaan aan bepaalde compliance eisen.

Data exchange

Tot slot is het nog goed om te weten dat Snowflake faciliteert in een data exchange. Hierin kan iedereen die beschikt over waardevolle datasets, deze delen met andere Snowflake-gebruikers. Dit kan gratis, maar ook tegen betaling. Zo zijn er bijvoorbeeld databases met informatie over IP-adressen of met weersvoorspellingen per stad van over de hele wereld. Voor applicatieontwikkelaars kan de Snowflake data exchange een zeer waardevolle bron zijn, om sneller applicaties te ontwikkelen doordat data eenvoudiger toegankelijk is.

Conclusie

Het dataplatform van Snowflake is continue in ontwikkeling. Het is nu al een stuk meer dan een datawarehouse. De komende jaren zal het Snowflake-platform blijven innoveren en ongetwijfeld beter en uitgebreider worden. Wij zien na onze eerste kennismaking zeker voordelen en kansen voor veel bedrijven. Daarnaast zien we dat veel grote IT-bedrijven massaal Snowflake omarmen, wat laat zien dat het bedrijf iets biedt waar ook echt vraag naar is. Vooral de hele cloud native gedachte, de innovatiesnelheid en het eenvoudige gebruik zal veel bedrijven aanspreken.