#Beslutsstöd

SSIS och Azure Data Factory - för- och nackdelar

Både Azure Data Factory (ADF) och SQL Server Integration Services (SSIS) är byggda för att flytta, transformera och ladda data mellan olika datakällor och de har många likheter och överlappande funktioner. Frågan idag är vilket dataintegrationsverktyg vi skall använda och när. Svaret är kanske inte föga förvånande att det beror på vad du försöker åstadkomma och hur mycket av den traditionella ETL-processen du försöker ersätta? Men i stället för att välja det ena eller det andra kommer organisationer att gynnas av att omfamna båda. Kombinera kraften i SSIS-omvandlingar med datafabrikens förmåga att hantera stora datavolymer. I detta blogginlägg kommer vi att fokusera på för- och nackdelar med SSIS som är ett vanligt ETL-verktyg för on-premisslösningar och Azure Data Factory som är en molnbaserat ETL/ELT-verktyg. Vi kommer jämföra dessa olika verktygs styrkor, svagheter och funktioner för att slutligen se hur dessa passar in i det moderna datalagret.

SQL Server Integration Services - SSIS

SSIS används oftast i s.k. on-premisslösningar och som en del i det klassiska datalagret, men man kan idag exportera sina SSIS-paket (lift and shift) till att köras i Azure Data Factory. I SSIS använder man sig utav utvecklingsverktygen i SQL Server Data Tools (SSDT). I SSDT ingår Visual Studio där man bygger sina integrationsflöden i ett drag-and-drop system. Detta gör det enkelt att förstå och kräver inte att man kan skriva kod, men i de fall man behöver skriva kod så används oftast språken VB Script, C# och BIML. Utöver dessa språk skriver man SQL-skript i verktyget SQL Server Management Studio (SSMS) där man även hanterar sina databasobjekt.

SSIS har som sagt var en del år på nacken och skapades i en tid innan begrepp som big data myntats. Detta gör att verktyget lämpar sig bäst för strukturerade data, när datavolymerna är begränsade och där data hämtas i omgångar t.ex. huvudbokstransaktioner från ett ekonomisystem.

I och med att SSIS traditionellt körs som en on-premisslösning innebär detta att man måste ha egen hårdvara. Belastningen på servern kan vara väldigt ojämn i och med att data laddas i omgångar vilket gör det svårt att avgöra vilken prestanda en server behöver ha. Man behöver även ta in i beräkningen att ytterligare kostnader kan uppstå om man behöver skala upp lösningen – t.ex. om datavolymerna ökar för att en ny datakälla kopplas på. Utöver detta så tillkommer kostnader för licens och administration av servrar.

Azure Data Factory

Azure Data Factory (ADF) är ett molnbaserat ETL/ELT- och dataintegreringstjänst som gör att du kan skapa arbetsflöden för att automatisera dataförflyttning och omvandla data i stor skala. Med hjälp av ADF kan du skapa datadrivna arbetsflöden (så kallade pipelines) som kan hämta data från datakällor som t.ex. Azure Data Lake, Azure Storage (JSON), Azure Blob Storage och on-premissdatakällor.

ADF sätt att bygga arbetsflöden är konceptuellt mycket likt SSIS även om gränssnittet ser lite annorlunda ut, så utvecklare som använder SSIS idag bör ha en relativt låg tröskel att kliva över. I ADF kallas dessa arbetsflöden för pipelines och dess motsvarighet i SSIS är control flow. Datatransformeringar kan sedan ADF version 2 göras i komponenten data flow - samma namn som i SSIS. Många transformeringar mappar direkt mot ekvivalenter i SSIS. Dina flöden sparas sedan som ett JSON objekt – tänk dig en modern version av SSIS:s XML motsvarighet. Då ADF är en molnbaserad integrationstjänst använder man främst sin webbläsare som utvecklingsverktyg på gott och ont. I portalen för ADF bygger man sina arbetsflöden i ett drag-and-drop system samt validerar, övervakar och schemalägger sina arbetsflöden.

Data Factory kommer automatiskt att kompilera arbetsflödet till körbar kod för Apache Spark, på ett Databricks-kluster utan att man som utvecklare behöver anstränga sig. ADF:S data flow är i någon mening en visuell redigerare så att du kan "skriva kod” för Databricks / Spark kluster utan att egentligen ”skriva kod”. Detta innebär att det kan hantera enorma uppsättningar av data utan att du behöver investera tid och pengar i infrastruktur. Det kan behövas en viss expertis för att konfigurera klustret korrekt, men det är dramatiskt mycket snabbare och enklare än att bygga ut fysiska Hadoop kluster med sin administrativa arbetsbelastning, och det är mycket lättare för en ETL utvecklare att dra nytta av kraften i den underliggande tekniken.

