Snowflake | En guide

01.05.2023 | 5 min lesetid

I denne artikkelen diskuterer vi en stor - og raskt voksende - SaaS-teknologi, Snowflake. Vi går gjennom nøyaktig hva Snowflake er, og hvordan teknologien understøtter en dataplattform-arkitektur. Vi vil også svare på noen vanlige spørsmål relatert til Snowflake og sammenlignbare løsninger. Vi gir eksperttips om hvordan Snowflake bør brukes for data engineering ig maskinlæring. Vi gir også ressurser for å hjelpe deg med å komme i gang.

Hva er Snowflake?

Snowflake er en skybasert plattform for moderne datavarehus og maskinlæring med tjenester for både prosessering og lagring. Plattformen har innledningsvis støttet tradisjonelle datavarehusbehov med smarte løsninger innenfor skalering, “governance” og databaseobjekt-kloning som gjør at man kan forenkle prosesserer knyttet til DataOps.

Snowflake sin arkitektur
Snowflake sin arkitektur

I nyere tid har de også utvidet Snowflake med støtte for maskinlæring og avansert analyse gjennom støtte av Python og “Feature Engineering” via Snowpark ( https://www.snowflake.com/en/data-cloud/snowpark/). Dette gjør at Data Engineers og Data Scientists kan jobbe på samme plattform. Videre kan det forenkle dataarkitektur ved at man har færre komponenter for å dekke lagring og prosessering i samme plattform.

Snowflake kan kjøres på Microsoft Azure, Amazon Web Services (AWS) og Google Cloud Platform (GCP), som gjør at man har fleksibilitet i valget av skyleverandør.

Oppsummert gir Snowflake følgende kapabiliteter ut av boksen:

  • En enkelt plattform for datalagring og -analyse for både Data Engineers og Data Scientists
  • Mulighet for dynamisk skalering ved å justere på nødvendig prosesseringskraft
  • Et modent verktøy for tradisjonelle behov innen datavarehus
  • Støtte for Python og SQL

Hvordan passer Snowflake i en moderne dataplattform?

Snowflake kan være et godt alternativ å vurdere som en platform for å dekke komponenter for prosessering og lagring for flere data-team. Fordelen med å jobbe på samme plattform er at man har tilgjengelige dataprodukter på tvers av team. Videre kan det tilrettelegge for tettere samarbeid mellom team som jobber med datavarehus og avansert analyse.

Snowflake har vært utpreget rettet mot tradisjonelle behov for datavarehus - med smarte løsninger for å sørge for en god drift- og utvikleroppelvelse. Blant annet har de støtte for “Time travel” og “Zero-Copy Cloning” som gjør det enkelt å gjenopprette tidligere versjoner av data og lage kloner av databaser uten å kopiere dataene. Videre har de støtte for de fleste kjente datatyper (herunder csv, parquet, orc, xml og JSON m.m).

Snowflake har nylig introdusert støtte for Python og komponenter som Snowpark som skal sørge for at behov innenfor Data Science er også en del av plattformen. Dette er nytt - men som vil ha økt fokus fra Snowflake fremover.

Hvordan posisjonerer Snowflake seg mot andre verktøy?

Snowflake har tradisjonelt posisjonert seg mot davarehus-use case, der de søker å forenkle og automatisere oppgaver og oppsett. Dette lykkes de godt med, og oppleves som enklere å komme i gang med for organisasjoner som primært har disse use casene.

Snowflake integrerer godt med tjenester fra andre leverandører på plattformer som Microsoft Azure, Google Cloud Platform (GCP) og Amazon Web Services (AWS). Snowflake sitt nedslagsfelt er primært datalagring og -prosessering, slik at det er behov for flere teknologier for å lage en komplett data- og analyseplattform.

Her er noen av de viktigste måtene Snowflake skiller seg fra dataplattformer som Amazon Redshift, Google BigQuery og Microsoft Azure SQL Data Warehouse/Microsoft Data Lake Gen2 med Synapse:

  1. Skalerbarhet: Snowflake har en multi-cluster, delt dataarkitektur som gir uavhengig skalering av lagrings- og databehandlingsressurser. Dette betyr at du kan skalere opp eller ned kapasiteten din etter behov, uten å påvirke ytelsen til andre workloads.
  2. Pay-as-you-go prising: Snowflake tilbyr en pay-as-you-go prismodell som lar deg betale for det du faktisk bruker, heller enn å forhåndsbetale for faste ressurser. Snowflake kan i noen tilfeller være dyrere enn noen av de andre alternativene for organisasjoner med store mengder data og høy databehandling.
  3. Data Sharing: Snowflake gjør det enkelt å dele data mellom forskjellige organisasjoner og forretningsenheter, uten å kopiere eller flytte data.
  4. Støtte for semi-strukturerte data: Snowflake støtter lagring og spørring av semi-strukturerte dataformater som JSON, Avro og Parquet.
  5. Sikkerhet: Snowflake tilbyr gode sikkerhetsfunksjoner, inkludert datakryptering, flerfaktorautentisering og sikker datadeling. Dette kan være spesielt viktig for organisasjoner som håndterer sensitive data.

Noen råd fra våre erfarne data engineers

  1. Avklar mandatet for Snowflake: Har man flere komponenter i en dataarkitektur med overlappende funksjonalitet så er det viktig å få avklart tidlig hva som skal foregå i Snowflake og hva som skal foregå i andre verktøy.
  2. Skisser opp brukere og roller: Det er lurt å få “mappet” ut personaer og interessenter som kommer til å være involvert i Snowflake. Disse bør være input i hvordan man setter opp roller for sikkerhet og tilgangsstyring.
  3. Ha en plan for oppsett av database-objekter: Hvordan skal databaser, skjemaer og objekter struktureres? Her er det mange veier til Rom - men det er viktig å ha et aktivt forhold til dette tidlig, slik at man kan spare tid på å refaktorere dette senere.
  4. Ha en plan for hvordan man ruller ut endrede og nye objekter: Avhengig av hvor moden teamet er i moderne utviklingsprinsipper så er det viktig å ha et forhold til hvordan man skal rulle ut endringer i datavarehuset.

Slik kommer du i gang med Snowflake

For å komme igang med Snowflake for testing og demo av kapabiliteter kan man gjøre følgende:

  1. Registrer deg for en konto: Besøk Snowflake-nettstedet (https://www.snowflake.com/) og registrer deg for en konto. Snowflake har en gratis prøveperiode.
  2. Last opp data: Begynn å laste opp data til Snowflake, enten ved å bruke webgrensesnittet, SnowSQL (kommandolinjeklienten) eller en av de støttede integrasjonene med ETL-verktøy (Extract, Transform, Load).
  3. Utfør spørringer og analyser: Når dataene dine er lastet opp, kan du begynne å utføre spørringer og analyser ved hjelp av SQL og integrere med støttede analyseverktøy.

Offisiell dokumentasjon finner du her:



Magne Bakkeli

Magne har over 20 års erfaring som rådgiver, arkitekt og prosjektleder innen data & analytics, og forstår godt forretningsmessige og tekniske problemstillinger.