Condividi tramite


Avvio rapido: Creare un'istanza di Azure Data Factory con il modello ARM

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Questa guida introduttiva descrive come usare un modello di Azure Resource Manager per creare una data factory Azure. La pipeline che crei in questa fabbrica di dati copia i dati da una cartella a un'altra in un archivio BLOB di Azure. Per un'esercitazione su come trasformare i dati con Azure Data Factory, consultare Tutorial: Trasformare i dati con Spark.

Un modello Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.

Nota

Questo articolo non fornisce un'introduzione dettagliata del servizio Data Factory. Per un'introduzione al servizio di Azure Data Factory, vedere Introduzione a Azure Data Factory.

Se il tuo ambiente soddisfa i prerequisiti e si ha familiarità con l'uso dei modelli ARM, selezionare il pulsante Distribuisci su Azure. Il modello verrà aperto nel portale di Azure.

Button per distribuire il modello di Resource Manager in Azure.

Prerequisiti

sottoscrizione Azure

Se non si ha una sottoscrizione Azure, creare un account free prima di iniziare.

Creare un file

Aprire un editor di testo come il Blocco note e creare un file denominato emp.txt con il contenuto seguente:

John, Doe
Jane, Doe

Salvare il file nella cartella C:\ADFv2QuickStartPSH. Se la cartella non esiste, crearla.

Rivedere il modello

