Поделиться через


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

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

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

В этом быстром старте объясняется, как с помощью шаблона Azure Resource Manager (ARM) создать фарбрику данных Azure. Конвейер, который вы создадите в этой фабрике данных, копирует данные из одной папки в другую в хранилище 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 Data Factory, учетную запись хранения и BLOB-контейнер.

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

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

    Развертывание ARM-шаблона ADF.

    Если значение не указано, используйте значения по умолчанию для создания ресурсов службы "Фабрика данных 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. Выберите Добавить триггер>Активировать сейчас.

    Триггер

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Remove-AzResourceGroup -ResourceGroupName $resourcegroupname

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

Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName

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