De afgelopen weken deden we vanuit het data team binnen Incentro onderzoek naar twee populaire data warehousing services die veel gebruikt worden in AWS: Snowflake en Redshift. In deze blog vergelijken we beide platformen, zodat jij precies kunt inschatten welke van deze tools het meest geschikt is voor jouw analysebehoeften binnen een AWS-omgeving.

Als data-engineer is het van cruciaal belang om de juiste tools te kiezen voor data warehousing. Deze keuze kan grote gevolgen hebben voor de prestaties en kostenefficiëntie van je projecten. Door onze ervaring met en onderzoek naar Snowflake en Redshift te delen, hopen wij  jou als data engineer te helpen de best passende oplossing te kiezen bij een nieuwe AWS-omgeving. Uiteindelijk wil iedereen op de lange termijn zo min mogelijk tegen allerlei performance problemen aanlopen. Lees gauw verder hoe je dit het beste kan bereiken.

Snowflake en Redshift zijn beide krachtige data warehousing services in de cloud. Snowflake is een cloud-native datawarehouse dat bekend staat om zijn elasticiteit en schaalbaarheid. Het stelt organisaties in staat om moeiteloos op te schalen, wat cruciaal is voor bedrijven die snel groeien of te maken hebben met variabele workloads. 

Redshift, daarentegen, is een managed datawarehouse-service van AWS, die is geoptimaliseerd voor gebruik binnen het AWS-ecosysteem. Het systeem is namelijk super goed geïntegreerd met allerlei AWS services zoals S3 en CloudWatch. Beide data warehouses hebben hun eigen sterke punten en wij zetten ze graag voor je op een rij.

Snowflake
Snowflake maakt gebruik van een multi-cluster shared architecture, waarbij rekenkracht en opslag gescheiden zijn. Multi-cluster verwijst naar een groep aan nodes die parallel aan elkaar query’s kunnen uitvoeren. Terwijl de shared architecture ervoor zorgt dat er een centrale pool aan nodes beschikbaar is voor alle clusters binnen Snowflake. Deze database-opslag kan worden gehost op Azure, GCP en AWS. 

Dit maakt het mogelijk om resources efficiënter te schalen, te beheren en te delen met externe partijen. De schaalbaarheid is echt het grootste selling point van Snowflake. Snowflake ondersteunt daarnaast SQL en heeft een intuïtieve web-based user interface voor beheer en het schrijven van query’s. 

In de afbeelding hieronder kun je zien dat opslag en gegevensverwerking is gescheiden, waarbij je cluster bestaat uit diverse virtuele nodes.

Schema 1 - blog Snowflake or Redshift

Redshift
Redshift maakt gebruik van geoptimaliseerde columnar storage en biedt uitstekende prestaties bij het uitvoeren van complexe, analytische queries. Vooral bij een grote hoeveelheid dagelijkse query’s excelleert Redshift optimaal. Beheerders kunnen Redshift gemakkelijk beheren via de intuïtieve AWS Management Console, wat het opzetten en onderhouden van de datawarehouse vereenvoudigt.

In de onderstaande afbeelding zie je de onderliggende architectuur van een provisioned Redshift cluster. Een cluster zit vast aan het aantal nodes, maar met Redshift Spectrum heb je in principe oneindig opslag via S3. Dit maakt het erg kostenefficiënt.

Schema 2 DS-blog Snowflake

Snowflake: Snowflake is ideaal voor datagedreven organisaties die snel moeten schalen en flexibiliteit nodig hebben in hun data warehousing. Klanten gebruiken het voor geavanceerde analyses, rapportage en het consolideren van gegevens uit verschillende bronnen. Hier hangt echter wel een groter kostenplaatje aan vast. Check de referenties [2] voor een uitgebreid prijsoverzicht.

Redshift: Redshift wordt vaak gekozen door bedrijven die al gebruikmaken van andere AWS-services en de optimale integratie waarderen. Het wordt vaak gebruikt voor datawarehousing in combinatie met Amazon S3 voor dataopslag. Dit zorgt daarentegen wel voor iets minder flexibiliteit en een hogere drempel om de service te gebruiken.

Criteria

Snowflake

Redshift

Elasticiteit

Zeer hoge elasticiteit en schaalbaarheid

★★★

Goed schaalbaar binnen AWS-ecosysteem

Integratie met AWS

Beperkte integratie met AWS

Naadloze integratie met andere AWS-services

★★★

Prestaties

Uitstekend voor complexe queries

★★

Uitstekend bij gebruik van AWS-native services

★★

Beheer en onderhoud

Volledig beheerd, weinig onderhoud vereist

★★★

Beheer vereist enige aandacht

★★

Gebruiksgemak

Intuïtieve interface en eenvoudig in gebruik

★★★

Vertrouwde AWS-interface en API's

★★

Prijs tarieven

Pay-as-you-go per warehouse size in credits

★★

Pay-as-you-go per node

★★★

