Lumihiutale eli Snowflake tietovarastoinnissa

Invenco AWS VPC Snowflake pilvipalvelut

Tällä hetkellä tietovarastointimaailmassa yksi kuumimmista aiheista on Snowflake – suomeksi lumihiutale.

Snowflake määrittelee itsensä seuraavasti: “Snowflake is the data warehouse built for the cloud that can host your data, serve your users with zero management and transparent ‘pay as you go’ pricing.”

Lyhyesti Snowflake on seuraavaa;

  • SaaS-tietovarasto Amazonin pilvessä (Elastic Data Warehousing)
  • SQL-tietokantamoottori suunniteltu arkkitehtuuriltaan uniikisti pilveä varten; ei käytä olemassaolevia tietokantoja tai big data -alustoja (esim. Hadoop)
  • käyttäjärajapinnassa monia samankaltaisuuksia vanhojen tietovarastoratkaisujen kanssa sisältäen kuitenkin lisättyä toiminnallisuutta
  • laskutus ”Snowflake krediiteillä” käytön, tallennustilan ja uniikin datan mukaisesti. Ei veloitusta, jos tietovarastoa ei käytetä.

AWS VPC Snowflake pilvipalvelut Invenco

Snowflakessa on kolme kerrosta:

Database storage -kerros käytettävissä SQL:lla (taulut/näkymät):

  • Relaatio -datan tallennus standardilla SQL -tietotyypeillä
  • Puolirakenteisen tiedon tallennus (esim. JSON, Avro) Snowflaken VARIANT-tietotyypillä
  • Tallennetaan Amazon S3 pilveen tiivistettynä ja salattuna

Quey Processing -kerros:

  • Tietokantakyselyiden prosessointiin Amazon EC2 –palvelun avulla
  • Käyttäjä voi luoda itsenäisiä virtuaalisia tietovarastoja Database storage -kerroksen käyttämiseksi
  • Virtuaalisten tietovarastojen kokoa voidaan muuttaa ilman katkoa
  • Muutokset datassa näkyvät heti kaikissa virtuaalisessa tietovarastoissa

Cloud services -kerros:

  • Koordinoi ja ja operoi koko järjestelmää, esim. käyttäjäsessiot ja -autentikointi, datan turvaaminen, metadatan hallinnointi, virtuaalisten tietovarastojen käsittely
  • Snowflaken hallnnoima, käyttää AWS:n jaettuja resurssialueita
  • Käyttäjäclientit: JDBC- ja ODBC –ajurit, ETL- (esim. Informatica) ja BI- (esim. Tableau) sovellukset, natiivit konnektorit (esim. Python), SnowSQL –commandline ja oma web client

Alla on vertailua perinteisiin tietovarastoihin:

SnowflakePerinteinen DW
Kaikki data yhdessä kerroksessaDatamartit vaativat kopioimista
”Rajoittamaton” määrä virtuaalisia tietovarastoja”Yksi” tietovarasto
Stoppaus, pause, koon muutoksetManuaalinen koon muutos
Automaattinen kuormaan sopeutuminenJoustamaton kapasiteetti (liikaa tai liian vähän)
Yksinkertainen käyttöliittymä (web-client)Vaatii sovellusosaajia
Tietojen palautus saatavilla 24 tuntia välittömästi ja omatoimisesti (UNDO-toiminto) (90 päivää Enterprise versio).Ei omatoimista palautusta (esim. drop table)
”zero-copy cloning”=data kloonataan, ei kopioida -> data on yhdessä paikassa (esim. nopeaan ja turvalliseen tuotantodatan korjaukseen)Data on kopioitava, toimitettava manuaalisesti testistä tuotantoon, huolehdittava datajoukkojen yhdenmukaisuudesta
Useamman tietokannan käyttö samassa kyselyssä normaalisti JOIN -lauseellaUseamman tietokannan käyttö samassa kyselyssä vaikeaa tai mahdotonta ilman aikaa vievää integraatiotyötä
Tiedon jakaminen organisaation ulkopuolelle vaatii vain pääsyn myöntämisen tietokantaan. Ei vaadi perinteistä tiedonsiirtoa, muutokset näkyvät heti jaetussa datassa.Tiedon jakaminen/vastaanottaminen (esim. ftp) on työlästä vaatien ETL-prosessien kehittämistä. Lisäksi suorituskykyvaatimukset huomioitava isojen datamassojen osalta.
Kyselyvälimuisti säilyy kokonaisuudessaan automaattisesti Amazon S3:ssa 24 tuntia (nopeuttaa toistuvia kyselyitä esim. BI-välineistä), käytettävissä kaikista tietovarastoistaVälimuisti konfiguroitava/enabloitava erikseen, sisältää vain tavallisimmat/viimeisimmät kyselytulokset, pitkät kyselyjonot, tallennustila varattava erikseen
Puolirakenteisen tiedon kysely ja transformointi SQL:llä, voidaan yhdistää perinteiseen relaatiodataan suoraan esim. tietokantataulussa, nopeat kyselytRajoitettu tuki puolirakenteiselle tiedolle, yleensä työlästä saada käyttöön, vaatii erikoisosaamista (noSQL), siiloutuminen relaatiodatan kanssa, hitaat kyselyt
Automaattinen ja jatkuva datan lataus Snowpipen kautta (data streaming)Jatkuvan datan lataus vaatii yleensä erillisen alustan (esim. Apache Kafka)

Suomessakin Snowflake on myös saanut jalansijaa ja hankkeita on käynnissä useita.

Jaa

Ota yhteyttä