Creare attività e pipeline di data factory

Completato

Le attività all'interno di Azure Data Factory definiscono le azioni che verranno eseguite sui dati e sono disponibili tre categorie tra cui:

  • Attività di spostamento dei dati
  • Attività di trasformazione dei dati
  • Attività di controllo

Attività di spostamento dei dati

Le attività di spostamento dati spostano semplicemente i dati da un archivio dati a un altro. È possibile usare l'attività di copia per eseguire attività di spostamento dati oppure JSON. È disponibile un'ampia gamma di archivi dati supportati come origine e come sink. Questo elenco è in continua crescita ed è possibile trovare le informazioni più aggiornate qui.

Attività di trasformazione dei dati

Le attività di trasformazione dei dati possono essere eseguite in modo nativo all'interno dello strumento di creazione di Azure Data Factory usando il flusso di dati per mapping. In alternativa, è possibile chiamare una risorsa di calcolo per modificare o migliorare i dati tramite la trasformazione o eseguire l'analisi dei dati. Sono incluse tecnologie di calcolo come Azure Databricks, Azure Batch, database SQL e Azure Synapse Analytics, Machine Learning Services, macchine virtuali di Azure e HDInsight. È possibile usare qualsiasi pacchetto di SQL Server Integration Services (SSIS) esistente archiviato in un catalogo per l'esecuzione in Azure

Questo elenco è in continua evoluzione, quindi è possibile ottenere le informazioni più aggiornate qui.

Attività di controllo

Quando si creano graficamente soluzioni ADF, è possibile usare il flusso di controllo all'interno della progettazione per orchestrare le attività della pipeline che includono il concatenamento di attività in una sequenza, la creazione di rami, la definizione dei parametri a livello di pipeline e il passaggio di argomenti durante la chiamata della pipeline su richiesta o da un trigger. Le funzionalità attuali sono:

Attività di controllo Descrizione
Attività ExecutePipeline L'attività di esecuzione pipeline consente a una pipeline di Data Factory di richiamare un'altra pipeline.
ForEachActivity L'attività ForEach definisce un flusso di controllo ripetuto nella pipeline. Questa attività viene usata per eseguire l'iterazione di una raccolta e attività specifiche in un ciclo. L'implementazione di cicli di questa attività è simile alla struttura di esecuzione in ciclo Foreach nei linguaggi di programmazione.
WebActivity L'attività Web può essere usata per chiamare un endpoint REST personalizzato da una pipeline di Data Factory. È possibile passare set di dati e servizi collegati in modo che l'attività possa usarli e accedervi.
Attività Lookup L'attività Lookup può essere usata per la lettura o la ricerca di un record/nome di tabella/valore da qualsiasi origine esterna. Questo output può essere referenziato ulteriormente dalle attività successive.
Attività Get Metadata Questa attività può essere usata per recuperare i metadati di tutti i dati in Azure Data Factory.
Attività Until Implementa il ciclo Do-Until che è simile alla struttura di esecuzione cicli Do-Until nei linguaggi di programmazione. Esegue infatti un set di attività in un ciclo finché la condizione associata con l'attività restituisce true. È possibile specificare un valore di timeout per l'attività Until in Data Factory.
Attività della condizione If Può essere usata per creare un ramo in base alla condizione che il valore restituito sia true o false. L'attività IfCondition svolge la stessa funzione dell'istruzione If nei linguaggi di programmazione. Valuta un set di attività se la condizione restituisce true e un altro set di attività se la condizione restituisce false.
Attività Wait Quando si usa un'attività Wait in una pipeline, la pipeline attende per il periodo di tempo specificato prima di proseguire con l'esecuzione delle attività successive.

È possibile ottenere le informazioni più recenti qui.

Attività e pipeline

Definizione delle attività

Quando si usa la notazione JSON, la sezione delle attività può includere una o più attività definite al suo interno. Esistono due tipi principali di attività: attività di esecuzione e di controllo. Le attività di esecuzione (anche note come calcolo) includono lo spostamento dati e le attività di trasformazione dei dati. Presentano la seguente struttura di primo livello:

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

La tabella seguente descrive le proprietà nel codice JSON precedente:

Proprietà Descrizione Richiesto
name Nome dell'impegno.
description Testo descrittivo per il tipo o lo scopo dell'attività. No
Tipo Definisce il tipo di attività.
linkedServiceName Nome del servizio collegato usato dall'attività. Sì per HDInsight, l'attività di assegnazione di punteggio Batch di Machine Learning e l'attività stored procedure.
typeProperties Le proprietà nella sezione typeProperties dipendono da ogni tipo di attività. No
Criterio Criteri che influiscono sul comportamento di runtime dell'attività. Questa proprietà include il comportamento di timeout e ripetizione. No
dependsOn Questa proprietà viene usata per definire le dipendenze delle attività e come le attività successive dipendono dalle attività precedenti. No

Definizione delle attività di controllo

Un'attività di controllo in Data Factory viene definita in formato JSON come segue:

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

La tabella seguente descrive le proprietà nel codice JSON precedente:

Proprietà Descrizione Richiesto
name Nome dell'impegno.
description Testo descrittivo per il tipo o lo scopo dell'attività.
Tipo Definisce il tipo di attività.
typeProperties Le proprietà nella sezione typeProperties dipendono da ogni tipo di attività. No
dependsOn Questa proprietà viene usata per definire le dipendenze delle attività e come le attività successive dipendono dalle attività precedenti. No

Definizione delle pipeline

Ecco come una pipeline viene definita in formato JSON:

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

La tabella seguente descrive le proprietà nel codice JSON precedente:

Proprietà Descrizione Richiesto
name Nome della pipeline.
description Testo descrittivo per lo scopo della pipeline. No
attività Nella sezione delle attività possono essere definite una o più attività.
parameters La sezione parameters può avere uno o più parametri definiti all'interno della pipeline, assicurando la flessibilità per il riutilizzo della pipeline. No

Esempio

Il codice JSON seguente definisce la pipeline denominata "MyFirstPipeline" che contiene un tipo di attività HDInsightHive che chiamerà una query da un nome di script "partitionweblogs.hql" archiviato nel servizio collegato denominato "StorageLinkedService", con un input denominato "AzureBlobInput" e un output denominato "AzureBlobOutput". Esegue questa operazione sulla risorsa di calcolo definita nel servizio collegato denominato "HDInsightOnDemandLinkedService"

La pipeline è pianificata per l'esecuzione su base mensile e tenterà l'esecuzione tre volte in caso di esito negativo.

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