Esercitazione: Creare una data factory di Azure usando un modello di Azure Resource ManagerTutorial: Create an Azure data factory using Azure Resource Manager template

Questa guida introduttiva descrive come usare un modello di Azure Resource Manager per creare una data factory di Azure.This quickstart describes how to use an Azure Resource Manager template to create an Azure data factory. La pipeline creata in questa data factory copia dati da una cartella a un'altra in un archivio BLOB di Azure.The pipeline you create in this data factory copies data from one folder to another folder in an Azure blob storage. Per un'esercitazione su come trasformare dati usando Azure Data Factory, vedere Esercitazione: Trasformare i dati con Spark.For a tutorial on how to transform data using Azure Data Factory, see Tutorial: Transform data using Spark.

Nota

Questo articolo non offre una presentazione dettagliata del servizio Data Factory. Per un'introduzione al servizio Azure Data Factory, vedere Introduzione ad Azure Data Factory.

PrerequisitiPrerequisites

Sottoscrizione di AzureAzure subscription

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Ruoli di AzureAzure roles

Per creare istanze di Data Factory, l'account utente usato per accedere ad Azure deve essere un membro del ruolo collaboratore o proprietario oppure un amministratore della sottoscrizione di Azure.To create Data Factory instances, the user account that you use to sign in to Azure must be a member of the contributor or owner role, or an administrator of the Azure subscription. Per visualizzare le autorizzazioni disponibili nella sottoscrizione, nel portale di Azure selezionare il nome utente nell'angolo in alto a destra e quindi selezionare Autorizzazioni.To view the permissions that you have in the subscription, in the Azure portal, select your username in the upper-right corner, and then select Permissions. Se si accede a più sottoscrizioni, selezionare quella appropriata.If you have access to multiple subscriptions, select the appropriate subscription.

Per creare e gestire le risorse figlio per Data Factory, inclusi i set di dati, i servizi collegati, le pipeline, i trigger e i runtime di integrazione, sono applicabili i requisiti seguenti:To create and manage child resources for Data Factory - including datasets, linked services, pipelines, triggers, and integration runtimes - the following requirements are applicable:

  • Per creare e gestire le risorse figlio nel portale di Azure, è necessario appartenere al ruolo Collaboratore Data Factory a livello di gruppo di risorse o superiore.To create and manage child resources in the Azure portal, you must belong to the Data Factory Contributor role at the resource group level or above.
  • Per creare e gestire le risorse figlio con PowerShell o l'SDK, è sufficiente il ruolo di collaboratore a livello di risorsa o superiore.To create and manage child resources with PowerShell or the SDK, the contributor role at the resource level or above is sufficient.

Per istruzioni di esempio su come aggiungere un utente a un ruolo, vedere l'articolo Aggiungere i ruoli.For sample instructions about how to add a user to a role, see the Add roles article.

Per altre informazioni, vedere gli articoli seguenti:For more info, see the following articles:

Account di archiviazione di AzureAzure storage account

In questa guida introduttiva si usa un account di archiviazione di Azure per utilizzo generico (specificamente, di archiviazione BLOB) come archivio dati sia di origine che di destinazione.You use a general-purpose Azure storage account (specifically Blob storage) as both source and destination data stores in this quickstart. Se non si ha un account di archiviazione di Azure per utilizzo generico, vedere Creare un account di archiviazione per informazioni su come crearne uno.If you don't have a general-purpose Azure storage account, see Create a storage account to create one.

Recuperare il nome e la chiave dell'account di archiviazioneGet the storage account name and account key

Per questa guida introduttiva è necessario avere il nome e la chiave dell'account di archiviazione di Azure.You will need the name and key of your Azure storage account for this quickstart. La procedura seguente illustra i passaggi per recuperare il nome e la chiave dell'account di archiviazione:The following procedure provides steps to get the name and key of your storage account:

  1. In un Web browser passare al portale di Azure.In a web browser, go to the Azure portal. Accedere con nome utente e password di Azure.Sign in by using your Azure username and password.

  2. Selezionare Tutti i servizi nel menu a sinistra, filtrare con la parola chiave archiviazione e selezionare Account di archiviazione.Select All services on the left menu, filter with the Storage keyword, and select Storage accounts.

    Cercare un account di archiviazione

  3. Nell'elenco degli account di archiviazione filtrare, se necessario, e quindi selezionare il proprio account di archiviazione.In the list of storage accounts, filter for your storage account (if needed), and then select your storage account.

  4. Nella pagina Account di archiviazione selezionare Chiavi di accesso nel menu.On the Storage account page, select Access keys on the menu.

    Recuperare il nome e la chiave dell'account di archiviazione

  5. Copiare negli Appunti i valori delle caselle Nome account di archiviazione e key1.Copy the values for the Storage account name and key1 boxes to the clipboard. Incollarli in un blocco note o in qualsiasi altro editor e salvarli.Paste them into Notepad or any other editor and save it. Verranno usati più avanti in questa guida introduttiva.You use them later in this quickstart.

