Szybki start: tworzenie Azure Data Factory przy użyciu szablonu usługi ARM
DOTYCZY: Azure Data Factory Azure Synapse Analytics
W tym przewodniku Szybki start opisano sposób tworzenia fabryki danych Azure za pomocą szablonu usługi Azure Resource Manager (szablonu arm). Potok tworzony w tej fabryce danych kopiuje dane z jednego folderu do innego folderu w usłudze Azure Blob Storage. Aby zapoznać się z samouczkiem dotyczącym przekształcania danych przy użyciu Azure Data Factory, zobacz Samouczek: przekształcanie danych przy użyciu platformy Spark.
Szablon usługi Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. W składni deklaratywnej opisujesz rozwiązanie, które chcesz wdrożyć, bez konieczności pisania sekwencji poleceń programistycznych służących do tworzenia takiego wdrożenia.
Uwaga
Ten artykuł nie zawiera szczegółowego wprowadzenia do usługi Data Factory. Aby zapoznać się z wprowadzeniem do usługi Azure Data Factory, zobacz Wprowadzenie do usługi Azure Data Factory.
Jeśli Twoje środowisko spełnia wymagania wstępne i masz doświadczenie w korzystaniu z szablonów ARM, wybierz przycisk Wdróż na platformie Azure. Szablon zostanie otwarty w witrynie Azure Portal.
Wymagania wstępne
Subskrypcja platformy Azure
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
Tworzenie pliku
Otwórz edytor tekstów, taki jak Notatnik, i utwórz plik o nazwie emp.txt z następującą zawartością:
John, Doe
Jane, Doe
Zapisz plik w folderze C:\ADFv2QuickStartPSH . (Jeśli folder jeszcze nie istnieje, utwórz go).
Przeglądanie szablonu
Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.9.1.41621",
"templateHash": "5567387787764483116"
}
},
"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",
"apiVersion": "2021-08-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
},
{
"type": "Microsoft.Storage/storageAccounts/blobServices/containers",
"apiVersion": "2021-08-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-08-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'))]"
]
}
]
}
Istnieją zasoby platformy Azure zdefiniowane w szablonie:
- Microsoft.Storage/storageAccounts: definiuje konto magazynu.
- Microsoft.DataFactory/factory: utwórz Azure Data Factory.
- Microsoft.DataFactory/factory/linkedServices: utwórz połączoną usługę Azure Data Factory.
- Microsoft.DataFactory/fabryki/zestawy danych: utwórz zestaw danych Azure Data Factory.
- Microsoft.DataFactory/fabryki/potoki: utwórz potok Azure Data Factory.
Więcej Azure Data Factory przykładów szablonów można znaleźć w galerii szablonów szybkiego startu.
Wdrożenie szablonu
Wybierz poniższy obraz, aby zalogować się na platformie Azure i otworzyć szablon. Szablon tworzy konto Azure Data Factory, konto magazynu i kontener obiektów blob.
Wybierz lub wprowadź następujące wartości.
Jeśli nie zostanie określony, użyj wartości domyślnych, aby utworzyć zasoby Azure Data Factory:
- Subskrypcja: wybierz subskrypcję platformy Azure.
- Grupa zasobów: wybierz pozycję Utwórz nową, wprowadź unikatową nazwę grupy zasobów, a następnie wybierz przycisk OK.
- Region: wybierz lokalizację. Na przykład Wschodnie stany USA.
- Nazwa fabryki danych: użyj wartości domyślnej.
- Lokalizacja: użyj wartości domyślnej.
- Nazwa konta magazynu: użyj wartości domyślnej.
- Kontener obiektów blob: użyj wartości domyślnej.
Przeglądanie wdrożonych zasobów
Wybierz pozycję Przejdź do grupy zasobów.
Sprawdź, czy utworzono Azure Data Factory.
- Nazwa Azure Data Factory jest w formacie — datafactory<uniqueid>.
Sprawdź, czy konto magazynu zostało utworzone.
- Nazwa konta magazynu jest w formacie — unikatowy identyfikator> magazynu<.
Wybierz utworzone konto magazynu, a następnie wybierz pozycję Kontenery.
- Na stronie Kontenery wybierz utworzony kontener obiektów blob.
- Nazwa kontenera obiektów blob ma format - uniqueid> obiektu blob<.
- Na stronie Kontenery wybierz utworzony kontener obiektów blob.
Przekazywanie pliku
Na stronie Kontenery wybierz pozycję Przekaż.
W okienku po prawej stronie wybierz pole Pliki , a następnie przejdź do i wybierz utworzony wcześniej plik emp.txt .
Rozwiń nagłówek Zaawansowane .
W polu Przekaż do folderu wprowadź dane wejściowe.
Wybierz przycisk Przekaż. Na liście powinien pojawić się plik emp.txt i stan przekazywania.
Wybierz ikonę Zamknij(x), aby zamknąć stronę Przekaż obiekt blob .
Pozostaw otwartą stronę kontenera, ponieważ można jej użyć do zweryfikowania danych wyjściowych na końcu tego przewodnika Szybki start.
Wyzwalacz uruchamiania
Przejdź do strony Fabryki danych i wybierz utworzoną fabrykę danych.
Wybierz pozycję Otwórz na kafelku Otwórz Azure Data Factory Studio.
Wybierz kartę
Autor.
Wybierz utworzony potok — ArmtemplateSampleCopyPipeline.
Wybierz pozycję Dodaj wyzwalacz Wyzwalacz>teraz.
W okienku po prawej stronie w obszarze Przebieg potoku wybierz przycisk OK.
Monitorowanie potoku
Wybierz kartę
Monitor .
Zostaną wyświetlone uruchomienia działania skojarzone z uruchomieniem potoku. W tym przewodniku Szybki start potok ma tylko jedno działanie typu Kopiowanie. W związku z tym zostanie wyświetlony przebieg dla tego działania.
Weryfikowanie pliku wyjściowego
Potok automatycznie tworzy folder wyjściowy w kontenerze obiektów blob. Następnie kopiuje plik emp.txt z folderu wejściowego do folderu wyjściowego.
W Azure Portal na stronie Kontenery wybierz pozycję Odśwież, aby wyświetlić folder wyjściowy.
Wybierz dane wyjściowe na liście folderów.
Upewnij się, że plik emp.txt jest kopiowany do folderu wyjściowego.
Czyszczenie zasobów
Zasoby, które zostały utworzone w ramach tego przewodnika Szybki start, możesz wyczyścić na dwa sposoby. Grupę zasobów platformy Azure można usunąć, która obejmuje wszystkie zasoby w grupie zasobów. Jeśli chcesz zachować inne zasoby bez zmian, usuń tylko fabrykę danych utworzoną w tym samouczku.
Usunięcie grupy zasobów powoduje usunięcie wszystkich zasobów łącznie z fabrykami danych w nich zawartymi. Uruchom poniższe polecenie, aby usunąć całą grupę zasobów:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
Jeśli chcesz usunąć tylko fabrykę danych, a nie całą grupę zasobów, uruchom następujące polecenie:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
Następne kroki
W tym przewodniku Szybki start utworzono Azure Data Factory przy użyciu szablonu usługi ARM i zweryfikowano wdrożenie. Aby dowiedzieć się więcej na temat Azure Data Factory i usługi Azure Resource Manager, przejdź do poniższych artykułów.
- dokumentacja Azure Data Factory
- Dowiedz się więcej o usłudze Azure Resource Manager
- Uzyskiwanie innych szablonów usługi Azure Data Factory ARM