Tworzenie potoków i działań fabryki danych

Ukończone

Działania w Azure Data Factory definiują akcje, które będą wykonywane na danych, i istnieją trzy kategorie, takie jak:

  • Działania dotyczące przenoszenia danych
  • Działania dotyczące przekształcania danych
  • Działania sterowania

Działania dotyczące przenoszenia danych

Działania przenoszenia danych po prostu przemieszczają dane z jednego magazynu danych do innego. Za pomocą działania kopiowania można wykonywać działania związane z ruchem danych lub przy użyciu danych JSON. Istnieje szeroka gama magazynów danych, które są obsługiwane jako źródło i ujścia. Ta lista stale rośnie, a najnowsze informacje można znaleźć tutaj.

Działania dotyczące przekształcania danych

Działania przekształcania danych można wykonywać natywnie w narzędziu do tworzenia Azure Data Factory pomocą mapowania danych Flow. Alternatywnie możesz wywołać zasób obliczeniowy, aby zmienić lub ulepszyć dane za pomocą transformacji lub przeprowadzić analizę danych. Obejmują one technologie obliczeniowe, takie jak Azure Databricks, Azure Batch, SQL Database i Azure Synapse Analytics, Machine Learning Services, Azure Virtual Machines i HDInsight. Możesz użyć dowolnych istniejących pakietów usług SQL Server Integration Services (SSIS) przechowywanych w katalogu do wykonania na platformie Azure

Ponieważ ta lista stale się rozwija, możesz uzyskać najnowsze informacje tutaj.

Działania sterowania

Podczas graficznego tworzenia rozwiązań usługi ADF można użyć przepływu sterowania w projekcie do organizowania działań potoku, które obejmują tworzenie łańcuchów działań w sekwencji, rozgałęzienie, definiowanie parametrów na poziomie potoku i przekazywanie argumentów podczas wywoływania potoku na żądanie lub z wyzwalacza. Bieżące możliwości obejmują:

Działanie kontrolki Opis
Działanie wykonywania potoku Działanie Execute Pipeline umożliwia potokowi usługi Data Factory wywoływanie innego potoku.
Działanie ForEach Działanie ForEach definiuje powtarzający się przepływ sterowania w potoku. To działanie służy do wykonywania iteracji po kolekcji i wykonuje określone działania w pętli. Implementacja pętli tego działania przypomina strukturę pętli Foreach w językach programowania.
Działanie WebActivity Działanie WebActivity może być używane do wywoływania niestandardowego punktu końcowego REST z potoku usługi Data Factory. Można przekazywać zestawy danych i połączone usługi do zużycia i dostępu przez działanie.
Działanie wyszukiwania Działanie Lookup może być używane do odczytywania lub wyszukiwania rekordu/nazwy tabeli/wartości z dowolnego źródła zewnętrznego. Do tych danych wyjściowych mogą także odwoływać się kolejne działania.
Działanie pobierania metadanych Działanie GetMetadata umożliwia pobieranie metadanych dowolnych danych z usługi Azure Data Factory.
Działanie Until Wprowadza pętlę Do-Until, przypominającą strukturę pętli Do-Until w językach programowania. Służy do wykonywania zestawu działań w pętli do momentu, gdy warunek skojarzony z działaniem zostanie obliczony na wartość true. W usłudze Data Factory można określić wartość limitu czasu działania Until.
Działanie If Condition Działanie If Condition umożliwia tworzenie gałęzi na podstawie warunków, które są obliczane na wartość true lub false. Działanie If Condition pełni taką samą rolę, co instrukcja if w językach programowania. Ocenia zestaw działań, gdy warunek ma wartość true, a inny zestaw działań, gdy warunek ma wartość false.
Działanie Wait Gdy używasz działania Wait w potoku, potok czeka przez określony okres z kontynuowaniem wykonywania kolejnych działań.

Najnowsze informacje można uzyskać tutaj.

Działania i potoki

Definiowanie działań

W przypadku korzystania z notacji JSON sekcja działań może mieć zdefiniowane co najmniej jedno działania. Istnieją dwa główne typy działań: działania wykonywania i sterowania. Działania wykonywania (nazywane również działaniami obliczeniowymi) obejmują działania związane z ruchem danych i przekształcaniem danych. Ich struktura najwyższego poziomu wygląda następująco:

{
    "name": "Execution Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "linkedServiceName": "MyLinkedService",
    "policy":
    {
    },
    "dependsOn":
    {
    }
}