Creare la cartella e i file di inputCreate the input folder and files

In questa sezione viene creato un contenitore BLOB denominato adftutorial nell'archivio BLOB di Azure.In this section, you create a blob container named adftutorial in Azure Blob storage. Viene creata una cartella denominata input nel contenitore e viene caricato un file di esempio in tale cartella.You create a folder named input in the container, and then upload a sample file to the input folder.

  1. Nella pagina Account di archiviazione passare a Panoramica e quindi selezionare BLOB.On the Storage account page, switch to Overview, and then select Blobs.

    Selezionare l'opzione BLOB

  2. Nella pagina Servizio BLOB selezionare + Contenitore sulla barra degli strumenti.On the Blob service page, select + Container on the toolbar.

    Pulsante Aggiungi contenitore

  3. Nella finestra di dialogo Nuovo contenitore immettere adftutorial come nome e quindi fare clic su OK.In the New container dialog box, enter adftutorial for the name, and then select OK.

    Immettere il nome del contenitore

  4. Selezionare adftutorial nell'elenco di contenitori.Select adftutorial in the list of containers.

    Selezionare il contenitore

  5. Nella pagina Contenitore selezionare Carica sulla barra degli strumenti.On the Container page, select Upload on the toolbar.

    Pulsante Carica

  6. Nella pagina Carica BLOB selezionare Avanzate.On the Upload blob page, select Advanced.

    Selezionare il collegamento Avanzate

  7. Avviare il Blocco note e creare un file denominato emp.txt con il contenuto seguente.Start Notepad and create a file named emp.txt with the following content. Salvarlo nella cartella c:\ADFv2QuickStartPSH.Save it in the c:\ADFv2QuickStartPSH folder. Se non esiste ancora, creare la cartella ADFv2QuickStartPSH.Create the ADFv2QuickStartPSH folder if it does not already exist.

    John, Doe
    Jane, Doe
    
  8. Nella pagina Carica BLOB del portale di Azure cercare e selezionare il file emp.txt nella casella File.In the Azure portal, on the Upload blob page, browse to and select the emp.txt file for the Files box.

  9. Immettere il valore input nella casella Carica nella cartella.Enter input as a value for the Upload to folder box.

    Caricare le impostazioni BLOB

  10. Verificare che la cartella sia input e il file sia emp.txt e selezionare Carica.Confirm that the folder is input and the file is emp.txt, and select Upload.

    Verranno visualizzati il file emp.txt e lo stato del caricamento nell'elenco.You should see the emp.txt file and the status of the upload in the list.

  11. Chiudere la pagina Carica BLOB facendo clic su X nell'angolo.Close the Upload blob page by clicking X in the corner.

    Chiudere la pagina Carica BLOB

  12. Tenere aperta la pagina ContenitoreKeep the Container page open. perché verrà usata per verificare l'output alla fine di questa guida introduttiva.You use it to verify the output at the end of this quickstart.

Azure PowerShellAzure PowerShell

Nota

Questo articolo è stato aggiornato per usare il nuovo modulo Az di Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. È comunque possibile usare il modulo AzureRM, che continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Per altre informazioni sul nuovo modulo Az e sulla compatibilità di AzureRM, vedere Introduzione del nuovo modulo Az di Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Per istruzioni sull'installazione del modulo Az, vedere Installare Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Installare i moduli di Azure PowerShell più recenti seguendo le istruzioni descritte in Come installare e configurare Azure PowerShell.Install the latest Azure PowerShell modules by following instructions in How to install and configure Azure PowerShell.

Modelli di Gestione risorseResource Manager templates

Per informazioni generali sui modelli di Azure Resource Manager, vedere Creazione di modelli di Azure Resource Manager.To learn about Azure Resource Manager templates in general, see Authoring Azure Resource Manager Templates.

La sezione seguente contiene il modello di Resource Manager completo per la definizione di entità di Data Factory. In questo modo sarà possibile eseguire rapidamente l'esercitazione e testare il modello.The following section provides the complete Resource Manager template for defining Data Factory entities so that you can quickly run through the tutorial and test the template. Per conoscere come viene definita ogni entità di Data Factory, vedere la sezione Entità di Data Factory nel modello.To understand how each Data Factory entity is defined, see Data Factory entities in the template section.

Per informazioni sulla sintassi e sulle proprietà JSON per le risorse di Data Factory in un modello, vedere Microsoft.DataFactory resource types (Tipi di risorse Microsoft.DataFactory).To learn about the JSON syntax and properties for Data Factory resources in a template, see Microsoft.DataFactory resource types.

JSON per Data FactoryData Factory JSON