De volgende matrixen vergelijken de kostenstructuur van Redshift (provisioned) en Snowflake. Bij een Redshift-cluster betaal je maandelijks een vast bedrag op basis van het aantal gebruikte uren, terwijl Snowflake een creditsysteem hanteert, waarbij organisaties betalen op basis van hun verbruik (~Є3,00 per credit). Met Snowflake geldt: hoe groter je cluster is, des te meer credits je per uur verbruikt. 

Snowflake warehouse types

Size

X-Small

Small

Medium

Large

X-Large

2X-Large

3X-Large

4X-Large

5X-Large

6X-Large

Nodes

1

2

4

8

16

32

64

128

256

512

Cores

8

16

32

64

128

256

512

1024

2048

4096

GB RAM

16

32

64

128

256

512

1024

2048

4096

8192

~Cost Є per hour

3

6

12

24

48

96

192

384

768

1536

Schema medium

Voorbeeld van een Snowflake Medium warehouse

Redshift warehouse types

Size

dc2.large

dc2.8large

ra3.xlplus

ra3.4xlarge

ra3.16xlarge

Nodes

1

1

1

1

1

Cores

2

32

4

12

48

GB RAM

15

244

32

96

384

~Cost Є per month

216

4032

865,44

2596,32

10385,28

In de vergelijking is expres gekozen voor een variabel Snowflake uurtarief tegen een vast Redshift maandtarief aangezien de kosten bij Redshift redelijk vaststaan en minder flexibel zijn. Nog steeds is de vergelijking daarmee moeilijk te maken door het pay-as-you-go systeem, waarbij Snowflake automatisch schaalt op basis van je verbruik. De opslagkosten zijn ook buiten beschouwing gehouden, omdat de initiële kosten per TB identiek zijn aan elkaar volgens het creditsysteem [2]. 

Schema 30 days

In de afbeelding kun je zien dat de maandelijkse kosten voor een ra3.xlplus cluster liggen op 865,44. Bij een verbruik van 12 dagen liggen de kosten van een X-Small warehouse break-even met de maandelijkse Redshift kosten. Let er hierbij wel op dat een Snowflake warehouse hiervoor 12 dagen aan elkaar moet draaien zonder af te schalen. Normaliter is dit wel het geval, aangezien daar de kracht van Snowflake ligt.

Overigens hebben we ook de vergelijking gemaakt met Redshift Serverless, wat een vergelijkbare schaalbaarheid heeft als Snowflake. Bij Redshift Serverless betaal je per uur voor een Redshift Processing Unit (RPU). Een RPU staat ongeveer gelijk aan een core en kost Є0,375. Wanneer je dit keer acht doet dan kom je uit op Є3,00 en dit is precies evenveel als de standaard creditkosten (Є3,00) voor hetzelfde aantal cores bij Snowflake. In dit geval zouden beide data warehouses ongeveer evenveel kosten als de hoeveelheid die wordt afgenomen.

Na het uitvoerige onderzoek naar Snowflake en Redshift binnen een AWS-omgeving, kunnen we concluderen dat beide platformen sterke punten hebben, maar ook verschillende toepassingsgebieden en prijsmodellen. Hieronder vind je een samenvatting van de belangrijkste overwegingen en aanbevelingen:

  • Elasticiteit: Snowflake biedt een zeer hoge elasticiteit en schaalbaarheid, terwijl Redshift goede schaalbaarheid binnen het AWS-ecosysteem biedt.

  • Integratie met AWS: Redshift integreert naadloos met andere AWS-services, terwijl Snowflake beperktere integratie heeft.

  • Prestaties: Beide platformen bieden uitstekende prestaties, maar Snowflake excelleert in complexe queries, terwijl Redshift goed presteert bij gebruik van AWS-native services.

  • Beheer en onderhoud: Snowflake is volledig beheerd met weinig onderhoud, terwijl Redshift enige aandacht vereist voor beheer.

  • Gebruiksgemak: Snowflake heeft een intuïtieve interface en is eenvoudig in gebruik, terwijl Redshift de vertrouwde AWS-interface en API's biedt.

  • Prijs tarieven: Snowflake hanteert een pay-as-you-go creditsysteem, terwijl Redshift een vaste prijs per node heeft.

Beide platformen bieden unieke voordelen die passen bij verschillende organisatiebehoeften en projecten. Snowflake is ideaal voor bedrijven die behoefte hebben aan flexibiliteit en schaalbaarheid, vooral bij irreguliere workloads. Aan de andere kant kan Redshift de voorkeur hebben voor organisaties die al gebruikmaken van het AWS-ecosysteem en die waarde hechten aan naadloze integratie met andere AWS-services.

Als je nog steeds twijfelt over welk platform het beste past bij jouw specifieke behoeften of als je wilt sparren met een expert over jouw data warehousing strategie, aarzel dan niet om contact op te nemen met ons datateam. We staan klaar om je te helpen bij het nemen van de juiste beslissing voor jouw organisatie.