Quickstart: Een Azure Data Factory maken met behulp van een ARM-sjabloon

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory in Microsoft Fabric is de volgende generatie van Azure Data Factory, met een eenvoudigere architectuur, ingebouwde AI en nieuwe functies. Als u nieuw bent in gegevensintegratie, begint u met Fabric Data Factory. Bestaande ADF-workloads kunnen upgraden naar Fabric om toegang te krijgen tot nieuwe mogelijkheden voor gegevenswetenschap, realtime analyses en rapportage.

In deze quickstart wordt beschreven hoe u een Azure Resource Manager-sjabloon (ARM-sjabloon) gebruikt om een Azure data factory te maken. De pijplijn die u in deze gegevensfabriek maakt, kopieert gegevens uit de ene map naar een andere map in een Azure-blobopslag. Zie de zelfstudie voor het transformeren van gegevens met behulp van Azure Data Factory in Tutorial: Gegevens transformeren met Spark.

Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

Notitie

Dit artikel bevat geen gedetailleerde inleiding tot de Data Factory-service. Zie Inleidende inleiding tot Azure Data Factory voor een inleiding tot de Azure Data Factory-service.

Als uw omgeving voldoet aan de vereisten en u bekend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeer naar Azure. De sjabloon wordt geopend in de Azure-portal.

Button om de Resource Manager-sjabloon te implementeren in Azure.

Prerequisites

Azure-abonnement

Als u geen Azure-abonnement hebt, maakt u een vrij account voordat u begint.

Een bestand maken

Open een tekstverwerker zoals Kladblok en maak een bestand met de naam emp.txt met de volgende inhoud:

John, Doe
Jane, Doe

Sla het bestand op in de map c:\ADFv2QuickStartPSH. Als de map nog niet bestaat, maak deze aan.

Sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, is afkomstig uit Azure Quickstart-sjablonen.

{
  "$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')]"
    }
  }
}

Er zijn Azure resources gedefinieerd in de sjabloon:

Meer Azure Data Factory sjabloonvoorbeelden vindt u in de galerie quickstart-sjablonen.

De sjabloon implementeren

  1. Selecteer de volgende afbeelding om u aan te melden bij Azure en een sjabloon te openen. Met de sjabloon maakt u een Azure Data Factory-account, een opslagaccount en een blobcontainer.

    Button om de Resource Manager-sjabloon te implementeren in Azure.

  2. Typ of selecteer de volgende waarden.

    ADF ARM-sjabloon implementeren

    Gebruik, tenzij deze is opgegeven, de standaardwaarden om de Azure Data Factory resources te maken:

    • Subscription: Selecteer een Azure-abonnement.
    • Resourcegroep: Selecteer Nieuwe maken, voer een unieke naam in voor de resourcegroep en selecteer VERVOLGENS OK.
    • Regio: Selecteer een locatie. Bijvoorbeeld VS - Oost.
    • Data Factory-naam: gebruik de standaardwaarde.
    • Locatie: Gebruik de standaardwaarde.
    • Naam van opslagaccount: gebruik de standaardwaarde.
    • Blobcontainer: gebruik de standaardwaarde.

Uitgerolde middelen bekijken

  1. Selecteer Ga naar resourcegroep.

    Resource Groep

  2. Controleer of uw Azure Data Factory is gemaakt.

    1. De naam van uw Azure Data Factory heeft de indeling datafactory<uniqueid>.

    Data Factory-voorbeeld

  3. Verifieer dat uw opslagaccount is gemaakt.

    1. De naam van het opslagaccount heeft het formaat - opslag<uniekeid>.

    Opslagaccount

  4. Selecteer het gemaakte opslagaccount en selecteer vervolgens Containers.

    1. Selecteer op de pagina Containers de blobcontainer die u hebt gemaakt.
      1. De naam van de blobcontainer heeft de indeling - blob<uniqueid>.

    Blobcontainer

Een bestand uploaden

  1. Selecteer op de pagina Containers de optie Uploaden.

  2. Selecteer in het rechterdeelvenster het vak Bestanden en blader naar het emp.txt bestand dat u eerder hebt gemaakt.

  3. Vouw de kop Geavanceerd uit.

  4. In het vak Uploaden naar map voert u invoer in.

  5. Selecteer de knop Uploaden. U ziet het emp.txt-bestand en de status van de upload in de lijst.

  6. Selecteer het pictogram Sluiten (X) om de pagina Blob uploaden te sluiten.

    Bestand uploaden naar invoermap

Laat de containerpagina openstaan, want u kunt deze aan het eind van deze quickstart gebruiken om de uitvoer te verifiëren.

Trigger starten

  1. Ga naar de Data factories pagina en selecteer de data factory die u hebt gemaakt.

  2. Selecteer Open op de tegel Open Azure Data Factory Studio.

    Auteur en Beheer

  3. Selecteer het tabblad Author.

  4. Selecteer de aangemaakte pijplijn - ArmtemplateSampleCopyPipeline.

    ARM-sjabloonpijplijn

  5. Selecteer Trigger toevoegen>Nu activeren.

    Trigger

  6. In het rechterdeelvenster onder Pijplijnuitvoering selecteert u OK.

De pijplijn bewaken

  1. Selecteer het tabblad Monitor.

  2. U ziet de activiteitsuitvoeringen die zijn gekoppeld aan de pijplijnuitvoering. In deze QuickStart heeft de pijplijn slechts één activiteit en wel van het type Kopiëren. Daarom ziet u een uitvoering van die activiteit.

    Geslaagde uitvoering

Het uitvoerbestand verifiëren

De pijplijn maakt automatisch een uitvoermap aan in de blobcontainer. Vervolgens wordt het bestand emp.txt gekopieerd van de invoermap naar de uitvoermap.

  1. Selecteer in de Azure-portal op de pagina ContainersRefresh om de uitvoermap weer te geven.

  2. Selecteer Uitvoer in de lijst met mappen.

  3. Controleer of het bestand emp.txt naar de uitvoermap is gekopieerd.

    Uitvoer

De hulpbronnen opschonen

De resources die u hebt gemaakt in de Quick Start kunt u op twee manieren opschonen. U kunt de Azure-resourcegroep verwijderen, inclusief alle resources die zich in de resourcegroep bevinden. Als u de andere resources intact wilt houden, verwijdert u alleen de data factory die u in deze zelfstudie hebt gemaakt.

Als u een resourcegroep verwijdert, worden alle resources die deze bevat, met inbegrip van de data factory's, ook verwijderd. Voer de volgende opdracht uit om de gehele resourcegroep te verwijderen:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Als u alleen de data factory wilt verwijderen en niet de gehele resourcegroep, moet u de volgende opdracht uitvoeren:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

In deze quickstart hebt u een Azure Data Factory gemaakt met behulp van een ARM-sjabloon en de implementatie gevalideerd. Ga verder met de onderstaande artikelen voor meer informatie over Azure Data Factory en Azure Resource Manager.