Creare attività e pipeline di data factory
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. | Sì |
description | Testo descrittivo per il tipo o lo scopo dell'attività. | No |
Tipo | Definisce il tipo di attività. | Sì |
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. | Sì |
description | Testo descrittivo per il tipo o lo scopo dell'attività. | Sì |
Tipo | Definisce il tipo di attività. | Sì |
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. | Sì |
description | Testo descrittivo per lo scopo della pipeline. | No |
attività | Nella sezione delle attività possono essere definite una o più attività. | Sì |
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"
}
}