Quickstart: Een Azure Data Factory maken op basis van een ARM-sjabloon
VAN TOEPASSING OP:
Azure Data Factory
Azure Synapse Analytics
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. Meer informatie over het transformeren van gegevens met behulp van Azure Data Factory vindt u in Zelfstudie: Gegevens transformeren met Spark.
Een Resource Manager-sjabloon is een JavaScript Object Notation-bestand (JSON) dat de infrastructuur en configuratie van uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. In declaratieve syntaxis beschrijft u de beoogde implementatie zonder dat u de reeks programmeeropdrachten voor het maken van de implementatie hoeft te schrijven.
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.
Vereisten
Azure-abonnement
Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan 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-quickstartsjablonen.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.4.412.5873",
"templateHash": "5138689633595887430"
}
},
"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."
}
}
},
"functions": [],
"variables": {
"dataFactoryLinkedServiceName": "ArmtemplateStorageLinkedService",
"dataFactoryDataSetInName": "ArmtemplateTestDatasetIn",
"dataFactoryDataSetOutName": "ArmtemplateTestDatasetOut",
"pipelineName": "ArmtemplateSampleCopyPipeline"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
},
{
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
"apiVersion": "2021-04-01",
"name": "[format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName'))]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]"
]
},
{
"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')), '2021-04-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": "[format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName'))]",
"folderPath": "input",
"fileName": "emp.txt"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[0], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[1], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[2])]",
"[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": "[format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName'))]",
"folderPath": "output"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[0], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[1], split(format('{0}/default/{1}', parameters('storageAccountName'), parameters('blobContainerName')), '/')[2])]",
"[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",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"source": {
"type": "BinarySource",
"storeSettings": {
"type": "AzureBlobStorageReadSettings",
"recursive": true
}
},
"sink": {
"type": "BinarySink",
"storeSettings": {
"type": "AzureBlobStorageWriterSettings"
}
},
"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'))]"
]
}
]
}
Er zijn Azure-resources gedefinieerd in de sjabloon:
- Microsoft.Storage/storageAccounts: Hiermee wordt een opslagaccount gedefinieerd.
- Microsoft.DataFactory/factories: Hiermee wordt een Azure Data Factory gemaakt.
- Microsoft.DataFactory/factories/linkedServices: Hiermee wordt een aan Azure Data Factory gekoppelde service gemaakt.
- Microsoft.DataFactory/factories/datasets: Hiermee wordt een Azure Data Factory-gegevensset gemaakt.
- Microsoft.DataFactory/factories/pipelines: Hiermee wordt een Azure Data Factory-pijplijn gemaakt.
Meer voorbeelden van Azure Data Factory-sjablonen vindt u in de galerie met quickstart-sjablonen.
De sjabloon implementeren
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.
Typ of selecteer de volgende waarden.
Gebruik de standaardwaarden om de Azure Data Factory-resources te maken, tenzij er iets anders is aangegeven:
- Abonnement: Selecteer een Azure-abonnement.
- Resourcegroep: Selecteer Nieuwe maken, geef een unieke naam op voor de resourcegroep en selecteer 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
Selecteer Naar de resourcegroep gaan.
Verifieer dat uw Azure Data Factory is gemaakt.
- De naam van uw Azure Data Factory heeft de indeling - datafactory<uniqueid>.
Verifieer dat uw opslagaccount is gemaakt.
- De naam van uw opslagaccount heeft de indeling - storage<uniqueid>.
Selecteer het gemaakte opslagaccount en selecteer vervolgens Containers.
- Selecteer op de pagina Containers de blobcontainer die u hebt gemaakt.
- De naam van uw blobcontainer heeft de indeling - blob<uniqueid>.
- Selecteer op de pagina Containers de blobcontainer die u hebt gemaakt.
Bestand uploaden
Selecteer op de pagina Containers de optie Uploaden.
Selecteer in het rechterdeelvenster het vak Bestanden, blader naar het bestand emp.txt dat u eerder hebt gemaakt, en selecteer het.
Vouw de kop Geavanceerd uit.
In het vak Uploaden naar map voert u invoer in.
Selecteer de knop Uploaden. Als het goed is, ziet u in de lijst nu het bestand emp.txt, evenals de uploadstatus hiervan.
Selecteer het pictogram Sluiten (X) om de pagina Blob uploaden te sluiten.
Laat de containerpagina openstaan, want u kunt deze aan het eind van deze quickstart gebruiken om de uitvoer te verifiëren.
Trigger starten
Ga naar de pagina Data factory's en selecteer de data factory die u hebt gemaakt.
Selecteer Openen op de tegel Azure Data Factory Studio openen.
Selecteer het tabblad Auteur
.Selecteer de gemaakte pijplijn - ArmtemplateSampleCopyPipeline.
Selecteer Trigger toevoegen > Nu activeren.
In het rechterdeelvenster onder Pijplijnuitvoering selecteert u OK.
De pijplijn bewaken
Selecteer het tabblad Controleren
.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.
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.
Selecteer in de Azure-portal op de pagina Containers de optie Vernieuwen om de uitvoermap weer te geven.
Selecteer Uitvoer in de lijst met mappen.
Controleer of het bestand emp.txt naar de uitvoermap is gekopieerd.
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
Volgende stappen
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.
- Documentatie voor Azure Data Factory
- Meer informatie over Azure Resource Manager
- Andere Azure Data Factory ARM-sjablonen ophalen