Snowflake review: Ett datalager som blev bättre i molnet

Datalager, även kallade enterprise data warehouse (EDW), är mycket parallella SQL- eller NoSQL-databaser utformade för analys. De låter dig importera data från flera källor och generera komplicerade rapporter snabbt från petabyte data.

Skillnaden mellan ett datalager och en datamart är att en datamark vanligtvis är begränsad till ett enskilt ämne och en enda avdelning. Skillnaden mellan ett datalager och en datasjö är att en datasjö lagrar data i sitt naturliga format, ofta blobbar eller filer, medan ett datalager lagrar data som en databas.

Snöflinga i korthet

Snowflake är ett helt relationellt ANSI SQL-datalager som byggdes från grunden för molnet. Dess arkitektur skiljer beräkning från lagring så att du kan skala upp och ner i farten, utan dröjsmål eller störningar, även när frågor körs. Du får den prestanda du behöver exakt när du behöver den och du betalar bara för den beräkning du använder. Snowflake körs för närvarande på Amazon Web Services och Microsoft Azure.

     Snowflake är en helt kolumnerad databas med vektoriserad körning, vilket gör att den kan hantera även de mest krävande analytiska arbetsbelastningarna. Snowflakes adaptiva optimering säkerställer att frågor automatiskt får bästa möjliga prestanda utan index, distributionsnycklar eller inställningsparametrar att hantera.

     Snowflake kan stödja obegränsad samtidighet med sin unika delade dataarkitektur med flera kluster. Detta gör att flera beräkningskluster kan fungera samtidigt på samma data utan att försämra prestanda. Snowflake kan till och med skala automatiskt för att hantera olika samtidighetskrav med sin virtuella lagerfunktion i flera kluster, och lägger transparent till beräkningsresurser under toppbelastningsperioder och nedskalas när belastningarna avtar.

Snöflinga konkurrenter

Konkurrenter till Snowflake i molnet inkluderar Amazon Redshift, Google BigQuery och Microsoft Azure SQL Data Warehouse. Andra stora konkurrenter, såsom Teradata, Oracle Exadata, MarkLogic och SAP BW / 4HANA, kan installeras i molnet, lokaler och apparater.

Amazon Redshift

Amazon Redshift är ett snabbt, skalbart datalager som låter dig analysera all din data över ditt datalager och din Amazon S3-datalag. Du frågar efter Redshift med SQL. Ett Redshift-datalager är ett kluster som automatiskt kan distribuera och ta bort kapacitet med samtidig frågelastning. Emellertid tillhandahålls alla klusternoder i samma tillgänglighetszon.

Microsoft Azure SQL Data Warehouse

Microsoft Azure SQL Data Warehouse är ett molnbaserat datalager som använder Microsoft SQL-motorn och MPP (massivt parallell bearbetning) för att snabbt köra komplexa frågor över petabytes av data. Du kan använda Azure SQL Data Warehouse som en nyckelkomponent i en big data-lösning genom att importera big data till SQL Data Warehouse med enkla PolyBase T-SQL-frågor och sedan använda kraften från MPP för att köra högpresterande analyser.

Azure SQL Data Warehouse finns i 40 Azure-regioner runt om i världen, men en viss lagerserver finns bara i en enda region. Du kan skala din datalagerprestanda på begäran, men alla pågående frågor kommer att avbrytas och rullas tillbaka.

Google BigQuery

Google BigQuery är ett serverlöst, mycket skalbart och kostnadseffektivt molndatalager med GIS-frågor, en inbyggd BI Engine och maskininlärning inbyggd. BigQuery kör snabba SQL-frågor på gigabyte till petabyte data och gör det enkelt att gå med i allmänheten eller kommersiella datamängder med dina data.

Du kan bara ställa in den geografiska platsen för en BigQuery-datauppsättning endast vid skapandet. Alla tabeller som det hänvisas till i en fråga måste lagras i datamängder på samma plats. Det gäller även externa datamängder och lagringshinkar. Det finns ytterligare begränsningar för placeringen av externa Google Cloud Bigtable-data. Som standard körs frågor i samma region som data.

Platser kan vara specifika platser, såsom norra Virginia, eller stora geografiska områden, såsom EU eller USA. För att flytta en BigQuery-datauppsättning från en region till en annan måste du exportera den till en Google Cloud Storage-skopa på samma plats som din datamängd, kopiera skopan till den nya platsen och ladda den till BigQuery på den nya platsen.

Snöflinga arkitektur

Snowflake använder virtuella beräkningsinstanser för sina beräkningsbehov och en lagringstjänst för ihållande lagring av data. Snowflake kan inte köras på privata molninfrastrukturer (lokalt eller värd).

Det finns ingen installation att utföra och ingen konfiguration. Allt underhåll och justering hanteras av Snowflake.

Snowflake använder en central datalager för bestående data som är tillgänglig från alla beräkningsnoder i datalagret. Samtidigt bearbetar Snowflake frågor med MPP (massivt parallell bearbetning) beräkningskluster där varje nod i klustret lagrar en del av hela datamängden lokalt.

