Краткое руководство. Создание фабрики данных в службе "Фабрика данных Azure" с помощью шаблона ARM
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Опробуйте Фабрику данных в Microsoft Fabric, решение для аналитики "все в одном" для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных, аналитики в режиме реального времени, бизнес-аналитики и создания отчетов. Узнайте, как начать новую пробную версию бесплатно!
В этом руководстве объясняется, как создать фабрику данных в службе "Фабрика данных Azure" с использованием шаблона Azure Resource Manager (ARM). Конвейер, который вы создадите в этой фабрике данных, копирует данные из одной папки в другую в хранилище BLOB-объектов Azure. Инструкции по преобразованию данных с помощью Фабрики данных Azure см. в статье Преобразование данных с помощью действия Spark в фабрике данных Azure.
Шаблон Resource Manager — это json-файл нотации объектов JavaScript, который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. В декларативном синтаксисе вы можете описать предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Примечание
Эта статья не содержит подробный обзор службы фабрики данных. Общие сведения о службе фабрики данных Azure см. в статье Введение в фабрику данных Azure.
Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. Шаблон откроется на портале 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:
- Microsoft.Storage/storageAccounts: определяет учетную запись хранения;
- Microsoft.DataFactory/factories: создание Фабрики данных Azure;
- Microsoft.DataFactory/factories/linkedServices: создание связанной службы Фабрики данных Azure;
- Microsoft.DataFactory/factories/datasets: создание набора данных Фабрики данных Azure;
- Microsoft.DataFactory/factories/pipelines: создание конвейера Фабрики данных Azure.
Другие примеры шаблонов для службы "Фабрика данных Azure" можно найти в коллекции шаблонов быстрого запуска.
Развертывание шаблона
Выберите следующее изображение, чтобы войти на портал Azure и открыть шаблон. Этот шаблон создает учетную запись службы "Фабрика данных Azure", учетную запись хранения и контейнер BLOB-объектов.
Введите или выберите следующие значения.
Если значение не указано, используйте значения по умолчанию для создания ресурсов службы "Фабрика данных Azure".
- Подписка: Выберите подписку Azure.
- Группа ресурсов. Щелкните Создать, введите уникальное имя группы ресурсов и нажмите кнопку ОК.
- Регион. Выберите расположение. Например, Восточная часть США.
- Имя фабрики данных: Сохраните значение по умолчанию.
- Расположение. Сохраните значение по умолчанию.
- Имя учетной записи хранения. Сохраните значение по умолчанию.
- Контейнер BLOB-объектов. Сохраните значение по умолчанию.
Просмотр развернутых ресурсов
Выберите Перейти к группе ресурсов.
Убедитесь, что Фабрика данных Azure успешно создана.
- Имя фабрики данных в службе "Фабрика данных Azure" имеет формат datafactory<uniqueid>.
Убедитесь, что учетная запись хранения успешно создана.
- Имя учетной записи хранения имеет формат storage<uniqueid>.
Выберите созданную учетную запись хранения и щелкните Контейнеры.
- На странице Контейнеры выберите созданный контейнер больших двоичных объектов.
- Имя контейнера BLOB-объектов имеет формат blob<uniqueid>.
- На странице Контейнеры выберите созданный контейнер больших двоичных объектов.
Отправка файла
На странице Контейнеры выберите Отправить.
На панели справа щелкните поле Файлы, а затем найдите и выберите ранее созданный файл emp.txt.
Разверните заголовок Дополнительно.
В поле Отправить в папку введите input.
Нажмите кнопку Отправить. В списке должен отобразиться файл emp.txt с состоянием отправки.
Щелкните Закрыть значок (X), чтобы закрыть страницу Отправка BLOB-объектов.
Не закрывайте страницу контейнера, так как здесь вы сможете проверить выходные данные в конце этого краткого руководства.
Триггер запуска
На странице Фабрики данных щелкните созданную фабрику данных.
Выберите Открыть на плитке Open Azure Data Factory Studio (Открыть студию Фабрики данных Azure).
Перейдите на вкладку Создание
.
Выберите созданный конвейер (ArmtemplateSampleCopyPipeline).
Выберите Добавить триггер>Trigger Now (Активировать сейчас).
На панели справа в разделе Запуск конвейера щелкните ОК.
Мониторинг конвейера
Выберите вкладку Мониторинг
.
Вы увидите, что выполняется действие, связанное с выполнением конвейера. В этом кратком руководстве конвейер содержит только один тип действия: копирование. Поэтому вы видите выполнение именно этого действия.
Проверка файла выходных данных
Этот конвейер автоматически создает папку выходных данных output в контейнере BLOB-объектов. Затем он копирует файл emp.txt из входной папки в выходную.
На портале Azure откройте страницу Контейнеры и нажмите кнопку Обновить, чтобы появилась папка output.
В списке папок выберите output.
Убедитесь, что файл emp.txt скопирован в папку output.
Очистка ресурсов
Вы можете удалить ресурсы, созданные в ходе работы с этим руководством, двумя способами. Вы можете удалить группу ресурсов Azure, которая содержит все связанные ресурсы. Если же вы хотите сохранить другие ресурсы, удалите только фабрику данных, созданную в этом руководстве.
При удалении группы ресурсов будут удалены все входящие в нее ресурсы, включая фабрики данных. Выполните следующую команду, чтобы удалить всю группу ресурсов:
Remove-AzResourceGroup -ResourceGroupName $resourcegroupname
Если вам нужно удалить только фабрику данных, а не всю группу ресурсов, выполните следующую команду:
Remove-AzDataFactoryV2 -Name $dataFactoryName -ResourceGroupName $resourceGroupName
Дальнейшие действия
Из этого краткого руководства вы узнали, как создать фабрику данных в службе "Фабрика данных Azure" с помощью шаблона ARM и проверить это развертывание. Дополнительные сведения о службе "Фабрика данных Azure" и Azure Resource Manager см. в статьях ниже.
- Документация по фабрике данных Azure
- Сведения об Azure Resource Manager
- Изучите другие шаблоны ARM для службы "Фабрика данных Azure"