Programmering

Snowflake-gennemgang: Et datalager forbedret i skyen

Datalagerhuse, også kaldet enterprise data warehouses (EDW), er meget parallelle SQL- eller NoSQL-databaser designet til analyse. De giver dig mulighed for at importere data fra flere kilder og generere komplicerede rapporter hurtigt fra petabyte data.

Forskellen mellem et datalager og en datamart er, at en datamart typisk er begrænset til et enkelt emne og en enkelt afdeling. Forskellen mellem et datalager og en datasø er, at en datasø lagrer data i sit naturlige format, ofte klodser eller filer, mens et datalager gemmer data som en database.

Kort om snefnug

Snowflake er et fuldt relationelt ANSI SQL-datalager, der blev bygget fra bunden til skyen. Dens arkitektur adskiller beregning fra lager, så du kan skalere op og ned i farten uden forsinkelse eller afbrydelse, selv når forespørgsler kører. Du får den ydelse, du har brug for nøjagtigt, når du har brug for den, og du betaler kun for den beregning, du bruger. Snowflake kører i øjeblikket på Amazon Web Services og Microsoft Azure.

Snowflake er en fuldt søjledatabase med vektoriseret udførelse, hvilket gør den i stand til at tackle selv de mest krævende analytiske arbejdsbelastninger. Snowflakes adaptive optimering sikrer, at forespørgsler automatisk får den bedst mulige ydeevne uden indekser, fordelingsnøgler eller tuningparametre, der skal administreres.

Snowflake kan understøtte ubegrænset samtidighed med sin unikke delte dataarkitektur med flere klynger. Dette gør det muligt for flere computerklynger at fungere samtidigt på de samme data uden at forringe ydelsen. Snowflake kan endda skaleres automatisk for at håndtere forskellige samtidige krav med sin virtuelle lagerfunktion med flere klynger og tilføjer gennemsigtigt beregningsressourcer i spidsbelastningsperioder og skaleres ned, når belastningerne aftager.

Snowflake-konkurrenter

Konkurrenter til Snowflake i skyen inkluderer Amazon Redshift, Google BigQuery og Microsoft Azure SQL Data Warehouse. Andre store konkurrenter, såsom Teradata, Oracle Exadata, MarkLogic og SAP BW / 4HANA, kan installeres i skyen, i lokaler og på apparater.

Amazon Redshift

Amazon Redshift er et hurtigt, skalerbart datalager, der giver dig mulighed for at analysere alle dine data på tværs af dit datalager og din Amazon S3-datasø. Du spørger Redshift ved hjælp af SQL. Et Redshift-datalager er en klynge, der automatisk kan implementere og fjerne kapacitet med samtidig forespørgsel. Imidlertid er alle klyngenoder tilvejebragt i den samme tilgængelighedszone.

Microsoft Azure SQL Data Warehouse

Microsoft Azure SQL Data Warehouse er et skybaseret datalager, der bruger Microsoft SQL-motoren og MPP (massiv parallel behandling) til hurtigt at køre komplekse forespørgsler på tværs af petabytes af data. Du kan bruge Azure SQL Data Warehouse som en nøglekomponent i en big data-løsning ved at importere big data til SQL Data Warehouse med enkle PolyBase T-SQL-forespørgsler og derefter bruge MPP's styrke til at køre højtydende analyser.

Azure SQL Data Warehouse er tilgængeligt i 40 Azure-regioner rundt om i verden, men en given lagerserver findes kun i en enkelt region. Du kan skalere din datalager ydeevne efter behov, men alle kørende forespørgsler annulleres og rulles tilbage.

Google BigQuery

Google BigQuery er et serverløst, meget skalerbart og omkostningseffektiv cloud-datalager med GIS-forespørgsler, en indbygget BI Engine og maskinindlæring indbygget. BigQuery kører hurtige SQL-forespørgsler på gigabyte til petabytes data og gør det ligetil at deltage i offentligheden eller kommercielle datasæt med dine data.

Du kan kun indstille den geografiske placering af et BigQuery-datasæt på oprettelsestidspunktet. Alle tabeller, der henvises til i en forespørgsel, skal gemmes i datasæt på samme placering. Det gælder også for eksterne datasæt og opbevaringsbukke. Der er yderligere begrænsninger for placeringen af ​​eksterne Google Cloud Bigtable-data. Forespørgsler køres som standard i samme region som dataene.

Steder kan være specifikke steder, såsom det nordlige Virginia eller store geografiske områder, såsom EU eller USA. Hvis du vil flytte et BigQuery-datasæt fra en region til en anden, skal du eksportere det til en Google Cloud Storage-spand samme sted som dit datasæt, kopiere spanden til den nye placering og indlæse den i BigQuery på den nye placering.

Snefnugarkitektur

Snowflake bruger virtuelle beregningsinstanser til sine beregningsbehov og en lagringstjeneste til vedvarende lagring af data. Snowflake kan ikke køres på private skyinfrastrukturer (lokalt eller hostet).

Der er ingen installation at udføre og ingen konfiguration. Al vedligeholdelse og tuning håndteres af Snowflake.

