Redshift is een geweldige cloud datawarehouse oplossing en was in zekere zin, de eerste die de trend van de migratie naar een massive parallel processing cloud datawarehouse heeft ingezet.

Snowflake heeft echter een nieuwe benadering voor een cloud datawarehouse omdat het volledig is vanaf scratch is ontwikkeld voor de cloud, hierdoor heeft Snowflake de volgende voordelen ten opzichte van Redshift:

Kosten

Redshift heeft geen fysieke scheiding van Compute en Storage. Als je meer opslagruimte nodig hebt, moet je meer clusters toevoegen, wat betekent dat je in feite betaalt voor meer rekenkracht in plaats van opslagruimte. Met Snowflake zijn Compute en Storage volledig gescheiden, de storagekosten zijn hetzelfde als het opslaan van gegevens op Amazon S3. AWS probeerde dit probleem aan te pakken door Redshift Spectrum in te introduceren, Met Redshift Spectrum is het mogelijk geworden om gegevens te bevragen die direct op S3 staan, maar dat werkt minder goed dan als met Snowflake.

Omdat Redshift niet automatisch schaalt, moet je een cluster ter grote van de piekbelasting afnemen en onderhouden, waar je in Snowflake storage naar behoefte kunt gebruiken, en op en neer kan schalen op basis van je gebruik. Snowflake ondersteunt ook “auto-suspend” om geen kosten te maken op het moment dat niemand het datawarehouse gebruikt.

Al met al kan een overstap van Redshift naar Snowflake veel kosten besparen.

Database functies

Snowflake ondersteunt Semi-Structured datatypes – Variant, Object en Array, zodat je gegevens kunt laden zonder je zorgen te hoeven maken over het schema. Voor sommige usecases is dit erg handig. Redshift heeft dergelijke ondersteuning niet.

Infinite Strings – Redshift Varchar-gegevenstype is beperkt tot 65535 tekens. 

Bovendien moet je de kolomlengte vooruit kiezen en het is dus bijna vanzelfsprekend om de maximale grootte te gebruiken, maar hier creëer je een overhead mee. Met Snowflake zijn strings beperkt tot 16 MB en er is geen overhead door het gebruik van de maximale grootte. De standaardwaarde is de maximale tekenreeks, waardoor je deze niet vooraf hoeft te weten.

Snowflake ondersteunt Data Sharing, het delen van gegevens tussen verschillende accounts (bijvoorbeeld van klanten, of leveranciers). Dataproviders kunnen gegevens delen met dataconsumers, en hiervoor hoeft zelfs geen kopie van de data gemaakt te worden. Denk aan een soort van Dropbox voor databasetabellen. Dit is een echte game-changer voor hoe mensen werken met gegevens van derden, en uniek voor Snowflake, dus onnodig te vertellen dat dit niet wordt ondersteund door Redshift.

Onderhoud en DevOps

Met Redshift is het vereist om regelmatig te vacuümen. Snowflake doet dit allemaal out-of-the-box. Met heel grote tabellen kan dit enorme hoofdpijn betekenen met Redshift.

Upscalen / Downscalen – Redshift schaalt niet gemakkelijk op en neer, de functie formaat wijzigen van Redshift is extreem duur en veroorzaakt urenlange downtime. Met Snowflake is het schalen van de opslagcapaciteit in een database een kwestie van seconden, en omdat compute en storage gescheiden zijn, is het niet nodig om gegevens te kopiëren om op en neer te schalen.

Met Redshift kijken alle gebruikers naar hetzelfde cluster en zijn dus concurrent users op hetzelfde systeem. Workload Management-queues zijn de “Redshift-manier” om hiermee om te gaan, maar het is een zeer omslachtige reeks van regels om te beheren en te begrijpen. Met Snowflake kunt u eenvoudig verschillende warehouses van verschillende groottes starten die dezelfde gegevens bekijken, zonder gegevens te kopiëren en ze toewijzen aan verschillende taken / gebruikers.

Ongeacht welk datawarehouse u ook kiest, of als u wenst te migreren van Redshift naar Snowflake DataBright kan u helpen met het uitrollen van de juiste infrastructuur.