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.
Waarom vinden we het belangrijk om dit te delen?
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.
Wat houden Snowflake en Redshift in?
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.
Hoe werken ze?
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.
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.
Voorbeelden van use cases bij klanten
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.
Vergelijkende Matrix
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 | ★★★ |
Prijsvergelijkingen
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 |
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].
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.
Aanbevelingen en samenvatting
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.
Heb je hulp nodig bij het kiezen van het juiste platform?
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.