Utöver webbläsaren som verktyg så kan man beroende på datakälla använda sig utav SQL Management Studio för att koppla upp sig mot t.ex. en Azure SQL Server instans och skriva SQL-skript och hantera databasobjekt på ett mer traditionellt sätt. De utvecklingsspråk som oftast används tillsammans med ADF är .NET, Python och PowerShell.

ADF lämpar sig både för strukturerade och ostrukturerade data och kan hantera dataladdningar i omgångar (batch) likt SSIS, men kan även agera som en del i processen att ta mot strömmande data.

I och med att ADF är en molnbaserad tjänst krävs ingen egen hårdvara eller mjukvara. Detta gör det enkelt att skala upp (och ner) lösningen om behoven förändras t.ex. kan ett datalager som hanterar miljontals förfrågningar under dagen och inga på natten anpassa sina resursbehov automatiskt efter detta. Servrarna underhålls och uppdateras automatiskt så traditionell serveradministration behövs inte. Kostnaderna för ADF är mer av typen ”pay as you go” eller ”pay for what you use”. Detta har sina fördelar givetvis, men det kan vara svårt för ett företag att jämföra kostnaderna mot en on-premisslösning där kostnadsbilden är mer förutsägbar.


Det moderna datalagret

Ett modernt informationslager fokuserar mer på värdet än transaktionshantering och skall göra det möjligt att sammanföra all dina data oavsett struktur och i valfri skala enkelt för att sedan generera insikter via analytiska instrumentpaneler, användningsrapporter eller avancerad analys för olika användargrupper.

Det_Moderna_Datalagret

Vilken ska man välja? Tänk på era behov, men också på ADF och SSIS begränsningar:

  1. Vilka connectors din lösning behöver? Finns alla med i ADF och SSIS? Finns alla destinationer du behöver?
  2. Har du strukturerade eller ostrukturerade datakällor?
  3. Stödjer verktyget de transformeringarna som finns/behövs i din lösning eller finns möjlighet att skriva om dem? (tänk på att Azure Data Factory inte har lika rika datatransformeringar som SSIS)
  4. ELT eller ETL?
  5. Felsökning och övervakning i ADF ligger långt bakom SSIS.
  6. Vilka datavolymer ska du processa? Till skillnad mot SSIS har ADF inga problem att hantera stora datavolymer.
  7. Är skalbarheten nödvändigt för din lösning?
  8. Jämför kostnaderna. Även en ”pay as you go”-lösning kan bli dyrt i längden.

 
I stället för att välja mellan det traditionella ETL-verktyget och Azure Data Factory kan organisationer ha mer nytta av att kombinera kraften i SSIS-transformationer med stor databehandlingsförmåga från Data Factory i en hybridlösning.

Idag kanske SSIS mer är ett verktyg för det traditionella datalagret, men i och med möjligheter att ta sina SSIS-paket till Azure Data Factory och köra dem där kan ändå SSIS fylla en roll i det moderna datalagret. Att köra sina SSIS-paket i ADF kan också vara en del av en hybridlösning där man behöver skala upp sin nuvarande on-premisslösning rent hårdvaru- och prestandamässigt.

Data Factory kan orkestrera intagandet av data från olika datakällor och lagra data i t.ex. en Azure data lake eller blob storage. Azure Databricks kan sedan användas för att skapa, träna och distribuera maskininlärningsmodeller. Därefter kan data lagras i Azure SQL Data Warehouse eller Azure Analytics Services för att sedan visualiseras i t.ex. Power BI.

Nedan följer en kort jämförelse mellan de olika verktygen: 

  SSIS


SSIS


AzureDataFactory


Azure Data Factory

Datavolym Medium Hög
Datafrekvens

Batch

Batch
"Streaming"
Datastruktur Strukturerad Strukturerad, ostrukturerad
Utvecklingsstruktur SSDT Webbläsare
Utvecklingsinterface Dra och släpp
Kod
Dra och släpp
Kod
Utvecklingsspråk VB
C#
Biml
SQL
.NET
Python
PowerShell

Plattform On-premis
Egen hårdvara/mjukvara
Skala ut
Hybrid
Underhållsfri
Skala upp
Kostnadsmodell Licenser

Azure prenumeration, Pay as you go
Syfte Integrationer
Transformation
ETL
Samordna och skyffla data
ETL / ELT

 

Om du vill veta mer om SSIS, Azure Data Factory eller behöver hjälp med implementering av någon av dessa plattformar kan vi hjälpa till. Agero har rätt kunskap och kan visa dig rätt lösningar, så att ditt företag kan fungera optimalt och utnyttja den data ni har på bästa sätt.

Publicerad: 2020-05-26