När data laddas in i Snowflake, omorganiserar Snowflake dessa data till sitt interna komprimerade, kolumnformat. De interna dataobjekten är endast tillgängliga via SQL-frågor. Du kan ansluta till Snowflake via dess webbgränssnitt, via en CLI (SnowSQL), genom ODBC- och JDBC-drivrutiner från applikationer som Tableau, via inbyggda kontakter för programmeringsspråk och via tredjepartsanslutningar för BI- och ETL-verktyg.

Snöflinga

Snöflinga funktioner

Säkerhet och dataskydd. Säkerhetsfunktionerna som erbjuds i Snowflake varierar beroende på utgåva. Även standardutgåvan erbjuder automatisk kryptering av all data och stöd för multifaktorautentisering och enkel inloggning. Enterprise-tillägget lägger till periodisk nyckling av krypterad data, och Enterprise for Sensitive Data-utgåvan lägger till stöd för HIPAA och PCI DSS. Du kan välja var dina data lagras, vilket hjälper dig att följa EU: s GDPR-bestämmelser.

Standard och utökat SQL-stöd. Snowflake stöder de flesta DDL och DML definierade i SQL: 1999, plus transaktioner, några avancerade SQL-funktioner och delar av SQL: 2003 analytiska tillägg (fönsterfunktioner och grupperingsuppsättningar). Den stöder också sidovyer och materialiserade vyer, aggregerade funktioner, lagrade procedurer och användardefinierade funktioner.

Verktyg och gränssnitt. Speciellt låter Snowflake dig styra dina virtuella lager från GUI eller kommandorad. Det inkluderar att skapa, ändra storlek (med noll driftstopp), stänga av och släppa lager. Att ändra storlek på ett lager medan en fråga körs är mycket bekvämt, särskilt när du behöver påskynda en fråga som tar för mycket tid. Så vitt jag vet är det inte implementerat i någon annan EDW-programvara.

Connectivity Snowflake har anslutningar och / eller drivrutiner för Python, Spark, Node.js, Go, .Net, JDBC, ODBC och dplyr-snowflakedb, en öppen källkod dplyr-paketförlängning som upprätthålls på GitHub.

Dataimport och export. Snowflake kan ladda ett brett spektrum av data och filformat. Det inkluderar komprimerade filer; avgränsade datafiler; JSON-, Avro-, ORC-, Parquet- och XML-format; Amazon S3 datakällor; och lokala filer. Det kan göra massladdning och lossning till och från tabeller, liksom kontinuerlig massladdning från filer.

Datadelning. Snowflake har stöd för att säkert dela data med andra Snowflake-konton. Detta effektiviseras genom användning av noll-kopieringstabellkloner.

Snöflinga

Handledning för snöflingor

Snowflake erbjuder en hel del handledning och videor. Vissa hjälper dig att komma igång, andra utforskar specifika ämnen och andra visar funktioner.

Jag rekommenderar att du går igenom den praktiska översikten som beskrivs i Hands-on Lab Guide för Snowflake Free Trial.) Det tog mig under en timme och kostade mindre än fem poäng. Det lämnade ytterligare 195 poäng i den kostnadsfria provperioden, vilket borde vara tillräckligt för att importera riktiga data och testa några frågor.

Självstudien använder kraftigt Snowflake-kalkylblad, ett bekvämt sätt att köra kommandon och SQL i webbgränssnittet. Den täcker bland annat dataladdning; fråga, resultatcaching och kloning; halvstrukturerad data; och tidsresor för att återställa databasobjekt.

Sammantaget tycker jag att Snowflake är ganska imponerande. Jag förväntade mig att det skulle bli klumpigt, men så är det inte alls. Faktum är att många av dess datalagerverksamheter går mycket snabbare än jag förväntade mig, och när det finns en som verkar krypa kan jag ingripa och öka datalagret utan att avbryta vad som händer.

Mycket av skalningen kan automatiseras. När du skapar ett datalager (se skärmdump ovan) finns det ett alternativ att tillåta flera kluster, ett alternativ för att ställa in skalningsprincipen, ett alternativ för automatisk avstängning och ett alternativ för att återuppta automatiskt. Standardperioden för automatisk avstängning är 10 minuter, vilket förhindrar att lagret förbrukar resurser när det är inaktivt längre än så. Automatisk återupptagning är nästan omedelbar och inträffar när det finns en fråga mot lagret.

Med tanke på att Snowflake erbjuder en 30-dagars gratis testperiod med en kredit på 400 $ och det inte finns något behov av att installera någonting, bör du kunna avgöra om Snowflake passar dina syften utan kontantutlägg. Jag rekommenderar att du snurrar.

-

Kostnad: $ 2 / kredit plus $ 23 / TB / månad lagring, standardplan, förbetald lagring. En kredit motsvarar en nod * timme, fakturerad av den andra. Planer på högre nivå är dyrare.

Plattformar: Amazon Web Services, Microsoft Azure