Il modello usato in questa guida introduttiva è Azure Modelli di avvio rapido.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.26.54.24096",
      "templateHash": "17339534711754973978"
    }
  },
  "parameters": {
    "dataFactoryName": {
      "type": "string",
      "defaultValue": "[format('datafactory{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Data Factory Name"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location of the data factory."
      }
    },
    "storageAccountName": {
      "type": "string",
      "defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Name of the Azure storage account that contains the input/output data."
      }
    },
    "blobContainerName": {
      "type": "string",
      "defaultValue": "[format('blob{0}', uniqueString(resourceGroup().id))]",
      "metadata": {
        "description": "Name of the blob container in the Azure Storage account."
      }
    }
  },
  "variables": {
    "dataFactoryLinkedServiceName": "ArmtemplateStorageLinkedService",
    "dataFactoryDataSetInName": "ArmtemplateTestDatasetIn",
    "dataFactoryDataSetOutName": "ArmtemplateTestDatasetOut",
    "pipelineName": "ArmtemplateSampleCopyPipeline"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('storageAccountName'), 'default')]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-01-01",
      "name": "[parameters('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "minimumTlsVersion": "TLS1_2",
        "supportsHttpsTrafficOnly": true,
        "allowBlobPublicAccess": false
      }
    },
    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}/{2}', parameters('storageAccountName'), 'default', parameters('blobContainerName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices', parameters('storageAccountName'), 'default')]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories",
      "apiVersion": "2018-06-01",
      "name": "[parameters('dataFactoryName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      }
    },
    {
      "type": "Microsoft.DataFactory/factories/linkedservices",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]",
      "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "[format('DefaultEndpointsProtocol=https;AccountName={0};AccountKey={1}', parameters('storageAccountName'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2023-01-01').keys[0].value)]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[variables('dataFactoryLinkedServiceName')]",
          "type": "LinkedServiceReference"
        },
        "type": "Binary",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "container": "[parameters('blobContainerName')]",
            "folderPath": "input",
            "fileName": "emp.txt"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/datasets",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]",
      "properties": {
        "linkedServiceName": {
          "referenceName": "[variables('dataFactoryLinkedServiceName')]",
          "type": "LinkedServiceReference"
        },
        "type": "Binary",
        "typeProperties": {
          "location": {
            "type": "AzureBlobStorageLocation",
            "container": "[parameters('blobContainerName')]",
            "folderPath": "output"
          }
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/linkedservices', parameters('dataFactoryName'), variables('dataFactoryLinkedServiceName'))]"
      ]
    },
    {
      "type": "Microsoft.DataFactory/factories/pipelines",
      "apiVersion": "2018-06-01",
      "name": "[format('{0}/{1}', parameters('dataFactoryName'), variables('pipelineName'))]",
      "properties": {
        "activities": [
          {
            "name": "MyCopyActivity",
            "type": "Copy",
            "typeProperties": {
              "source": {
                "type": "BinarySource",
                "storeSettings": {
                  "type": "AzureBlobStorageReadSettings",
                  "recursive": true
                }
              },
              "sink": {
                "type": "BinarySink",
                "storeSettings": {
                  "type": "AzureBlobStorageWriteSettings"
                }
              },
              "enableStaging": false
            },
            "inputs": [
              {
                "referenceName": "[variables('dataFactoryDataSetInName')]",
                "type": "DatasetReference"
              }
            ],
            "outputs": [
              {
                "referenceName": "[variables('dataFactoryDataSetOutName')]",
                "type": "DatasetReference"
              }
            ]
          }
        ]
      },
      "dependsOn": [
        "[resourceId('Microsoft.DataFactory/factories', parameters('dataFactoryName'))]",
        "[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetInName'))]",
        "[resourceId('Microsoft.DataFactory/factories/datasets', parameters('dataFactoryName'), variables('dataFactoryDataSetOutName'))]"
      ]
    }
  ],
  "outputs": {
    "name": {
      "type": "string",
      "value": "[variables('pipelineName')]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.DataFactory/factories/pipelines', parameters('dataFactoryName'), variables('pipelineName'))]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    }
  }
}

Nel modello sono definite risorse Azure:

Altri esempi di modelli Azure Data Factory sono disponibili nella raccolta di modelli quickstart.

Distribuire il modello

  1. Selezionare l'immagine seguente per accedere a Azure e aprire un modello. Il modello crea un account Azure Data Factory, un account di archiviazione e un contenitore BLOB.

    Button per distribuire il modello di Resource Manager in Azure.

  2. Selezionare o immettere i valori seguenti.

    Distribuire un template ARM di ADF

    A meno che non sia specificato, usare i valori predefiniti per creare le risorse Azure Data Factory:

    • Subscription: selezionare una sottoscrizione Azure.
    • Gruppo di risorse: selezionare Crea nuovo, immettere un nome univoco per il gruppo di risorse e quindi selezionare OK.
    • Area: selezionare una località. Ad esempio Stati Uniti orientali.
    • Nome della Data Factory: Usare il valore predefinito.
    • Percorso: usare il valore predefinito.
    • Nome account di archiviazione: Usa il valore predefinito.
    • Contenitore BLOB: usare il valore predefinito.

Esaminare le risorse distribuite

  1. Selezionare Vai al gruppo di risorse.

    Gruppo di risorse

  2. Verificare che il Azure Data Factory sia stato creato.

    1. Il nome Azure Data Factory è nel formato datafactory<uniqueid>.

    Sample Data Factory

  3. Verificare che venga creato un account di archiviazione.

    1. Il nome dell'account di archiviazione è nel formato - storage<uniqueid>.

    Account di archiviazione

  4. Selezionare l'account di archiviazione creato e quindi selezionare Contenitori.

    1. Nella pagina Contenitori selezionare il contenitore BLOB creato.
      1. Il nome del contenitore BLOB è nel formato uniqueid< blob>.

    Contenitore BLOB

Caricare un file

  1. Nella pagina Contenitori selezionare Carica.

  2. Nel riquadro destro selezionare la casella File e quindi passare a e selezionare il fileemp.txt creato in precedenza.

  3. Espandere l'intestazione Avanzate.

  4. Nella casella Carica nella cartella immettere input.

  5. Seleziona il pulsante Carica. Verranno visualizzati il file emp.txt e lo stato del caricamento nell'elenco.

  6. Selezionare l'icona Chiudi (una X) per chiudere la pagina Carica BLOB.

    Caricare il file nella cartella di input

Mantieni aperta la pagina del contenitore, perché puoi usarla per verificare l'output alla fine di questa guida introduttiva.

Avvia il trigger

  1. Passare alla pagina Data factories e selezionare la data factory che hai creato.

  2. Selezionare Apri nel riquadro Apri Azure Data Factory Studio.

    Redigi e Monitora

  3. Selezionare la scheda Autore.

  4. Selezionare la pipeline creata: ArmtemplateSampleCopyPipeline.

    Pipeline del modello ARM

  5. Selezionare Aggiungi trigger>Attiva ora.

    Trigger

  6. Nel riquadro destro sotto Pipeline run, scegliere OK.

Monitorare la pipeline

  1. Selezionare la scheda Monitor.

  2. Vengono visualizzate le esecuzioni di attività associate all'esecuzione della pipeline. In questa guida introduttiva la pipeline ha solo un'attività di tipo copia. Viene pertanto visualizzata un'esecuzione per tale attività.

    Esecuzione riuscita

Verificare il file di output

La pipeline crea automaticamente una cartella di output nel contenitore BLOB. quindi copia il file emp.txt dalla cartella di input a quella di output.

  1. Nella pagina Azure portal, nella pagina Containers selezionare Refresh per visualizzare la cartella di output.

  2. Nell'elenco delle cartelle selezionare output.

  3. Verificare che emp.txt venga copiato nella cartella di output.

    Output

Pulire le risorse

È possibile eseguire la pulizia delle risorse create nel Quickstart in due modi. È possibile eliminare il gruppo di risorse Azure, che include tutte le risorse nel gruppo di risorse. Se invece si vogliono mantenere intatte le altre risorse, eliminare solo la data factory creata in questa esercitazione.

Se si elimina un gruppo di risorse, vengono eliminate tutte le risorse in esso contenute, incluse le data factory. Eseguire il comando seguente per eliminare l'intero gruppo di risorse:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Per eliminare solo la data factory e non l'intero gruppo di risorse, eseguire questo comando:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

In questo argomento di avvio rapido è stata creata un'istanza di Azure Data Factory usando un modello di Azure Resource Manager ed è stata convalidata la distribuzione. Per altre informazioni su Azure Data Factory e Azure Resource Manager, continuare con gli articoli seguenti.