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

В этом кратком руководстве описано создание фабрики данных Azure с помощью Azure CLI. Конвейер, который вы создадите в этой фабрике данных, копирует данные из одной папки в другую в хранилище BLOB-объектов Azure. Сведения о преобразовании данных с помощью фабрики данных Azure см. в статье Преобразование данных в фабрике данных Azure.

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

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

Необходимые компоненты

  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Примечание.

Чтобы создать экземпляры фабрики данных, нужно назначить учетной записи пользователя, используемой для входа в Azure, роль участника, владельца либо администратора подписки Azure. Дополнительные сведения см. в разделе Роли Azure.

Подготовка контейнера и тестового файла

В этом кратком руководстве используется учетная запись хранения Azure, которая содержит контейнер с файлом.

  1. Чтобы создать группу ресурсов с именем ADFQuickStartRG, используйте команду az group create:

    az group create --name ADFQuickStartRG --location eastus
    
  2. Создайте учетную запись хранения с помощью команды az storage account create:

    az storage account create --resource-group ADFQuickStartRG \
        --name adfquickstartstorage --location eastus
    
  3. Создайте контейнер с именем adftutorial с помощью команды az storage container create:

    az storage container create --resource-group ADFQuickStartRG --name adftutorial \
        --account-name adfquickstartstorage --auth-mode key
    
  4. В локальном каталоге создайте файл с именем emp.txt для отправки. Если вы работаете в Azure Cloud Shell, текущий рабочий каталог можно найти с помощью команды echo $PWD Bash. Для создания файла можно использовать стандартные команды Bash, например cat:

    cat > emp.txt
    This is text.
    

    Чтобы сохранить новый файл, нажмите клавиши CTRL+D.

  5. Чтобы отправить новый файл в контейнер хранилища Azure, используйте команду az storage blob upload:

    az storage blob upload --account-name adfquickstartstorage --name input/emp.txt \
        --container-name adftutorial --file emp.txt --auth-mode key
    

    Эта команда отправляет файл в новую папку с именем input.

Создание фабрики данных

Чтобы создать фабрику данных Azure, выполните команду az datafactory create:

az datafactory create --resource-group ADFQuickStartRG \
    --factory-name ADFTutorialFactory

Важно!

Замените ADFTutorialFactory глобально уникальным именем фабрики данных, например, ADFTutorialFactorySP1127.

Чтобы увидеть созданную фабрику данных, выполните команду az datafactory show:

az datafactory show --resource-group ADFQuickStartRG \
    --factory-name ADFTutorialFactory

Создание связанной службы и наборов данных

Затем необходимо создать связанную службу и два набора данных.

  1. Получите строку подключения для своей учетной записи хранения с помощью команды az storage account show-connection-string:

    az storage account show-connection-string --resource-group ADFQuickStartRG \
        --name adfquickstartstorage --key primary
    
  2. В рабочем каталоге создайте JSON-файл с этим содержимым, который содержит вашу строку подключения из предыдущего шага. Присвойте файлу имя AzureStorageLinkedService.json:

    {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
        }
    }
    
  3. Создайте связанную службу с именем с AzureStorageLinkedService помощью команды az datafactory linked-service create:

    az datafactory linked-service create --resource-group ADFQuickStartRG \
        --factory-name ADFTutorialFactory --linked-service-name AzureStorageLinkedService \
        --properties @AzureStorageLinkedService.json
    
  4. В рабочем каталоге создайте JSON-файл с этим содержимым с именем InputDataset.json:

    {
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "Binary",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "fileName": "emp.txt",
                "folderPath": "input",
                "container": "adftutorial"
            }
        }
    }
    
  5. Создайте входной набор данных с именем InputDataset с помощью команды az datafactory dataset create:

    az datafactory dataset create --resource-group ADFQuickStartRG \
        --dataset-name InputDataset --factory-name ADFTutorialFactory \
        --properties @InputDataset.json
    
  6. В рабочем каталоге создайте JSON-файл с этим содержимым с именем OutputDataset.json:

    {
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "Binary",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "folderPath": "output",
                "container": "adftutorial"
            }
        }
    }
    
  7. Создайте выходной набор данных с именем OutputDataset с помощью команды az datafactory dataset create:

    az datafactory dataset create --resource-group ADFQuickStartRG \
        --dataset-name OutputDataset --factory-name ADFTutorialFactory \
        --properties @OutputDataset.json
    

Создание и запуск конвейера

Наконец, создайте и запустите конвейер.

  1. В рабочем каталоге создайте JSON-файл с этим содержимым с именем Adfv2QuickStartPipeline.json:

    {
        "name": "Adfv2QuickStartPipeline",
        "properties": {
            "activities": [
                {
                    "name": "CopyFromBlobToBlob",
                    "type": "Copy",
                    "dependsOn": [],
                    "policy": {
                        "timeout": "7.00:00:00",
                        "retry": 0,
                        "retryIntervalInSeconds": 30,
                        "secureOutput": false,
                        "secureInput": false
                    },
                    "userProperties": [],
                    "typeProperties": {
                        "source": {
                            "type": "BinarySource",
                            "storeSettings": {
                                "type": "AzureBlobStorageReadSettings",
                                "recursive": true
                            }
                        },
                        "sink": {
                            "type": "BinarySink",
                            "storeSettings": {
                                "type": "AzureBlobStorageWriteSettings"
                            }
                        },
                        "enableStaging": false
                    },
                    "inputs": [
                        {
                            "referenceName": "InputDataset",
                            "type": "DatasetReference"
                        }
                    ],
                    "outputs": [
                        {
                            "referenceName": "OutputDataset",
                            "type": "DatasetReference"
                        }
                    ]
                }
            ],
            "annotations": []
        }
    }
    
  2. Создайте конвейер с именем с Adfv2QuickStartPipeline помощью команды az datafactory pipeline create:

    az datafactory pipeline create --resource-group ADFQuickStartRG \
        --factory-name ADFTutorialFactory --name Adfv2QuickStartPipeline \
        --pipeline @Adfv2QuickStartPipeline.json
    
  3. Запустите конвейер с помощью команды az datafactory pipeline create-run:

    az datafactory pipeline create-run --resource-group ADFQuickStartRG \
        --name Adfv2QuickStartPipeline --factory-name ADFTutorialFactory
    

    Эта команда возвращает ИД запуска. Скопируйте его для использования в следующей команде.

  4. Убедитесь, что запуск конвейера успешно выполнен, с помощью команды az datafactory pipeline-run show:

    az datafactory pipeline-run show --resource-group ADFQuickStartRG \
        --factory-name ADFTutorialFactory --run-id 00000000-0000-0000-0000-000000000000
    

Чтобы убедиться, что конвейер был запущен правильно, можно использовать портал Azure. Дополнительные сведения см. в разделе Просмотр развернутых ресурсов.

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

Все ресурсы в этом кратком руководстве входят в состав одной группы ресурсов. Чтобы их удалить, используйте команду az group delete:

az group delete --name ADFQuickStartRG

Если вы используете эту группу ресурсов для чего-то еще, удалите отдельные ресурсы. Например, чтобы удалить связанную службу, используйте команду az datafactory linked-service delete.

В этом кратком руководстве вы создали следующие JSON-файлы:

  • AzureStorageLinkedService.json
  • InputDataset.json
  • OutputDataset.json
  • Adfv2QuickStartPipeline.json

Удалите их с помощью стандартных команд Bash.