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.

Wdrażanie na platformie Azure

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:

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

Wdrożenie szablonu

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

    Wdrażanie na platformie Azure

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

    Wdrażanie szablonu usługi ARM usługi ADF

    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

  1. Wybierz pozycję 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 magazynu zostało utworzone.

    1. Nazwa konta magazynu jest w formacie — unikatowy identyfikator> magazynu<.

    Konto magazynu

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

    1. Na stronie Kontenery wybierz utworzony kontener obiektów blob.
      1. Nazwa kontenera obiektów blob ma format - uniqueid> obiektu blob<.

    Kontener obiektów blob

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

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

    Przekazywanie pliku do folderu wejściowego

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

Wyzwalacz uruchamiania

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

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

    Monitor autora &

  3. Wybierz kartę Autor.

  4. Wybierz utworzony potok — ArmtemplateSampleCopyPipeline.

    Potok szablonu usługi ARM

  5. Wybierz pozycję Dodaj wyzwalacz Wyzwalacz>teraz.

    Wyzwalacz

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

Monitorowanie potoku

  1. Wybierz kartę Monitor .

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

    Pomyślne uruchomienie

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.

  1. W Azure Portal na stronie Kontenery wybierz pozycję Odśwież, aby wyświetlić folder wyjściowy.

  2. Wybierz dane wyjściowe na liście folderów.

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

    Dane wyjściowe

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.