Creare un file JSON denominato ADFTutorialARM.json nella cartella C:\ADFTutorial con il contenuto seguente:Create a JSON file named ADFTutorialARM.json in C:\ADFTutorial folder with the following content:

{
    "contentVersion": "1.0.0.0",
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "parameters": {
        "dataFactoryName": {
            "type": "string",
            "metadata": {
                "description": "Name of the data factory. Must be globally unique."
            }
        },
        "dataFactoryLocation": {
            "type": "string",
            "allowedValues": [
                "East US",
                "East US 2",
                "West Europe"
            ],
            "defaultValue": "East US",
            "metadata": {
                "description": "Location of the data factory. Currently, only East US, East US 2, and West Europe are supported. "
            }
        },
        "storageAccountName": {
            "type": "string",
            "metadata": {
                "description": "Name of the Azure storage account that contains the input/output data."
            }
        },
        "storageAccountKey": {
            "type": "securestring",
            "metadata": {
                "description": "Key for the Azure storage account."
            }
        },
        "blobContainer": {
            "type": "string",
            "metadata": {
                "description": "Name of the blob container in the Azure Storage account."
            }
        },
        "inputBlobFolder": {
            "type": "string",
            "metadata": {
                "description": "The folder in the blob container that has the input file."
            }
        },
        "inputBlobName": {
            "type": "string",
            "metadata": {
                "description": "Name of the input file/blob."
            }
        },
        "outputBlobFolder": {
            "type": "string",
            "metadata": {
                "description": "The folder in the blob container that will hold the transformed data."
            }
        },
        "outputBlobName": {
            "type": "string",
            "metadata": {
                "description": "Name of the output file/blob."
            }
        },
        "triggerStartTime": {
            "type": "string",
            "metadata": {
                "description": "Start time for the trigger."
            }
        },
        "triggerEndTime": {
            "type": "string",
            "metadata": {
                "description": "End time for the trigger."
            }
        }
    },
    "variables": {
        "azureStorageLinkedServiceName": "ArmtemplateStorageLinkedService",
        "inputDatasetName": "ArmtemplateTestDatasetIn",
        "outputDatasetName": "ArmtemplateTestDatasetOut",
        "pipelineName": "ArmtemplateSampleCopyPipeline",
        "triggerName": "ArmTemplateTestTrigger"
    },
    "resources": [{
        "name": "[parameters('dataFactoryName')]",
        "apiVersion": "2018-06-01",
        "type": "Microsoft.DataFactory/factories",
        "location": "[parameters('dataFactoryLocation')]",
        "identity": {
            "type": "SystemAssigned"
        },
        "resources": [{
                "type": "linkedservices",
                "name": "[variables('azureStorageLinkedServiceName')]",
                "dependsOn": [
                    "[parameters('dataFactoryName')]"
                ],
                "apiVersion": "2018-06-01",
                "properties": {
                    "type": "AzureStorage",
                    "description": "Azure Storage linked service",
                    "typeProperties": {
                        "connectionString": {
                            "value": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',parameters('storageAccountKey'))]",
                            "type": "SecureString"
                        }
                    }
                }
            },
            {
                "type": "datasets",
                "name": "[variables('inputDatasetName')]",
                "dependsOn": [
                    "[parameters('dataFactoryName')]",
                    "[variables('azureStorageLinkedServiceName')]"
                ],
                "apiVersion": "2018-06-01",
                "properties": {
                    "type": "AzureBlob",
                    "typeProperties": {
                        "folderPath": "[concat(parameters('blobContainer'), '/', parameters('inputBlobFolder'), '/')]",
                        "fileName": "[parameters('inputBlobName')]"
                    },
                    "linkedServiceName": {
                        "referenceName": "[variables('azureStorageLinkedServiceName')]",
                        "type": "LinkedServiceReference"
                    }
                }
            },
            {
                "type": "datasets",
                "name": "[variables('outputDatasetName')]",
                "dependsOn": [
                    "[parameters('dataFactoryName')]",
                    "[variables('azureStorageLinkedServiceName')]"
                ],
                "apiVersion": "2018-06-01",
                "properties": {
                    "type": "AzureBlob",
                    "typeProperties": {
                        "folderPath": "[concat(parameters('blobContainer'), '/', parameters('outputBlobFolder'), '/')]",
                        "fileName": "[parameters('outputBlobName')]"
                    },
                    "linkedServiceName": {
                        "referenceName": "[variables('azureStorageLinkedServiceName')]",
                        "type": "LinkedServiceReference"
                    }
                }
            },
            {
                "type": "pipelines",
                "name": "[variables('pipelineName')]",
                "dependsOn": [
                    "[parameters('dataFactoryName')]",
                    "[variables('azureStorageLinkedServiceName')]",
                    "[variables('inputDatasetName')]",
                    "[variables('outputDatasetName')]"
                ],
                "apiVersion": "2018-06-01",
                "properties": {
                    "activities": [{
                        "type": "Copy",
                        "typeProperties": {
                            "source": {
                                "type": "BlobSource"
                            },
                            "sink": {
                                "type": "BlobSink"
                            }
                        },
                        "name": "MyCopyActivity",
                        "inputs": [{
                            "referenceName": "[variables('inputDatasetName')]",
                            "type": "DatasetReference"
                        }],
                        "outputs": [{
                            "referenceName": "[variables('outputDatasetName')]",
                            "type": "DatasetReference"
                        }]
                    }]
                }
            },
            {
                "type": "triggers",
                "name": "[variables('triggerName')]",
                "dependsOn": [
                    "[parameters('dataFactoryName')]",
                    "[variables('azureStorageLinkedServiceName')]",
                    "[variables('inputDatasetName')]",
                    "[variables('outputDatasetName')]",
                    "[variables('pipelineName')]"
                ],
                "apiVersion": "2018-06-01",
                "properties": {
                    "type": "ScheduleTrigger",
                    "typeProperties": {
                        "recurrence": {
                            "frequency": "Hour",
                            "interval": 1,
                            "startTime": "[parameters('triggerStartTime')]",
                            "endTime": "[parameters('triggerEndTime')]",
                            "timeZone": "UTC"
                        }
                    },
                    "pipelines": [{
                        "pipelineReference": {
                            "type": "PipelineReference",
                            "referenceName": "ArmtemplateSampleCopyPipeline"
                        },
                        "parameters": {}
                    }]
                }
            }
        ]
    }]
}

