Vad är Azure Data Factory?

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

När det gäller stordata, lagras råa, oordnade data ofta i relationella, icke-relationella och andra lagringssystem. Men i sig självt så har rådata inte rätt kontext eller mening för att ge analytiker, dataforskare och beslutsfattare meningsfulla insikter.

Stordata kräver en tjänst som kan samordna och operationalisera processer för att förfina dessa enorma lager av rådata till användbara affärsinsikter. Azure Data Factory är en hanterad molntjänst som skapats för dessa komplexa, hybrida, ETL- (extract-transform-load), ELT- (extract-load-transform) och dataintegreringsprojekt.

Användningsscenarier

Tänk dig till exempel ett spelföretag som samlar in petabyte med spelloggar som produceras av spel i molnet. Företaget vill analysera dessa loggar för att få insikter om kundpreferenser, demografi och användningsbeteende. Det vill också identifiera möjligheter till merförsäljning och korsförsäljning, utveckla intressanta nya funktioner, driva affärstillväxten och ge en bättre kundupplevelse.

När företaget ska analysera loggarna måste de använda referensdata, till exempel kundinformation, spelinformation och marknadsföringskampanjinformation som finns i ett lokalt datalager. Företaget vill använda dessa data från det lokala datalagret och kombinera dem med ytterligare loggdata som de har i ett molndatalager.

För att extrahera insikter hoppas den kunna bearbeta anslutna data med hjälp av ett Spark-kluster i molnet (Azure HDInsight) och publicera transformerade data i ett molndatalager som Azure Synapse Analytics för att enkelt skapa en rapport ovanpå dem. De vill automatisera det här arbetsflödet samt övervaka och hantera det enligt ett dagligt schema. De vill även köra det när filer landar i en bloblagringscontainer.

Azure Data Factory är en plattform som löser den här typen av datascenarier. Det är den molnbaserade ETL- och dataintegreringstjänsten som gör att du kan skapa datadrivna arbetsflöden för att samordna dataflytt och transformera data i stor skala. Med Azure Data Factory kan du skapa och schemalägga datadrivna arbetsflöden (så kallade ”pipelines”) som kan mata in data från olika datalager. Du kan skapa komplexa ETL-processer som transformerar data visuellt med dataflöden eller med hjälp av beräkningstjänster som Azure HDInsight Hadoop, Azure Databricks och Azure SQL Database.

Dessutom kan du publicera dina transformerade data till datalager som Azure Synapse Analytics for Business Intelligence-program (BI) att använda. Slutligen kan rådata ordnas, via Azure Data Factory, i meningsfulla datalager och datasjöar för att ge bättre beslutsunderlag.

Hur fungerar det?

Data Factory innehåller en serie sammankopplade system som tillsammans utgör en komplett plattform för datatekniker.

Shows a top-level architecture diagram of Azure Data Factory.

Den här visuella guiden ger en detaljerad översikt över den fullständiga Data Factory-arkitekturen:

A detailed visual guide to the complete system architecture for Azure Data Factory, presented in a single high resolution image.

Om du vill se mer information väljer du föregående bild för att zooma in eller bläddrar till den högupplösta bilden.

Ansluta och samla in

Företag har olika typer av data som befinner sig på olika platser, lokalt, i molnet, strukterade, ostrukturerade och delvis strukturerade och alla dessa data anländer i olika intervall och med olika hastighet.

Det första steget när det gäller att skapa ett informationsproduktionssystem är att ansluta till alla nödvändiga data- och bearbetningskällor, exempelvis SaaS-tjänster, databaser, filresurser och FTP-webbtjänster. Nästa steg är att flytta data efter behov till en central plats för senare bearbetning.

Utan Data Factory måste företag skapa egna dataöverföringskomponenter eller skriva anpassade tjänster för att integrera dessa data- och bearbetningskällor. Det är dyrt och svårt att integrera och underhålla sådana system. De saknar dessutom ofta övervakning, varningar och de kontroller i företagsklass som en helt hanterad tjänst kan erbjuda.

