Краткое руководство. Создание Фабрика данных 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.

Кнопка для развертывания шаблона Resource Manager в 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.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')]"
    }
  }
}

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

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

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

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

    Кнопка для развертывания шаблона Resource Manager в Azure.

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

    Развертывание шаблона ARM для службы

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

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

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

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

    Группа ресурсов

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

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

    Пример фабрики данных

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

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

    Учетная запись хранения

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

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

    Контейнер BLOB-объектов

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

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

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

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

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

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

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

    Отправка файла в папку входных данных

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

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

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

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

    Создание и мониторинг

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

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

    Конвейер шаблона ARM

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

    Триггер

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

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

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

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

    Успешное выполнение

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

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

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

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

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

    Выходные данные

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

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

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

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

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

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

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