Parametri JSONParameters JSON

Creare un file JSON denominato ADFTutorialARM-Parameters.json contenente i parametri per il modello di Azure Resource Manager.Create a JSON file named ADFTutorialARM-Parameters.json that contains parameters for the Azure Resource Manager template.

Importante

  • Specificare il nome e la chiave dell'account di archiviazione di Azure per i parametri storageAccountName e storageAccountKey in questo file dei parametri. È stato creato il contenitore adftutorial ed è stato caricato il file di esempio (emp.txt) nella cartella di input in questo archivio BLOB di Azure.
  • Specificare un nome univoco globale per la data factory per il parametro dataFactoryName. Ad esempio: ARMTutorialFactoryJohnDoe11282017.
  • Per triggerStartTime specificare la giornata corrente con formato 2017-11-28T00:00:00.
  • Per triggerEndTime specificare il giorno successivo con formato 2017-11-29T00:00:00. È anche possibile selezionare l'ora UTC corrente e specificare l'ora o le due ore successive come ora di fine. Ad esempio, se l'ora UTC è attualmente 1:32 AM, specificare 2017-11-29:03:00:00 come ora di fine. In questo caso il trigger esegue due volte la pipeline (alle 2:00 e alle 3:00).
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "dataFactoryName": {
      "value": "<datafactoryname>"
    },
    "dataFactoryLocation": {
      "value": "East US"
    },
    "storageAccountName": {
      "value": "<yourstorageaccountname>"
    },
    "storageAccountKey": {
      "value": "<yourstorageaccountkey>"
    },
    "blobContainer": {
      "value": "adftutorial"
    },
    "inputBlobFolder": {
      "value": "input"
    },
    "inputBlobName": {
      "value": "emp.txt"
    },
    "outputBlobFolder": {
      "value": "output"
    },
    "outputBlobName": {
      "value": "emp.txt"
    },
    "triggerStartTime": {
        "value": "2017-11-28T00:00:00. Set to today"
    },
    "triggerEndTime": {
        "value": "2017-11-29T00:00:00. Set to tomorrow"
    }
  }
}

Importante

Si possono avere file JSON di parametri separati per gli ambienti di sviluppo, test e produzione che è possibile usare con lo stesso modello JSON di Data Factory. Usando uno script di Power Shell, è possibile automatizzare la distribuzione delle entità di Data Factory in questi ambienti.

Distribuire entità di Data FactoryDeploy Data Factory entities

In PowerShell eseguire il comando seguente per distribuire entità di Data Factory usando il modello di Resource Manager creato in precedenza in questa guida introduttiva.In PowerShell, run the following command to deploy Data Factory entities using the Resource Manager template you created earlier in this quickstart.

New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile C:\ADFTutorial\ADFTutorialARM.json -TemplateParameterFile C:\ADFTutorial\ADFTutorialARM-Parameters.json

L'output sarà simile all'esempio seguente:You see output similar to the following sample:

