December 11, 2023
Om ni idag sitter på ett datalager on-premises och funderar på att gå upp i molnet är det alltid bra att börja med att ta fram en kravspecifikation och kartlägga behoven i syfte att se hur väl tekniken stödjer dessa. Nästa steg bör vara en Proof of Concept (POC) inom ett avgränsat område för att på det sättet testa olika leverantörer samt få en bättre känsla av vad det innebär att köra verksamhetens datalager i en molntjänst.
Tidigare har vi skrivit om datalager i molnet i allmänhet och tre molntjänster i synnerhet; Redshift, BigQuery och Snowflake. I denna text kommer vi att ta upp ett fjärde alternativ, Microsofts Synapse SQL pool (tidigare Azure SQL Data Warehouse) som från och med november 2019 är en del av Azure Synapse Analytics.
MPP och DWU
Synapse SQL pool använder sig av vad som brukar kallas Massively Parallel Processing (MPP) vilket i praktiken innebär att den kör på flera maskiner istället för en stor maskin vilket ofta är fallet för lösningar on-premises. Frågor som ställs mot databasen distribueras ut på flera maskiner för att ge prestanda även mot stora datamängder.
Data Warehouse Units (DWU) kalla den enhet i tjänsten som kombinerar CPUs, RAM och lagringsutrymme. Fler DWU innebär mer kapacitet och högre prestanda.
En viktig distinktion att göra gällande frågor mot databasen är att det finns en kategori av nod som kallas kontrollerande nod som ser till att fördela ut frågor till olika noder och som sedan hämtar tillbaka resultatet. Sedan finns det beräkningsnoder som sköter all processning och det är dessa noder som skalas upp och ner när DWU ökar respektive minskar.
Hantering av datalager
Skapandet och övervakningen av SQL pool sker i Azure portal eller via PowerShell om så önskas. Om ni inte redan har ett konto så kan ni skapa ett gratis här. I portalen kan ni på ett enkelt sätt ändra inställningar, skala upp och ner samt felsöka och se status på datalagret.
För att bygga tabeller, vyer, procedurer, ställa frågor etc. så används Management Studio precis på samma sätt som för SQL Server on-premises.
För laddning av data rekommenderar Microsoft Polybase för att uppnå bäst resulatat. Beroende på var man hämtar data kan något av följande användas: PolyBase (T-SQL), PolyBase (SSIS), PolyBase (Azure Data Factory) eller PolyBase (Azure Databricks). Alternativ till Polybase är BCP eller SQL BulkCopy.
Pris
Priset är direkt kopplat till antalet DWU. Vid val av DWU görs en uppskattning på kostnad per timme.
Data warehouse units (DWU) | # of Compute nodes | # of distributions per node |
100 | 1 | 60 |
200 | 2 | 30 |
300 | 3 | 20 |
400 | 4 | 15 |
500 | 5 | 12 |
etc… |
För mer detaljer kring priser se här.
Är ni osäkra på vilken nivå ni bör lägga er så är rekommendationen att börja på DW200 och testa att köra ett antal frågor mot databasen. Skala upp eller ned och jämför utfallet och hur väl det tillgodoser kraven på prestanda. Fortsätt övervaka prestandan och gör justeringar i de fall det behövs.
Som tidigare nämnts är det viktigt att kunna skala upp men också ner för att undvika att betala för outnyttjad kapacitet. I de fall då ert Data Warehouse inte behöver vara tillgängligt kan det vara en god idé att pausa tjänsten vilket innebär att ni endast betalar för lagringen av data och 0 i kostnad för DWU (beräkning).
Kontakta oss om ni vill veta mer på ckab@claessonpartners.se