Story
Datawarehousing
Snowflake

Snowflake: datawarehousing ging nog nooit zo gesmeerd

Door Erwin Schoonderbeek | Invalid Date

Een datawarehouse (DWH) onderhouden is een heel groot karwei, toch? In traditionele datawarehouse-omgevingen ben je inderdaad behoorlijk veel van je kostbare tijd bezig met het monitoren van je omgeving: is er nog genoeg ruimte (voor nu én in de toekomst), moeten we bijschalen en hoe zit het met de prestatie van de warehouse? En dan hebben we het nog niet over het inladen van de data gehad. Dit moet natuurlijk wel op de momenten dat het warehouse zo min mogelijk gebruikt wordt. Dit kan toch veel handiger?

Op naar de cloud

Tegenwoordig beweegt alles zich naar de cloud. Logisch ook, want de voordelen van de cloud zijn immens:

  • Opslag is ineens geen issue meer;
  • Hardware hoef je geen rekening mee te houden, dat doet het cloud-bedrijf voor je;
  • Security is in de meeste gevallen beter geregeld dan je als bedrijf zelf kan regelen.

Echter je DWH-omgeving oppakken en in de cloud zetten, lost het probleem van flexibiliteit niet op. Ja, je hebt meer resources tot je beschikking, maar je zult je DWH-omgeving nog steeds zelf moeten optimaliseren.

De unieke oplossing Snowflake

Snowflake is een datawarehouse, speciaal gebouwd voor de cloud. Snowflake’s datawarehouse-as-a-service zorgt ervoor dat je je niet meer hoeft bezig te houden met het monitoren en optimaliseren van je omgeving. De data, processen en de services zijn allemaal gescheiden van elkaar. Ideaal! Een groot voordeel daarvan is dat deze componenten onafhankelijk van elkaar worden opgeschaald of juist uitgezet. Ook provisioning van je omgeving is verleden tijd. Zij bieden op dit moment hun product aan via Amazon Web Services en Microsoft Azure. Google Cloud Platform staat voor het einde van 2019 op het programma.

Schermafbeelding 2019-10-17 om 10.37.22

De opslag in Snowflake

De opslag van de data in Snowflake gebeurt in de beveiligde cloud-storage omgeving. Voor AWS kan dit S3 zijn en in Azure noemen ze het Blob-storage. Opslag in de cloud is relatief goedkoop en onbeperkt schaalbaar.

Met Snowflake is het mogelijk om zowel gestructureerde data (tabellen, views, etc) als ongestructureerde data (JSON, Parquet, Avro, etc) op te slaan. Vervolgens kun je op deze data direct je SQL-query loslaten. Je JSON-bestand hoeft dus niet eerst geprocessed te worden voordat je het koppelt aan gestructureerde data!

De processen in Snowflake

Op deze enkele datawarehouse-omgeving draai je vervolgens verschillende processen (in bovenstaande afbeelding zijn dit de Compute “blokken”). Elk van deze processen doen dat in een eigen geïsoleerde omgeving, waardoor teams tegelijkertijd met Snowflake aan de slag kunnen. Zo laad je je data, terwijl een data scientist verschillende zware queries draait, en gebruikers gewoon een rapportage uitrollen. Snowflake noemt deze Compute “blokken” virtuele warehouses.

De services van Snowflake

De services-laag van Snowflake coördineert en managet de hele omgeving. Gebruikers worden hier geauthenticeerd, sessies worden bijgehouden en de data wordt beveiligt. Daarnaast wordt in deze laag ook de optimalisatie van de query uitgevoerd. En dat is gaaf! Want nu hoef jij geen rekening meer te houden met het optimaliseren van je query-prestaties. Snowflake fixt dat voor je!

De services-laag maakt gebruik van een metadata-store. Hierdoor heb je toegang tot opties die je eerder voor onmogelijk hield:

  • Undrop. Je leest het goed. Heb je iets weggegooid terwijl dat eigenlijk niet had mogen gebeuren? Gewoon undroppen.
  • Supersnel klonen. Met een enkel commando clone je tabellen/schema’s en zelfs het complete warehouse.
  • Time-travel. Het is mogelijk terug in de tijd te reizen in je datawarehouse. Je hoeft alleen maar de juiste datum of tijd mee te geven in je query en Snowflake regelt de rest!

De services-laag wordt in verschillende Availability-zones (b.v. AWS) geplaatst om ervoor te zorgen dat Snowflake altijd bereikbaar is.

Samen aan de slag met Snowflake?

Met snowflake kan jouw organisatie doen waar ze goed in is: het halen van waarde uit de data. En wij kunnen je daarbij helpen. Wil je meer informatie over Snowflake of zullen we er eens over sparren? Kom eens langs! Mijn collega’s en ik helpen je graag!

Erwin Schoonderbeek


E: erwin.schoonderbeek@incentro.comT: +31 (0)6 4814 1630
volgende story
Flexo: een efficiënt softwareplatform voor de uitzendbranche
Door Diederick Splinter | 2019 M10 14