Med Data Factory kan du använda kopieringsaktiviteten i en datapipeline för att flytta data från datalager lokalt och molnet till ett centralt datalager i molnet där du kan analysera dem. Du kan till exempel samla in data i Azure Data Lake Storage och transformera data senare med hjälp av en Azure Data Lake Analytics beräkningstjänst. Eller så kan du samla in data i en Azure Blob Storage och sedan omvandla de med ett Azure HDInsight Hadoop-kluster.

Omvandla och berika

När data finns i ett centraliserat datalager i molnet bearbetar eller transformerar du insamlade data med hjälp av ADF-mappningsdataflöden. Med dataflöden kan datatekniker skapa och underhålla datatransformeringsdiagram som körs på Spark utan att behöva förstå Spark-kluster eller Spark-programmering.

Om du föredrar att koda transformeringar för hand stöder ADF externa aktiviteter för att köra dina transformeringar på beräkningstjänster som HDInsight Hadoop, Spark, Data Lake Analytics och Machine Learning.

CI/CD och publicera

Data Factory har fullt stöd för CI/CD för dina datapipelines med hjälp av Azure DevOps och GitHub. På så sätt kan du stegvis utveckla och leverera dina ETL-processer innan du publicerar den färdiga produkten. När rådata har förfinats till ett företagsklart förbrukningsformulär läser du in data i Azure Data Warehouse, Azure SQL Database, Azure Cosmos DB eller den analysmotor som dina företagsanvändare kan peka på från sina business intelligence-verktyg.

Monitor

När du har skapat och distribuerat din pipeline för dataintegrering och fått affärsvärde från förfinade data, kan du övervaka schemalagda aktiviteter och pipelines för att se hur många som lyckats respektive misslyckats. Azure Data Factory har ett inbyggt stöd för pipelineövervakning via Azure Monitor, API, PowerShell, Azure Monitor-loggar och hälsopaneler i Azure-portalen.

Toppnivåbegrepp

En Azure-prenumeration kan ha en eller flera Azure Data Factory-instanser (eller datafabriker). Azure Data Factory består av nyckelkomponenterna nedan.

  • Pipelines
  • Aktiviteter
  • Datauppsättningar
  • Länkade tjänster
  • Dataflöden
  • Integreringskörningar

De här komponenterna samverkar för att tillhandahålla en plattform där du kan skapa datadrivna arbetsflöden med steg för att flytta och omvandla data.

Pipeline

En datafabrik kan ha en eller flera pipelines. En pipeline är en logisk gruppering av aktiviteter som utför en arbetsenhet. Tillsammans utför aktiviteterna i en pipeline en uppgift. En pipeline kan till exempel innehålla en grupp med aktiviteter som matar in data från en Azure-blob och sedan kör en Hive-fråga på ett HDInsight-kluster för att partitionera data.

Fördelen med detta är att pipelinen låter dig hantera aktiviteter som en uppsättning istället för enskilt. Aktiviteter i en pipeline kan sammanlänkas för att köras sekventiellt eller så kan de köras fristående och parallellt.

Mappa dataflöden

Skapa och hantera grafer med datatransformeringslogik som du kan använda för att transformera data i valfri storlek. Du kan bygga upp ett återanvändbart bibliotek med datatransformeringsrutiner och köra dessa processer på ett utskalat sätt från dina ADF-pipelines. Data Factory kör din logik på ett Spark-kluster som snurrar upp och snurrar ned när du behöver det. Du behöver aldrig hantera eller underhålla kluster.

Aktivitet

Aktiviteter representerar ett bearbetningssteg i en pipeline. Du kan till exempel använda en kopieringsaktivitet för att kopiera data från ett datalager till ett annat. På samma sätt kan du använda en Hive-aktivitet som kör en Hive-fråga på ett Azure HDInsight-kluster för att transformera eller analysera dina data. Data Factory stöder tre typer av aktiviteter: dataförflyttning, datatransformering och kontroll.