W poniższej tabeli opisano właściwości w powyższym pliku JSON:

Właściwość Opis Wymagane
name Nazwa działania. Tak
description (opis) Tekst opisujący, do czego służy działanie lub do czego służy. Tak
typ Definiuje typ działania. Tak
linkedServiceName Nazwa połączonej usługi używana na potrzeby działania. Tak dla usługi HDInsight, Machine Learning oceniania wsadowego i działania procedury składowanej
typeProperties Właściwości w sekcji typeProperties zależą od typu działania. Nie
policy Zasady, które mają wpływ na zachowanie działania w czasie wykonania. Ta właściwość zawiera zachowania związane z limitem czasu i ponownymi próbami. Nie
dependsOn Ta właściwość jest używana do definiowania zależności działania oraz sposobu, w jaki kolejne działania zależą od poprzednich działań. Nie

Definiowanie działań kontroli

Działanie sterujące w Data Factory jest zdefiniowane w formacie JSON w następujący sposób:

{
    "name": "Control Activity Name",
    "description": "description",
    "type": "<ActivityType>",
    "typeProperties":
    {
    },
    "dependsOn":
    {
    }
}

W poniższej tabeli opisano właściwości w powyższym pliku JSON:

Właściwość Opis Wymagane
name Nazwa działania. Tak
description (opis) Tekst opisujący, do czego służy działanie lub do czego służy. Tak
typ Definiuje typ działania. Tak
typeProperties Właściwości w sekcji typeProperties zależą od typu działania. Nie
dependsOn Ta właściwość jest używana do definiowania zależności działania oraz sposobu, w jaki kolejne działania zależą od poprzednich działań. Nie

Definiowanie potoków

Poniżej przedstawiono sposób definiowania potoku w formacie JSON:

{
    "name": "PipelineName",
    "properties":
    {
        "description": "pipeline description",
        "activities":
        [
        ],
        "parameters": {
         }
    }
}

W poniższej tabeli opisano właściwości w powyższym pliku JSON:

Właściwość Opis Wymagane
name Nazwa potoku. Tak
description (opis) Tekst opisujący, do czego służy potok. Nie
activities W sekcji activities można zdefiniować jedno lub więcej działań. Tak
parameters Sekcja parameters może zawierać jeden lub kilka parametrów zdefiniowanych w potoku, co zwiększa elastyczność i możliwość ponownego zastosowania potoku. Nie

Przykład

Poniższy kod JSON definiuje potok o nazwie "MyFirstPipeline", który zawiera jeden typ działania HDInsightHive, który będzie wywołać zapytanie o nazwie skryptu "partitionweblogs.hql" przechowywanej w połączonej usłudze o nazwie "StorageLinkedService", z elementem wejściowym o nazwie "AzureBlobInput" i danych wyjściowych o nazwie "AzureBlobOutput". Wykonuje to względem zasobu obliczeniowego zdefiniowanego w połączonej usłudze o nazwie "HDInsightOnDemandLinkedService"

Potok jest zaplanowany do wykonania co miesiąc i spróbuje wykonać go 3 razy w przypadku jego awarii.

{
    "name": "MyFirstPipeline",
    "properties": {
        "description": "My first Azure Data Factory pipeline",
        "activities": [
            {
                "type": "HDInsightHive",
                "typeProperties": {
                    "scriptPath": "adfgetstarted/script/partitionweblogs.hql",
                    "scriptLinkedService": "StorageLinkedService",
                    "defines": {
                        "inputtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/inputdata",
                        "partitionedtable": "wasb://adfgetstarted@ctostorageaccount.blob.core.windows.net/partitioneddata"
                    }
                },
                "inputs": [
                    {
                        "name": "AzureBlobInput"
                    }
                ],
                "outputs": [
                    {
                        "name": "AzureBlobOutput"
                    }
                ],
                "policy": {
                    "concurrency": 1,
                    "retry": 3
                },
                "scheduler": {
                    "frequency": "Month",
                    "interval": 1
              },
                "name": "RunSampleHiveActivity",
                "linkedServiceName": "HDInsightOnDemandLinkedService"
            }
        ],
        "start": "2017-04-01T00:00:00Z",
        "end": "2017-04-02T00:00:00Z",
        "isPaused": false,
        "hubName": "ctogetstarteddf_hub",
        "pipelineMode": "Scheduled"
    }
}