Szybki start: tworzenie Azure Data Factory przy użyciu szablonu usługi ARM

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory w usłudze Microsoft Fabric jest następną generacją Azure Data Factory z prostszą architekturą, wbudowaną sztuczną inteligencją i nowymi funkcjami. Jeśli dopiero zaczynasz integrować dane, zacznij od Fabric Data Factory. Istniejące obciążenia ADF można zaktualizować do Fabric, aby uzyskać dostęp do nowych możliwości w zakresie nauki o danych, analiz w czasie rzeczywistym oraz raportowania.

W tym przewodniku Szybki Start opisano, jak używać szablonu Azure Resource Manager (ARM) do utworzenia fabryki danych Azure. Potok, który tworzysz w tej fabryce danych, kopiuje dane z jednego folderu do drugiego w magazynie obiektów blob Azure. Aby zapoznać się z samouczkiem dotyczącym przekształcania danych przy użyciu Azure Data Factory, zapoznaj się z Samouczek: Przekształcanie danych przy użyciu platformy Spark.

Szablon Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Uwaga

Ten artykuł nie zawiera szczegółowego wprowadzenia usługi Data Factory. Aby zapoznać się z usługą Azure Data Factory, zobacz Introduction to Azure Data Factory.

Jeśli środowisko spełnia wymagania wstępne i znasz szablony ARM, wybierz przycisk Wdróż do Azure. Szablon zostanie otwarty w portalu Azure.

Button w celu wdrożenia szablonu Resource Manager w Azure.

Wymagania wstępne

subskrypcja Azure

Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz konto free.

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 szybkiego startu pochodzi z Azure Quickstart Templates.

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

W szablonie zdefiniowano zasoby Azure.

Więcej przykładów szablonów Azure Data Factory można znaleźć w galerii szablonów quickstart.

Wdrażanie szablonu

  1. Wybierz poniższy obraz, aby zalogować się do Azure i otworzyć szablon. Szablon tworzy konto Azure Data Factory, konto magazynowe i kontener Blob.

    Button w celu wdrożenia szablonu Resource Manager w Azure.

  2. Wybierz lub wprowadź następujące wartości.

    Wdrażanie szablonu ARM dla ADF

    Jeśli nie zostanie określony, użyj wartości domyślnych, aby utworzyć zasoby Azure Data Factory:

    • Subscription: Wybierz subskrypcję 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.
    • Blob Container: użyj wartości domyślnej.

Przeglądanie wdrożonych zasobów

  1. Wybierz Przejdź do grupy zasobów.

    Grupa zasobów

  2. Sprawdź, czy utworzono Azure Data Factory.

    1. Nazwa Azure Data Factory jest w formacie — datafactory<uniqueid>.

    Przykładowa fabryka danych

  3. Sprawdź, czy konto przechowywania zostało utworzone.

    1. Nazwa konta magazynu jest w formacie - storage<unikatowyidentyfikator>.

    Konto magazynu

  4. Wybierz utworzone konto magazynu, a następnie wybierz pozycję Kontenery.

    1. Na stronie Kontenery wybierz utworzony kontener blobów.
      1. Nazwa kontenera obiektów blob ma format — blob<unikatowyid>.

    Kontener blobów

Przekazywanie pliku

  1. Na stronie Kontenery wybierz pozycję Przekaż.

  2. W okienku po prawej stronie wybierz pole Pliki , a następnie przejdź do i wybierz utworzony wcześniej plik emp.txt .

  3. Rozwiń nagłówek Zaawansowane.

  4. W polu Przekaż do folderu wprowadź dane wejściowe.

  5. Wybierz przycisk Przekaż. Na liście powinien pojawić się plik emp.txt i stan przesyłania.

  6. Wybierz ikonę Zamknij (symbol X), aby zamknąć stronę Przekaż obiekt blob.

    Przekazywanie pliku do folderu wejściowego

Pozostaw otwartą stronę kontenera, ponieważ możesz jej użyć do zweryfikowania danych wyjściowych na końcu tego szybkiego startu.

Wyzwalacz uruchamiania

  1. Przejdź do strony Fabryki danych i wybierz utworzoną fabrykę danych.

  2. Wybierz Otwórz na kafelku Otwórz Azure Data Factory Studio.

    Autor i Nadzorca

  3. Wybierz kartę Autor.

  4. Wybierz utworzoną rurę — ArmtemplateSampleCopyPipeline.

    Potok szablonu usługi ARM

  5. Wybierz Dodaj wyzwalacz>Wyzwól teraz.

    Trigger

  6. W okienku po prawej stronie w obszarze Uruchamianie potoku wybierz przycisk OK.

Monitoruj rurociąg

  1. Wybierz kartę Monitor.

  2. Widzisz działania skojarzone z uruchomieniem potoku. W tym przewodniku szybkiego startu ten potok ma tylko jedną aktywność typu: Kopiuj. W związku z tym zostanie wyświetlony przebieg dla tego działania.

    Pomyślne uruchomienie

Weryfikowanie pliku wyjściowego

Potok danych automatycznie tworzy folder wyjściowy w kontenerze blobów. Następnie kopiuje plik emp.txt z folderu wejściowego do folderu wyjściowego.

  1. W portalu Azure na stronie Containers wybierz pozycję Refresh aby wyświetlić folder wyjściowy.

  2. Wybierz output na liście folderów.

  3. Upewnij się, że plik emp.txt jest kopiowany do folderu wyjściowego.

    Wyjście

Czyszczenie zasobów

Zasoby utworzone w ramach Szybkiego startu możesz wyczyścić na dwa sposoby. Możesz usuń grupę zasobów Azure zawierającą 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

W tym szybkim starcie utworzono Azure Data Factory przy użyciu szablonu ARM i sprawdzono wdrożenie. Aby dowiedzieć się więcej na temat Azure Data Factory i Azure Resource Manager, przejdź do poniższych artykułów.