DeploymentName          : MyARMDeployment
ResourceGroupName       : ADFTutorialResourceGroup
ProvisioningState       : Succeeded
Timestamp               : 11/29/2017 3:11:13 AM
Mode                    : Incremental
TemplateLink            :
Parameters              :
                          Name                 Type            Value
                          ===============      ============    ==========
                          dataFactoryName      String          <data factory name>
                          dataFactoryLocation  String          East US
                          storageAccountName   String          <storage account name>
                          storageAccountKey    SecureString
                          blobContainer        String          adftutorial
                          inputBlobFolder      String          input
                          inputBlobName        String          emp.txt
                          outputBlobFolder     String          output
                          outputBlobName       String          emp.txt
                          triggerStartTime     String          11/29/2017 12:00:00 AM
                          triggerEndTime       String          11/29/2017 4:00:00 AM

Outputs                 :
DeploymentDebugLogLevel :

Avviare il triggerStart the trigger

Il modello distribuisce le entità di Data Factory seguenti:The template deploys the following Data Factory entities:

  • Servizio collegato Archiviazione di AzureAzure Storage linked service
  • Set di dati di BLOB di Azure (input e output)Azure Blob datasets (input and output)
  • Pipeline con un’attività di copiaPipeline with a copy activity
  • Trigger per l'attivazione della pipelineTrigger to trigger the pipeline