Datauppsättningar

Datauppsättningar representerar datastrukturer i datalager som pekar på eller refererar till de data som du vill använda i dina aktiviteter som indata eller utdata.

Länkade tjänster

Länkade tjänster liknar anslutningssträngar som definierar den anslutningsinformation som behövs för att Data Factory ska kunna ansluta till externa resurser. Man kan se det som att datamängden representerar strukturen för data och den länkade tjänsten definierar anslutningen till datakällan. Till exempel anger en länkad Azure Storage-tjänst en anslutningssträng för att ansluta till ett Azure Storage-konto. Och en Azure Blob-datauppsättning anger vilken blobcontainer och mapp som innehåller data.

Länkade tjänster används för två syften i Data Factory:

  • För att representera ett datalager som innehåller, men inte är begränsat till, en SQL Server databas, Oracle-databas, filresurs eller Azure Blob Storage-konto. En lista över datalager som stöds finns i artikeln om kopieringsaktiviteter.

  • Så här visar du en beräkningsresurs som kan vara värd för körningen av en aktivitet. HDInsightHive-aktiviteten körs till exempel på ett HDInsight Hadoop-kluster. En lista över transformeringsaktiviteter och beräkningsmiljöer som stöds finns i artikeln om omvandling av data.

Integration Runtime

I Data Factory definierar en aktivitet åtgärden som ska utföras. En länkad tjänst definierar ett datalager som mål eller en beräkningstjänst. Integration Runtime utgör bryggan mellan aktiviteten och länkade tjänster. Den refereras av den länkade tjänsten eller aktiviteten och tillhandahåller den beräkningsmiljö där aktiviteten antingen körs på eller skickas från. På så sätt kan aktiviteten utföras i regionen som är den närmaste möjliga till måldatalagret eller beräkningstjänsten på det bästa sättet samtidigt som den uppfyller säkerhets- och efterlevnadsbehoven.

Utlösare

Utlösare representerar en bearbetningsenhet som avgör när en pipelinekörning måste startas. Det finns olika typer av utlösare för olika typer av händelser.

Pipelinekörningar

En pipelinekörning är en instans av en pipelinekörning. Pipelinekörningar initieras vanligen genom att skicka argumenten till de parametrar som definierats i pipelines. Argumenten kan skickas manuellt eller i en utlösardefinition.

Parametrar

Parametrar är nyckel/värde-par i en skrivskyddad konfiguration.  Parametrar har definierats i pipelinen. Argumenten för de definierade parametrarna skickas vid körning från körningskontexten som skapats av en utlösare eller en pipeline som körs manuellt. Aktiviteter i pipelinen använder parametervärdena.

En datauppsättning är en starkt typifierad parameter och en återanvändbar/refererbar entitet. En aktivitet kan referera till datauppsättningar och kan använda egenskaperna som definierats i definitionen för datauppsättningen.

En länkad tjänst är också en starkt typifierad parameter som innehåller anslutningsinformationen till antingen ett datalager eller en beräkningsmiljö. Det är också en återanvändningsbar/refererbar entitet.

Kontrollflöde

Kontrollflöde är en orkestrering av pipelineaktiviteter som innefattar kedjesammansättning av aktiviteter i en sekvens, branchning definiering av parametrar på pipelinenivå och argument som skickas vid anrop till pipelinen på begäran eller från en utlösare. Det innefattar även att skicka anpassade tillstånd och loopcontainer, d.v.s. for-each-iteratorer.

Variabler

Variabler kan användas i pipelines för att lagra tillfälliga värden och kan även användas tillsammans med parametrar för att möjliggöra överföring av värden mellan pipelines, dataflöden och andra aktiviteter.

Nästa steg

Här är viktiga nästa steg dokument att utforska: