Share via


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

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In deze quickstart wordt beschreven hoe u een Azure Resource Manager-sjabloon (ARM) gebruikt om een Azure Data Factory te maken. Met de pijplijn die u in deze data factory maakt, worden gegevens gekopieerd van één map naar een andere map in een Azure Blob Storage. Zie Zelfstudie: Gegevens transformeren met Spark voor meer informatie over het transformeren van gegevens met Azure Data Factory.

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 is geen gedetailleerde introductie tot de Data Factory-service. Zie Inleiding tot Azure Data Factory voor een inleiding tot Azure Data Factory-service.

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

Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

Vereisten

Azure-abonnement

Als u geen Azure-abonnement hebt, maakt u een gratis 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. (Maak de map als deze nog niet bestaat.)

Sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen.

{
  "$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 voorbeelden van Azure Data Factory-sjablonen vindt u in de galerie met 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 worden een Azure Data Factory-account, een opslagaccount en een blobcontainer gemaakt.

    Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

  2. Typ of selecteer de volgende waarden.

    ADF ARM-sjabloon implementeren

    Gebruik de standaardwaarden om de Azure Data Factory-resources te maken, tenzij er iets anders is aangegeven:

    • 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.

Geïmplementeerde resources bekijken

  1. Selecteer Naar de resourcegroep gaan.

    Resourcegroep

  2. Verifieer dat uw Azure Data Factory is gemaakt.

    1. Uw Azure Data Factory-naam heeft de indeling - datafactory<uniqueid>.

    Data Factory-voorbeeld

  3. Verifieer dat uw opslagaccount is gemaakt.

    1. De naam van het opslagaccount heeft de indeling : unieke opslag-id<>.

    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, blader naar het bestand emp.txt dat u eerder hebt gemaakt, en selecteer het.

  3. Vouw de kop Geavanceerd uit.

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

  5. Selecteer de knop Uploaden. Als het goed is, ziet u in de lijst nu het bestand emp.txt, evenals de uploadstatus hiervan.

  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 pagina Data factory's en selecteer de data factory die u hebt gemaakt.

  2. Selecteer Openen op de tegel Azure Data Factory Studio openen.

    Maken en bewaken

  3. Selecteer het tabblad Auteur.

  4. Selecteer de gemaakte pijplijn - ArmtemplateSampleCopyPipeline.

    ARM-sjabloonpijplijn

  5. Selecteer Trigger toevoegen>Nu activeren.

    Activator

  6. In het rechterdeelvenster onder Pijplijnuitvoering selecteert u OK.

De pijplijn bewaken

  1. Selecteer het tabblad Monitor.

  2. U ziet de uitvoering van de activiteiten 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 voor die activiteit.

    Geslaagde uitvoering

Het uitvoerbestand verifiëren

De uitvoermap wordt automatisch door de pijplijn gemaakt 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 Containers de optie Vernieuwen 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

Resources opschonen

De resources die u hebt gemaakt in de Quick Start kunt u op twee manieren opschonen. U kunt de Azure-resourcegroep verwijderen, met alle resources uit de resourcegroep. 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. Als u meer wilt weten over Azure Data Factory en Azure Resource Manager, vindt u meer informatie in de onderstaande artikelen.