Snowflake bruger et centralt datalager til vedvarende data, der er tilgængelige fra alle beregningsnoder i datalageret. Samtidig behandler Snowflake forespørgsler ved hjælp af MPP (massivt parallel behandling) beregningsklynger, hvor hver node i klyngen gemmer en del af hele datasættet lokalt.

Når data indlæses i Snowflake, reorganiserer Snowflake disse data i deres interne komprimerede, søjleformede format. De interne dataobjekter er kun tilgængelige via SQL-forespørgsler. Du kan oprette forbindelse til Snowflake via dets web-UI, via en CLI (SnowSQL), gennem ODBC- og JDBC-drivere fra applikationer som Tableau, gennem native stik til programmeringssprog og gennem tredjepartsstik til BI- og ETL-værktøjer.

Snefnug

Snowflake-funktioner

Sikkerhed og databeskyttelse. Sikkerhedsfunktionerne i Snowflake varierer efter udgave. Selv standardudgaven tilbyder automatisk kryptering af alle data og understøtter multifaktorautentificering og enkelt login. Enterprise-tilføjelsen tilføjer periodisk genindtastning af krypterede data, og Enterprise for Sensitive Data-udgaven tilføjer support til HIPAA og PCI DSS. Du kan vælge, hvor dine data gemmes, hvilket hjælper med at overholde EUs GDPR-regler.

Standard og udvidet SQL-understøttelse. Snowflake understøtter de fleste DDL og DML defineret i SQL: 1999 plus transaktioner, nogle avancerede SQL-funktioner og dele af SQL: 2003 analytiske udvidelser (vinduesfunktioner og grupperingssæt). Det understøtter også laterale og materialiserede visninger, samlede funktioner, lagrede procedurer og brugerdefinerede funktioner.

Værktøjer og grænseflader. Især giver Snowflake dig mulighed for at kontrollere dine virtuelle lagre fra GUI eller kommandolinje. Det inkluderer oprettelse, ændring af størrelse (med nul nedetid), suspendering og aflevering af lagre. Det er meget praktisk at ændre størrelsen på et lager, mens en forespørgsel kører, især når du har brug for at fremskynde en forespørgsel, der tager for meget tid. Så vidt jeg ved, er det ikke implementeret i nogen anden EDW-software.

Forbindelse Snowflake har stik og / eller drivere til Python, Spark, Node.js, Go, .Net, JDBC, ODBC og dplyr-snowflakedb, en open source dplyr-pakkeudvidelse, der opretholdes på GitHub.

Data import og eksport. Snowflake kan indlæse en bred vifte af data og filformater. Det inkluderer komprimerede filer; afgrænsede datafiler; JSON-, Avro-, ORC-, Parket- og XML-formater; Amazon S3 datakilder; og lokale filer. Det kan udføre masseindlæsning og aflæsning til og ud af tabeller såvel som kontinuerlig masseindlæsning fra filer.

Datadeling. Snowflake har support til sikker deling af data med andre Snowflake-konti. Dette strømline ved brug af nul-kopi tabelkloner.

Snefnug

Snowflake tutorials

Snowflake tilbyder en hel del tutorials og videoer. Nogle hjælper dig med at komme i gang, andre udforsker specifikke emner og andre demonstrerer funktioner.

Jeg anbefaler at arbejde igennem den praktiske oversigt, der er beskrevet i Hands-on Lab Guide for Snowflake Free Trial.) Det tog mig under en time og kostede mindre end fem point. Det efterlod yderligere 195 point i den gratis prøveperiode, hvilket skulle være nok til at importere nogle reelle data og teste nogle forespørgsler.

Selvstudiet bruger tungt Snowflake-regneark, en bekvem måde at køre kommandoer og SQL på på web-UI. Det dækker blandt andet dataindlæsning; forespørgsel, caching af resultater og kloning; semistrukturerede data; og tidsrejser til gendannelse af databaseobjekter.

Samlet set finder jeg Snowflake ret imponerende. Jeg forventede, at det ville være klodset, men det er slet ikke tilfældet. Faktisk går mange af dets datalageroperationer meget hurtigere, end jeg havde forventet, og når der er en, der ser ud til at kravle, kan jeg gribe ind og opgradere datalageret uden at afbryde, hvad der sker.

Meget af skaleringen kan automatiseres. Når du opretter et datalager (se skærmbillede ovenfor), er der en mulighed for at tillade flere klynger, en mulighed for at indstille skaleringspolitikken, en mulighed for automatisk at suspendere og en mulighed for automatisk genoptagelse. Standardperioden for automatisk suspendering er 10 minutter, hvilket forhindrer lageret i at forbruge ressourcer, når det er inaktivt i længere tid. Automatisk genoptagelse er næsten øjeblikkelig og sker, når der er en forespørgsel mod lageret.

Da Snowflake tilbyder en 30-dages gratis prøveperiode med en kredit på $ 400, og der ikke er behov for at installere noget, bør du være i stand til at afgøre, om Snowflake passer til dine formål uden kontante udgifter. Jeg vil anbefale at give det et spin.

Koste: $ 2 / kredit plus $ 23 / TB / måned opbevaring, standardplan, forudbetalt opbevaring. En kredit svarer til en node * time, faktureret af den anden. Højere planer er dyrere.

Platforme: Amazon Web Services, Microsoft Azure