Lo stato del trigger distribuito è arrestato.The deployed trigger is in stopped state. Uno dei modi per avviare il trigger consiste nell'usare il cmdlet Start-AzDataFactoryV2Trigger di PowerShell.One of the ways to start the trigger is to use the Start-AzDataFactoryV2Trigger PowerShell cmdlet. La procedura seguente fornisce passaggi dettagliati:The following procedure provides detailed steps:

  1. Nella finestra di PowerShell creare una variabile per includere il nome del gruppo di risorse.In the PowerShell window, create a variable to hold the name of the resource group. Copiare il comando seguente nella finestra di PowerShell e premere INVIO.Copy the following command into the PowerShell window, and press ENTER. Se è stato specificato un nome di gruppo di risorse diverso per il comando New-AZResourceGroupDeployment, aggiornare il valore qui.If you have specified a different resource group name for the New-AzResourceGroupDeployment command, update the value here.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Creare una variabile per includere il nome della data factory.Create a variable to hold the name of the data factory. Specificare lo stesso nome indicato nel file ADFTutorialARM-Parameters.json.Specify the same name that you specified in the ADFTutorialARM-Parameters.json file.

    $dataFactoryName = "<yourdatafactoryname>"
    
  3. Impostare una variabile per il nome del trigger.Set a variable for the name of the trigger. Il nome del trigger è hardcoded nel file del modello di Resource Manager (ADFTutorialARM.json).The name of the trigger is hardcoded in the Resource Manager template file (ADFTutorialARM.json).

    $triggerName = "ArmTemplateTestTrigger"
    
  4. Ottenere lo stato del trigger eseguendo il comando di PowerShell seguente dopo avere specificato il nome della data factory e del trigger:Get the status of the trigger by running the following PowerShell command after specifying the name of your data factory and trigger:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $triggerName
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    TriggerName       : ArmTemplateTestTrigger
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ARMFactory1128
    Properties        : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
    RuntimeState      : Stopped
    

    Si noti che lo stato di runtime del trigger è Stopped.Notice that the runtime state of the trigger is Stopped.

  5. Avviare il trigger.Start the trigger. Il trigger esegue la pipeline definita nel modello all'ora specificata.The trigger runs the pipeline defined in the template at the hour. Se questo comando è stato eseguito alle 14:25, il trigger esegue la pipeline alle 15:00 per la prima volta.That's, if you executed this command at 2:25 PM, the trigger runs the pipeline at 3 PM for the first time. La pipeline viene quindi eseguita ogni ora fino all'ora di fine specificata per il trigger.Then, it runs the pipeline hourly until the end time you specified for the trigger.

    Start-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -TriggerName $triggerName
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    Confirm
    Are you sure you want to start trigger 'ArmTemplateTestTrigger' in data factory 'ARMFactory1128'?
    [Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y
    True
    
  6. Confermare che il trigger è stato avviato eseguendo di nuovo il comando Get-AzDataFactoryV2Trigger.Confirm that the trigger has been started by running the Get-AzDataFactoryV2Trigger command again.

    Get-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -TriggerName $triggerName
    

    Di seguito è riportato l'output di esempio:Here is the sample output:

    TriggerName       : ArmTemplateTestTrigger
    ResourceGroupName : ADFTutorialResourceGroup
    DataFactoryName   : ARMFactory1128
    Properties        : Microsoft.Azure.Management.DataFactory.Models.ScheduleTrigger
    RuntimeState      : Started
    

Monitorare la pipelineMonitor the pipeline

  1. Dopo avere eseguito l'accesso al portale di Azure, fare clic su Tutti i servizi, eseguire una ricerca con una parola chiave come data fa e selezionare Data factory.After logging in to the Azure portal, Click All services, search with the keyword such as data fa, and select Data factories.

    Menu di esplorazione delle data factory

  2. Nella pagina Data factory fare clic sulla data factory creata.In the Data Factories page, click the data factory you created. Se necessario, filtrare l'elenco specificando il nome della data factory.If needed, filter the list with the name of your data factory.

    Selezionare la data factory

  3. Nella pagina Data factory fare clic sul riquadro Monitoraggio e gestione.In the Data factory page, click Monitor & Manage tile.

    Riquadro Monitoraggio e gestione

  4. L'applicazione Integrazione dati dovrebbe essere aperta in una scheda separata nel Web browser.The Data Integration Application should open in a separate tab in the web browser. Se la scheda per il monitoraggio non è attiva, passare alla scheda Monitoraggio. Si noti che la pipeline eseguita è stata attivata da un trigger dell'utilità di pianificazione.If the monitor tab is not active, switch to the monitor tab. Notice that the pipeline run was triggered by a scheduler trigger.

    Monitorare l'esecuzione della pipeline

    Importante

    Le esecuzioni della pipeline vengono visualizzate solo al cambio di ogni ora (ad esempio 4:00, 5:00, 6:00 e così via). Fare clic su Aggiorna sulla barra degli strumenti per aggiornare l'elenco quando si arriva all'ora successiva.

  5. Fare clic sul collegamento nelle colonne Azioni.Click the link in the Actions columns.

    Collegamento Azioni della pipeline

  6. Vengono visualizzate le esecuzioni di attività associate all'esecuzione della pipeline.You see the activity runs associated with the pipeline run. In questa guida introduttiva la pipeline ha solo un'attività di tipo copia.In this quickstart, the pipeline has only one activity of type: Copy. Viene quindi visualizzata un'esecuzione per tale attività.Therefore, you see a run for that activity.

    Esecuzioni attività

  7. Fare clic sul collegamento sotto la colonna Output.Click the link under Output column. Viene visualizzato l'output dell'operazione di copia in una finestra di Output.You see the output from the copy operation in an Output window. Per visualizzare l'output completo, fare clic sul pulsante Ingrandisci.Click the maximize button to see the full output. È possibile chiudere la finestra di output ingrandita o chiuderla senza ingrandirla.You can close the maximized output window or close it.

    Finestra Output

  8. Arrestare il trigger dopo la visualizzazione di un'esecuzione riuscita/non riuscita.Stop the trigger once you see a successful/failure run. Il trigger esegue la pipeline una volta all'ora.The trigger runs the pipeline once an hour. La pipeline copia lo stesso file dalla cartella di input alla cartella di output per ogni esecuzione.The pipeline copies the same file from the input folder to the output folder for each run. Per arrestare il trigger, eseguire il comando seguente nella finestra di PowerShell.To stop the trigger, run the following command in the PowerShell window.

    Stop-AzDataFactoryV2Trigger -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $triggerName
    

Verificare l'outputVerify the output

La pipeline crea automaticamente la cartella di output nel contenitore BLOB adftutorial,The pipeline automatically creates the output folder in the adftutorial blob container. quindi copia il file emp.txt dalla cartella di input a quella di output.Then, it copies the emp.txt file from the input folder to the output folder.

  1. Nella pagina del contenitore adftutorial del portale di Azure fare clic su Aggiorna per visualizzare la cartella di output.In the Azure portal, on the adftutorial container page, click Refresh to see the output folder.

    Aggiorna

  2. Fare clic su output nell'elenco di cartelle.Click output in the folder list.

  3. Verificare che emp.txt venga copiato nella cartella di output.Confirm that the emp.txt is copied to the output folder.

    Aggiorna

Pulire le risorseClean up resources

È possibile eseguire la pulizia delle risorse create nel corso della guida introduttiva in due modi.You can clean up the resources that you created in the Quickstart in two ways. Si può eliminare il gruppo di risorse di Azure, in modo da includere tutte le risorse del gruppo.You can delete the Azure resource group, which includes all the resources in the resource group. Se invece si vogliono mantenere intatte le altre risorse, eliminare solo la data factory creata in questa esercitazione.If you want to keep the other resources intact, delete only the data factory you created in this tutorial.

Se si elimina un gruppo di risorse, vengono eliminate tutte le risorse in esso contenute, incluse le data factory.Deleting a resource group deletes all resources including data factories in it. Eseguire il comando seguente per eliminare l'intero gruppo di risorse:Run the following command to delete the entire resource group:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Nota: l'eliminazione di un gruppo di risorse può richiedere tempo.Note: dropping a resource group may take some time. Attendere il completamento del processo.Please be patient with the process

Per eliminare solo la data factory e non l'intero gruppo di risorse, eseguire il comando seguente:If you want to delete just the data factory, not the entire resource group, run the following command:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

Definizioni JSON per le entitàJSON definitions for entities

Le entità di Data Factory seguenti vengono definite nel modello JSON:The following Data Factory entities are defined in the JSON template:

Servizio collegato Archiviazione di AzureAzure Storage linked service

AzureStorageLinkedService collega l'account di archiviazione di Azure alla data factory.The AzureStorageLinkedService links your Azure storage account to the data factory. Come parte dei prerequisiti è stato creato un contenitore e sono stati caricati i dati in questo account di archiviazione.You created a container and uploaded data to this storage account as part of prerequisites. In questa sezione si specificano il nome e la chiave dell'account di archiviazione di Azure.You specify the name and key of your Azure storage account in this section. Per informazioni dettagliate sulle proprietà JSON usate per definire un servizio collegato di Archiviazione di Azure, vedere Servizio collegato Archiviazione di Azure.See Azure Storage linked service for details about JSON properties used to define an Azure Storage linked service.

{
    "type": "linkedservices",
    "name": "[variables('azureStorageLinkedServiceName')]",
    "dependsOn": [
        "[parameters('dataFactoryName')]"
    ],
    "apiVersion": "2018-06-01",
    "properties": {
        "type": "AzureStorage",
        "description": "Azure Storage linked service",
        "typeProperties": {
            "connectionString": {
                "value": "[concat('DefaultEndpointsProtocol=https;AccountName=',parameters('storageAccountName'),';AccountKey=',parameters('storageAccountKey'))]",
                "type": "SecureString"
            }
        }
    }
}

connectionString usa i parametri storageAccountName e storageAccountKey.The connectionString uses the storageAccountName and storageAccountKey parameters. I valori per questi parametri sono stati passati usando un file di configurazione.The values for these parameters passed by using a configuration file. La definizione usa anche le variabili azureStorageLinkedService e dataFactoryName definite nel modello.The definition also uses variables: azureStorageLinkedService and dataFactoryName defined in the template.

Set di dati di input del BLOB di AzureAzure blob input dataset

Il servizio collegato Archiviazione di Azure specifica la stringa di connessione usata dal servizio Data Factory in fase di esecuzione per connettersi all'account di archiviazione di Azure.The Azure storage linked service specifies the connection string that Data Factory service uses at run time to connect to your Azure storage account. Nella definizione del set di dati del BLOB si specificano i nomi del contenitore BLOB, della cartella e del file contenente i dati di input.In Azure blob dataset definition, you specify names of blob container, folder, and file that contains the input data. Per informazioni dettagliate sulle proprietà JSON usate per definire un set di dati del BLOB di Azure, vedere Proprietà del set di dati del BLOB di Azure.See Azure Blob dataset properties for details about JSON properties used to define an Azure Blob dataset.

{
    "type": "datasets",
    "name": "[variables('inputDatasetName')]",
    "dependsOn": [
        "[parameters('dataFactoryName')]",
        "[variables('azureStorageLinkedServiceName')]"
    ],
    "apiVersion": "2018-06-01",
    "properties": {
        "type": "AzureBlob",
        "typeProperties": {
            "folderPath": "[concat(parameters('blobContainer'), '/', parameters('inputBlobFolder'), '/')]",
            "fileName": "[parameters('inputBlobName')]"
        },
        "linkedServiceName": {
            "referenceName": "[variables('azureStorageLinkedServiceName')]",
            "type": "LinkedServiceReference"
        }
    }
},

Set di dati di output del BLOB di AzureAzure blob output dataset

Viene specificato il nome della cartella dell'archivio BLOB di Azure che include i dati copiati dalla cartella di input.You specify the name of the folder in the Azure Blob Storage that holds the copied data from the input folder. Per informazioni dettagliate sulle proprietà JSON usate per definire un set di dati del BLOB di Azure, vedere Proprietà del set di dati del BLOB di Azure.See Azure Blob dataset properties for details about JSON properties used to define an Azure Blob dataset.

{
    "type": "datasets",
    "name": "[variables('outputDatasetName')]",
    "dependsOn": [
        "[parameters('dataFactoryName')]",
        "[variables('azureStorageLinkedServiceName')]"
    ],
    "apiVersion": "2018-06-01",
    "properties": {
        "type": "AzureBlob",
        "typeProperties": {
            "folderPath": "[concat(parameters('blobContainer'), '/', parameters('outputBlobFolder'), '/')]",
            "fileName": "[parameters('outputBlobName')]"
        },
        "linkedServiceName": {
            "referenceName": "[variables('azureStorageLinkedServiceName')]",
            "type": "LinkedServiceReference"
        }
    }
}

Data PipelineData pipeline

Viene definita una pipeline che copia i dati da un set di dati di BLOB di Azure in un altro set di dati di BLOB di Azure.You define a pipeline that copies data from one Azure blob dataset to another Azure blob dataset. Per le descrizioni degli elementi JSON usati per definire una pipeline in questo esempio, vedere Pipeline JSON.See Pipeline JSON for descriptions of JSON elements used to define a pipeline in this example.

{
    "type": "pipelines",
    "name": "[variables('pipelineName')]",
    "dependsOn": [
        "[parameters('dataFactoryName')]",
        "[variables('azureStorageLinkedServiceName')]",
        "[variables('inputDatasetName')]",
        "[variables('outputDatasetName')]"
    ],
    "apiVersion": "2018-06-01",
    "properties": {
        "activities": [{
            "type": "Copy",
            "typeProperties": {
                "source": {
                    "type": "BlobSource"
                },
                "sink": {
                    "type": "BlobSink"
                }
            },
            "name": "MyCopyActivity",
            "inputs": [{
                "referenceName": "[variables('inputDatasetName')]",
                "type": "DatasetReference"
            }],
            "outputs": [{
                "referenceName": "[variables('outputDatasetName')]",
                "type": "DatasetReference"
            }]
        }]
    }
}

TriggerTrigger

Viene definito un trigger che esegue la pipeline una volta all'ora.You define a trigger that runs the pipeline once an hour. Lo stato del trigger distribuito è arrestato.The deployed trigger is in stopped state. Avviare il trigger usando il cmdlet Start-AzDataFactoryV2Trigger.Start the trigger by using the Start-AzDataFactoryV2Trigger cmdlet. Per altre informazioni sui trigger, vedere l'articolo Esecuzione e trigger di pipeline.For more information about triggers, see Pipeline execution and triggers article.

{
    "type": "triggers",
    "name": "[variables('triggerName')]",
    "dependsOn": [
        "[parameters('dataFactoryName')]",
        "[variables('azureStorageLinkedServiceName')]",
        "[variables('inputDatasetName')]",
        "[variables('outputDatasetName')]",
        "[variables('pipelineName')]"
    ],
    "apiVersion": "2018-06-01",
    "properties": {
        "type": "ScheduleTrigger",
        "typeProperties": {
            "recurrence": {
                "frequency": "Hour",
                "interval": 1,
                "startTime": "2017-11-28T00:00:00",
                "endTime": "2017-11-29T00:00:00",
                "timeZone": "UTC"
            }
        },
        "pipelines": [{
            "pipelineReference": {
                "type": "PipelineReference",
                "referenceName": "ArmtemplateSampleCopyPipeline"
            },
            "parameters": {}
        }]
    }
}

Riutilizzare il modelloReuse the template

Nell'esercitazione sono stati creati un modello per definire le entità di Data Factory e un modello per passare i valori dei parametri.In the tutorial, you created a template for defining Data Factory entities and a template for passing values for parameters. Per usare lo stesso modello per distribuire le entità di Data Factory in ambienti diversi, si crea un file dei parametri per ogni ambiente e lo si usa durante la distribuzione in tale ambiente.To use the same template to deploy Data Factory entities to different environments, you create a parameter file for each environment and use it when deploying to that environment.

Esempio:Example:

New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFTutorialARM.json -TemplateParameterFile ADFTutorialARM-Parameters-Dev.json

New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFTutorialARM.json -TemplateParameterFile ADFTutorialARM-Parameters-Test.json

New-AzResourceGroupDeployment -Name MyARMDeployment -ResourceGroupName ADFTutorialResourceGroup -TemplateFile ADFTutorialARM.json -TemplateParameterFile ADFTutorialARM-Parameters-Production.json

Si noti che il primo comando usa il file dei parametri per l'ambiente di sviluppo, il secondo per l'ambiente di test e il terzo per l'ambiente di produzione.Notice that the first command uses parameter file for the development environment, second one for the test environment, and the third one for the production environment.

È anche possibile riutilizzare il modello per eseguire attività ripetute.You can also reuse the template to perform repeated tasks. Ad esempio, creare più data factory con una o più pipeline che implementano la stessa logica, anche se ogni data factory usa account di archiviazione diversi Azure.For example, create many data factories with one or more pipelines that implement the same logic but each data factory uses different Azure storage accounts. In questo scenario si usa lo stesso modello nello stesso ambiente (sviluppo, test o produzione) con file dei parametri diversi per creare le data factory.In this scenario, you use the same template in the same environment (dev, test, or production) with different parameter files to create data factories.

Passaggi successiviNext steps

La pipeline in questo esempio copia i dati da una posizione a un'altra in un archivio BLOB di Azure.The pipeline in this sample copies data from one location to another location in an Azure blob storage. Per informazioni sull'uso di Data Factory in più scenari, fare riferimento alle esercitazioni.Go through the tutorials to learn about using Data Factory in more scenarios.