Tworzenie działań i potoków fabryki danych

Ukończone

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

  • 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 przenoszą dane z jednego magazynu danych do innego. Działanie kopiowania umożliwia wykonywanie działań przenoszenia danych lub przy użyciu formatu JSON. Istnieje wiele magazynów danych, które są obsługiwane jako źródło i jako ujście. Ta lista stale rośnie i można znaleźć najnowsze informacje tutaj.

Działania dotyczące przekształcania danych

Działania przekształcania danych można wykonywać natywnie w narzędziu do tworzenia usługi Azure Data Factory przy użyciu Przepływ danych mapowania. 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 Edukacja Services, Azure Virtual Machines i HDInsight. Do wykonania na platformie Azure można używać dowolnych istniejących pakietów usług SQL Server Integration Services (SSIS) przechowywanych w katalogu

Ponieważ ta lista zawsze ewoluuje, 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ą działania łańcucha w sekwencji, rozgałęzianie, 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 sterujące opis
Działanie Execute Pipeline 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 Lookup 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 GetMetadata 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 daje 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 znaleźć tutaj.

Działania i potoki

Definiowanie działań

W przypadku korzystania z notacji JSON sekcja działań może zawierać co najmniej jedną zdefiniowaną w niej czynności. Istnieją dwa główne typy działań: działania wykonywania i sterowania. Działania wykonywania (nazywane również obliczeniami) obejmują działania przenoszenia danych i przekształcania 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 powyższego kodu JSON:

Właściwości Opis Wymagania
name Nazwa działania. Tak
opis Tekst opisujący, do czego służy działanie lub dla którego jest używane. Nie.
type Definiuje typ działania. Tak
linkedServiceName Nazwa połączonej usługi używana na potrzeby działania. Tak w przypadku usługi HDInsight, działania oceniania wsadowego Edukacja maszyny 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ń sterujących

Działanie kontrolki w usłudze Data Factory jest definiowane 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 powyższego kodu JSON:

Właściwości Opis Wymagania
name Nazwa działania. Tak
opis Tekst opisujący, do czego służy działanie lub dla którego jest używane. Tak
type 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 powyższego kodu JSON:

Właściwości Opis Wymagania
name Nazwa potoku. Tak
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 usługi HDInsightHive, który będzie wywoływać zapytanie z nazwy skryptu "partitionweblogs.hql", która jest przechowywana w połączonej usłudze o nazwie "StorageLinkedService", z danymi wejściowymi o nazwie "AzureBlobInput" i danymi wyjściowymi 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 podejmie próbę wykonania 3 razy, jeśli zakończy się niepowodzeniem.

{
    "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"
    }
}