Краткое руководство. Создание Фабрика данных Azure с помощью шаблона ARM

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этом руководстве объясняется, как создать фабрику данных в службе "Фабрика данных Azure" с использованием шаблона Azure Resource Manager (ARM). Конвейер, который вы создадите в этой фабрике данных, копирует данные из одной папки в другую в хранилище BLOB-объектов Azure. Инструкции по преобразованию данных с помощью фабрики данных Azure см. в руководстве по преобразованию данных с помощью Spark.

Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.

Примечание.

Эта статья не содержит подробный обзор службы фабрики данных. Общие сведения о службе фабрики данных Azure см. в статье Введение в фабрику данных Azure.

Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. Шаблон откроется на портале Azure.

Button to deploy the Resource Manager template to Azure.

Предварительные требования

Подписка Azure.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Создание файла

Откройте текстовый редактор, например Блокнот, и создайте файл emp.txt с таким содержимым:

John, Doe
Jane, Doe

Сохраните файл в папкеC:\ADFv2QuickStartPSH. (Если папка не существует, создайте ее.)

Проверка шаблона

Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска 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'))]"
      ]
    }
  ]
}

В шаблоне определено пять ресурсов Azure:

Другие примеры шаблонов для службы "Фабрика данных Azure" можно найти в коллекции шаблонов быстрого запуска.

Развертывание шаблона

  1. Выберите следующее изображение, чтобы войти на портал Azure и открыть шаблон. Этот шаблон создает учетную запись службы "Фабрика данных Azure", учетную запись хранения и контейнер BLOB-объектов.

    Button to deploy the Resource Manager template to Azure.

  2. Введите или выберите следующие значения.

    Deploy ADF ARM template

    Если значение не указано, используйте значения по умолчанию для создания ресурсов службы "Фабрика данных Azure".

    • Подписка— выберите подписку Azure.
    • Группа ресурсов: выберите "Создать", введите уникальное имя группы ресурсов и нажмите кнопку "ОК".
    • Регион: выберите расположение. Например, Восточная часть США.
    • Имя фабрики данных: Сохраните значение по умолчанию.
    • Расположение: используйте значение по умолчанию.
    • служба хранилища имя учетной записи: используйте значение по умолчанию.
    • Контейнер BLOB-объектов: используйте значение по умолчанию.

Просмотр развернутых ресурсов

  1. Выберите Перейти к группе ресурсов.

    Resource Group

  2. Убедитесь, что Фабрика данных Azure успешно создана.

    1. Имя фабрики данных в службе "Фабрика данных Azure" имеет формат datafactory<uniqueid>.

    Sample Data Factory

  3. Убедитесь, что учетная запись хранения успешно создана.

    1. Имя учетной записи хранения имеет формат storage<uniqueid>.

    Storage Account

  4. Выберите созданную учетную запись хранения и щелкните Контейнеры.

    1. На странице Контейнеры выберите созданный контейнер больших двоичных объектов.
      1. Имя контейнера BLOB-объектов имеет формат blob<uniqueid>.

    Blob container

Отправка файла

  1. На странице Контейнеры выберите Отправить.

  2. На панели справа щелкните поле Файлы, а затем найдите и выберите ранее созданный файл emp.txt.

  3. Разверните заголовок Дополнительно.

  4. В поле Отправить в папку введите input.

  5. Нажмите кнопку Отправить. В списке должен отобразиться файл emp.txt с состоянием отправки.

  6. Щелкните Закрыть значок (X), чтобы закрыть страницу Отправка BLOB-объектов.

    Upload file to input folder

Не закрывайте страницу контейнера, так как здесь вы сможете проверить выходные данные в конце этого краткого руководства.

Триггер запуска

  1. На странице Фабрики данных щелкните созданную фабрику данных.

  2. Выберите Открыть на плитке Open Azure Data Factory Studio (Открыть студию Фабрики данных Azure).

    Author & Monitor

  3. Перейдите на вкладку Создание.

  4. Выберите созданный конвейер (ArmtemplateSampleCopyPipeline).

    ARM template pipeline

  5. Выберите Добавить триггер>Trigger Now (Активировать сейчас).

    Trigger

  6. На панели справа в разделе Запуск конвейера щелкните ОК.

Мониторинг конвейера

  1. Выберите вкладку Мониторинг.

  2. Вы увидите, что выполняется действие, связанное с выполнением конвейера. В этом кратком руководстве конвейер содержит только один тип действия: копирование. Поэтому вы видите выполнение именно этого действия.

    Successful run

Проверка файла выходных данных

Этот конвейер автоматически создает папку выходных данных output в контейнере BLOB-объектов. Затем он копирует файл emp.txt из входной папки в выходную.

  1. На портале Azure откройте страницу Контейнеры и нажмите кнопку Обновить, чтобы появилась папка output.

  2. В списке папок выберите output.

  3. Убедитесь, что файл emp.txt скопирован в папку output.

    Output

Очистка ресурсов

Вы можете удалить ресурсы, созданные в ходе работы с этим руководством, двумя способами. Вы можете удалить группу ресурсов Azure, которая содержит все связанные ресурсы. Если же вы хотите сохранить другие ресурсы, удалите только фабрику данных, созданную в этом руководстве.

При удалении группы ресурсов будут удалены все входящие в нее ресурсы, включая фабрики данных. Выполните следующую команду, чтобы удалить всю группу ресурсов:

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

Если вам нужно удалить только фабрику данных, а не всю группу ресурсов, выполните следующую команду:

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

Из этого краткого руководства вы узнали, как создать фабрику данных в службе "Фабрика данных Azure" с помощью шаблона ARM и проверить это развертывание. Дополнительные сведения о службе "Фабрика данных Azure" и Azure Resource Manager см. в статьях ниже.