Учебное пособие: Копирование данных из базы данных SQL Server в хранилище Azure Blob

ПРИМЕНИМО К: Azure Data Factory Azure Synapse Analytics

Совет

Data Factory в Microsoft Fabric — это следующее поколение Azure Data Factory с более простой архитектурой, встроенным ИИ и новыми функциями. Если вы не знакомы с интеграцией данных, начните с Fabric Data Factory. Существующие рабочие нагрузки ADF могут обновляться до Fabric для доступа к новым возможностям в области обработки и анализа данных, аналитики в режиме реального времени и отчетов.

В этом руководстве вы используете Azure PowerShell для создания конвейера фабрики данных, который копирует данные из базы данных SQL Server в Azure хранилище BLOB-объектов. Вы создадите и будете использовать локальную среду выполнения интеграции, которая перемещает данные между локальным и облачным хранилищами данных.

Примечание.

Эта статья не содержит подробный обзор службы фабрики данных. Дополнительные сведения см. в разделе Introduction to Azure Data Factory.

В этом учебном пособии вы выполните следующие шаги:

  • Создали фабрику данных.
  • Создание локальной среды выполнения интеграции.
  • Создайте связанные службы для SQL Server и Azure Storage.
  • Создайте наборы данных SQL Server и Azure Blob.
  • Создадите конвейер с действием копирования для перемещения данных.
  • Запуск конвейера.
  • Контролируйте выполнение конвейера.

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

подписка Azure

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

роли Azure

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

Чтобы просмотреть разрешения, которые есть в подписке, перейдите на портал Azure, выберите имя пользователя в правом верхнем углу и выберите Permissions. Если у вас есть доступ к нескольким подпискам, выберите соответствующую подписку. Примеры инструкций по добавлению пользователя в роль см. в статье Назначение ролей Azure с использованием портала Azure.

SQL Server 2014, 2016 и 2017

В этом руководстве используется база данных SQL Server в качестве хранилища данных source. Конвейер в фабрике данных, создаваемой в этом руководстве, копирует данные из этой базы данных SQL Server (источник) в Blob-хранилище Azure (место назначения). Затем вы создадите таблицу с именем emp в базе данных SQL Server и вставьте в таблицу несколько примеров записей.

  1. Запустите SQL Server Management Studio. Если он еще не установлен на компьютере, перейдите к Download SQL Server Management Studio.

  2. Подключитесь к экземпляру SQL Server с помощью учетных данных.

  3. Создайте пример базы данных. В представлении в виде дерева щелкните правой кнопкой мыши элемент Базы данных и выберите пункт Новая база данных.

  4. В окне Новая база данных введите имя базы данных и нажмите кнопку ОК.

  5. Чтобы создать таблицу emp и вставить в нее примеры данных, запустите приведенный ниже сценарий запроса к базе данных. В представлении в виде дерева щелкните правой кнопкой мыши созданную базу данных и выберите пункт Новый запрос.

    CREATE TABLE dbo.emp
    (
        ID int IDENTITY(1,1) NOT NULL,
        FirstName varchar(50),
        LastName varchar(50)
    )
    GO
    
    INSERT INTO emp (FirstName, LastName) VALUES ('John', 'Doe')
    INSERT INTO emp (FirstName, LastName) VALUES ('Jane', 'Doe')
    GO
    

учетная запись Azure Storage

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

Получите имя и ключ учетной записи хранения

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

  1. Войдите на портал Azure с помощью имени пользователя и пароля Azure.

  2. В левой области выберите Больше служб, отфильтруйте содержимое по ключевому слову хранение, а затем выберите Учетные записи хранения.

    Поиск учетной записи хранения

  3. В списке учетных записей хранения найдите с помощью фильтра свою учетную запись хранения (при необходимости), а затем выберите эту учетную запись.

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

  5. Скопируйте значения полей Имя учетной записи хранения и key1. Затем вставьте их в Блокнот или другой редактор для дальнейшего использования в руководстве.

Создание контейнера adftutorial

В этом разделе описано, как создать контейнер BLOB-объектов с именем adftutorial в хранилище BLOB-объектов Azure.

  1. В окне Учетная запись хранения переключитесь на Обзор и выберите Объекты BLOB.

    Выберите параметр

  2. В окне Blob сервис выберите Контейнер.

  3. В окне Новый контейнер в поле Имя введите adftutorial, а затем нажмите кнопку ОК.

    Введите имя контейнера

  4. В списке контейнеров выберите adftutorial.

  5. Не закрывайте окно контейнераadftutorial. Вы используете её, чтобы проверить выходные данные в конце этого руководства. Фабрика данных автоматически создает выходную папку в этом контейнере, поэтому ее не нужно создавать.

Windows PowerShell

Установка Azure PowerShell

Примечание.

Мы рекомендуем использовать модуль Az PowerShell Azure для взаимодействия с Azure. Сведения о начале работы см. в разделе Install Azure PowerShell. Сведения о миграции в модуль Az PowerShell см. в статье Migrate Azure PowerShell из AzureRM в Az.

Установите последнюю версию Azure PowerShell, если она еще не установлена на компьютере. Подробные инструкции см. в разделе How to install and configure Azure PowerShell.

Вход в PowerShell

  1. Запустите PowerShell на вашем компьютере и не закрывайте его до завершения этого краткого руководства. Если закрыть и снова открыть это окно, то придется вновь выполнять эти команды.

  2. Выполните следующую команду, а затем введите имя пользователя и пароль Azure, которые вы используете для входа на портал Azure:

    Connect-AzAccount
    
  3. Если у вас несколько Azure подписок, выполните следующую команду, чтобы выбрать подписку, с которой вы хотите работать. Замените SubscriptionId идентификатором подписки Azure:

    Select-AzSubscription -SubscriptionId "<SubscriptionId>"   	
    

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

  1. Определите переменную для имени группы ресурсов, которую в дальнейшем можно будет использовать в командах PowerShell. Скопируйте следующую команду в PowerShell, укажите имя группы ресурсов Azure (заключенную в двойные кавычки, например "adfrg"), а затем выполните команду.

    $resourceGroupName = "ADFTutorialResourceGroup"
    
  2. Чтобы создать группу ресурсов Azure, выполните следующую команду:

    New-AzResourceGroup $resourceGroupName -location 'East US'
    

    Если группа ресурсов уже существует, вы можете не перезаписывать ее. Назначьте переменной $resourceGroupName другое значение и еще раз выполните команду.

  3. Определите переменную для имени фабрики данных, которую в дальнейшем можно будет использовать в командах PowerShell. Имя должно начинаться с буквы или цифры и может содержать только буквы, цифры и дефисы (-).

    Внимание

    Измените имя фабрики данных, чтобы оно было глобально уникальным. Примером является ADFTutorialFactorySP1127.

    $dataFactoryName = "ADFTutorialFactory"
    
  4. Определите переменную для расположения фабрики данных:

    $location = "East US"
    
  5. Чтобы создать фабрику данных, выполните командлет: Set-AzDataFactoryV2

    Set-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Location $location -Name $dataFactoryName
    

Примечание.

  • Имя фабрики данных должно быть глобально уникальным. Если появляется следующая ошибка, измените имя и повторите попытку.
    The specified data factory name 'ADFv2TutorialDataFactory' is already in use. Data factory names must be globally unique.
    
  • Чтобы создать экземпляры фабрики данных, учетная запись пользователя, используемая для входа в Azure, должна иметь назначенную роль contributor или owner или быть administrator подписки Azure.
  • В списке регионов Azure, в которых в настоящее время доступен Data Factory, выберите интересующие вас регионы на следующей странице, а затем разверните раздел Analytics, чтобы найти Data Factory: Продукты, доступные по регионам. Хранилища данных (Azure Storage, Azure SQL Database и т. д.) и вычисления (Azure HDInsight и т. д.), используемые фабрикой данных, могут находиться в других регионах.

Создание локальной среды выполнения интеграции

В этом разделе описано, как создать локальную среду выполнения интеграции и связать ее с локальным компьютером с базой данных SQL Server. Локальная среда выполнения интеграции — это компонент, который копирует данные из базы данных SQL Server в хранилище блоб-объектов Azure.

  1. Создайте переменную для имени среды выполнения интеграции. Используйте уникальное имя и запишите его. Вы будете использовать его позже в этом руководстве.

    $integrationRuntimeName = "ADFTutorialIR"
    
  2. Создание локальной среды выполнения интеграции.

    Set-AzDataFactoryV2IntegrationRuntime -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Name $integrationRuntimeName -Type SelfHosted -Description "selfhosted IR description"
    

    Пример выходных данных:

    Name              : ADFTutorialIR
    Type              : SelfHosted
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Description       : selfhosted IR description
    Id                : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  3. Чтобы получить состояние созданной среды выполнения интеграции, выполните следующую команду:

    Get-AzDataFactoryV2IntegrationRuntime -name $integrationRuntimeName -ResourceGroupName $resourceGroupName -DataFactoryName $dataFactoryName -Status
    

    Пример выходных данных:

    State                     : NeedRegistration
    Version                   :
    CreateTime                : 9/10/2019 3:24:09 AM
    AutoUpdate                : On
    ScheduledUpdateDate       :
    UpdateDelayOffset         :
    LocalTimeZoneOffset       :
    InternalChannelEncryption :
    Capabilities              : {}
    ServiceUrls               : {eu.frontend.clouddatahub.net}
    Nodes                     : {}
    Links                     : {}
    Name                      : <Integration Runtime name>
    Type                      : SelfHosted
    ResourceGroupName         : <resourceGroup name>
    DataFactoryName           : <dataFactory name>
    Description               : selfhosted IR description
    Id                        : /subscriptions/<subscription ID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>/integrationruntimes/<integrationRuntimeName>
    
  4. Чтобы получить ключи проверки подлинности для регистрации локальной среды выполнения интеграции в службе фабрики данных в облаке, выполните следующую команду. Скопируйте один из ключей (без кавычек) для регистрации локальной среды выполнения интеграции, которую вы установите на компьютер на следующем шаге.

    Get-AzDataFactoryV2IntegrationRuntimeKey -Name $integrationRuntimeName -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName | ConvertTo-Json
    

    Пример выходных данных:

    {
        "AuthKey1":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=",
        "AuthKey2":  "IR@0000000000-0000-0000-0000-000000000000@xy0@xy@yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy="
    }
    

Установка среды выполнения интеграции

  1. Скачайте Azure Data Factory Integration Runtime на локальном компьютере Windows, а затем запустите установку.

  2. В мастере Welcome Microsoft Integration Runtime Setup выберите Next.

  3. В окне Лицензионное соглашение примите условия использования и лицензионное соглашение и нажмите кнопку Далее.

  4. В окне Конечная папка нажмите кнопку Далее.

  5. В окне Ready для установки Microsoft Integration Runtime выберите Install.

  6. В мастере Завершение настройки Microsoft Integration Runtime выберите Завершить.

  7. В окне Register Integration Runtime (локальное) вставьте ключ, сохраненный в предыдущем разделе, а затем выберите Register.

    Регистрация среды выполнения интеграции

  8. В окне New Integration Runtime (локальный узел) выберите Завершить.

    Новое окно узла Integration Runtime

  9. Когда локальная среда выполнения интеграции будет успешно зарегистрирована, вы увидите следующее сообщение:

    Сообщение об успешной регистрации

  10. В окне Register Integration Runtime (самообслуживаемое) выберите Запустить диспетчер конфигурации.

  11. Когда узел будет подключен к облачной службе, вы увидите следующее сообщение:

    Узел подключен

  12. Проверьте подключение к базе данных SQL Server, выполнив следующие действия.

    a. В окне Configuration Manager перейдите на вкладку Diagnostics.

    b. В поле Тип источника данных выберите SqlServer.

    c. Введите имя сервера.

    d. Введите имя базы данных.

    д) Выберите режим проверки подлинности.

    f. Введите имя пользователя.

    ж. Введите пароль, связанный с именем пользователя.

    h. Чтобы убедиться, что среда выполнения интеграции может подключаться к SQL Server, выберите Test.
    Успешное подключение

    Если подключение выполнено успешно, появится зеленый флажок. В противном случае вы получите сообщение об ошибке. Исправьте все проблемы и убедитесь, что среда выполнения интеграции может подключаться к экземпляру SQL Server.

    Запишите эти значения. Они будут использоваться далее в этом руководстве.

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

Чтобы связать хранилища данных и службы вычислений с фабрикой данных, создайте в ней связанные службы. В этом руководстве описано, как связать учетную запись хранения Azure и экземпляр SQL Server с хранилищем данных. Связанные службы содержат данные о подключении, которые используются Службой Data Factory для установления связи с ними во время выполнения.

Создать связанную службу Azure Storage (пункт назначения или приемник)

На этом шаге вы связываете учетную запись хранения Azure с фабрикой данных.

  1. Создайте JSON-файл с именем AzureStorageLinkedService.json в папке C:\ADFv2Tutorial со следующим кодом. Создайте папку ADFv2Tutorial, если она не создана.

    Внимание

    Перед сохранением файла замените <accountName> и <accountKey> именем и ключом учетной записи хранения Azure. Вы отмечали их в разделе Предварительные требования.

    {
        "name": "AzureStorageLinkedService",
        "properties": {
            "annotations": [],
            "type": "AzureBlobStorage",
            "typeProperties": {
                "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net"
            }
        }
    }
    
  2. В PowerShell перейдите в папку C:\ADFv2Tutorial.

    Set-Location 'C:\ADFv2Tutorial'
    
  3. Чтобы создать связанную службу AzureStorageLinkedService, выполните командлет: Set-AzDataFactoryV2LinkedService

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "AzureStorageLinkedService" -File ".\AzureStorageLinkedService.json"
    

    Пример выходных данных:

    LinkedServiceName : AzureStorageLinkedService
    ResourceGroupName : <resourceGroup name>
    DataFactoryName   : <dataFactory name>
    Properties        : Microsoft.Azure.Management.DataFactory.Models.AzureBlobStorageLinkedService
    

    Если появляется ошибка "Файл не найден", выполните команду dir, чтобы убедиться, что он существует. Если имя файла имеет расширение .txt (например, AzureStorageLinkedService.json.txt), удалите расширение и выполните команду PowerShell еще раз.

Создание и шифрование связанной службы SQL Server (источник)

На этом шаге вы связываете экземпляр SQL Server с фабрикой данных.

  1. Создайте JSON-файл с именем SqlServerLinkedService.json в папке C:\ADFv2Tutorial со следующим кодом:

    Внимание

    Выберите раздел, основанный на проверке подлинности, используемой для подключения к SQL Server.

    Использование проверки подлинности SQL (sa):

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=False;data source=<serverName>;initial catalog=<databaseName>;user id=<userName>;password=<password>"
            },
            "connectVia":{  
                "referenceName":"<integration runtime name> ",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    Использование проверки подлинности Windows:

    {  
        "name":"SqlServerLinkedService",
        "type":"Microsoft.DataFactory/factories/linkedservices",
        "properties":{  
            "annotations":[  
    
            ],
            "type":"SqlServer",
            "typeProperties":{  
                "connectionString":"integrated security=True;data source=<serverName>;initial catalog=<databaseName>",
                "userName":"<username> or <domain>\\<username>",
                "password":{  
                    "type":"SecureString",
                    "value":"<password>"
                }
            },
            "connectVia":{  
                "referenceName":"<integration runtime name>",
                "type":"IntegrationRuntimeReference"
            }
        }
    }
    

    Внимание

    • Выберите раздел в зависимости от метода аутентификации, который используется для подключения к экземпляру сервера SQL.
    • Замените <integration runtime name> именем своей среды выполнения интеграции.
    • Перед сохранением файла замените <servername>, <databasename><username> и <password> со значениями экземпляра SQL Server.
    • Если в имени учетной записи пользователя или имени сервера необходимо использовать символ обратной косой черты (\), добавьте перед ним символ экранирования (\). Например, mydomain\\myuser.
  2. Чтобы зашифровать конфиденциальные данные (имя пользователя, пароль и т. д.), выполните командлет New-AzDataFactoryV2LinkedServiceEncryptedCredential.
    Шифрование гарантирует, что учетные данные будут зашифрованы с помощью программного интерфейса защиты данных (API защиты данных). Зашифрованные данные хранятся на узле локальной среды выполнения интеграции (на локальном компьютере). Полезные выходные данные можно перенаправить в другой JSON-файл (в этом случае encryptedLinkedService.json), содержащий зашифрованные учетные данные.

    New-AzDataFactoryV2LinkedServiceEncryptedCredential -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -IntegrationRuntimeName $integrationRuntimeName -File ".\SQLServerLinkedService.json" > encryptedSQLServerLinkedService.json
    
  3. Выполните следующую команду, которая создает EncryptedSqlServerLinkedService:

    Set-AzDataFactoryV2LinkedService -DataFactoryName $dataFactoryName -ResourceGroupName $ResourceGroupName -Name "EncryptedSqlServerLinkedService" -File ".\encryptedSqlServerLinkedService.json"
    

Создайте наборы данных.

На этом шаге вы создадите входные и выходные наборы данных. Они представляют входные и выходные данные для операции копирования, которая переносит данные из базы данных SQL Server в хранилище BLOB-объектов Azure.

Создание набора данных для исходной базы данных SQL Server

На этом шаге вы определите набор данных, представляющий данные в экземпляре базы данных SQL Server. Это набор данных типа SqlServerTable. Он ссылается на связанную службу SQL Server, созданную на предыдущем шаге. Связанная служба содержит сведения о подключении, которые служба Data Factory использует для подключения к экземпляру SQL Server во время выполнения. Этот набор данных указывает таблицу SQL в базе данных, содержащую эти данные. В нашем руководстве это таблица emp, содержащая исходные данные.

  1. Создайте JSON-файл с именем SqlServerDataset.json в папке C:\ADFv2Tutorial со следующим кодом:

    {  
        "name":"SqlServerDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"EncryptedSqlServerLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"SqlServerTable",
            "schema":[  
    
            ],
            "typeProperties":{  
                "schema":"dbo",
                "table":"emp"
            }
        }
    }
    
  2. Чтобы создать набор данных SqlServerDataset, выполните командлет Set-AzDataFactoryV2Dataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SqlServerDataset" -File ".\SqlServerDataset.json"
    

    Пример выходных данных:

    DatasetName       : SqlServerDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.SqlServerTableDataset
    

Создание набора данных для хранилища BLOB-объектов Azure (приемник)

На этом шаге вы определите набор данных, представляющий данные, которые будут скопированы в хранилище BLOB-объектов Azure. Это набор данных типа AzureBlob. Это относится к связанному сервису Azure Storage, который вы создали ранее в этом руководстве.

Связанная служба содержит информацию о подключении, которую фабрика данных использует в процессе выполнения для подключения к учетной записи хранения Azure. Этот набор данных указывает папку в хранилище Azure, в которое копируются данные из базы данных SQL Server. В этом руководстве папка adftutorial/fromonprem, где adftutorial — это контейнер BLOB, а fromonprem — папка.

  1. Создайте JSON-файл с именем AzureBlobDataset.json в папке C:\ADFv2Tutorial со следующим кодом:

    {  
        "name":"AzureBlobDataset",
        "properties":{  
            "linkedServiceName":{  
                "referenceName":"AzureStorageLinkedService",
                "type":"LinkedServiceReference"
            },
            "annotations":[  
    
            ],
            "type":"DelimitedText",
            "typeProperties":{  
                "location":{  
                    "type":"AzureBlobStorageLocation",
                    "folderPath":"fromonprem",
                    "container":"adftutorial"
                },
                "columnDelimiter":",",
                "escapeChar":"\\",
                "quoteChar":"\""
            },
            "schema":[  
    
            ]
        },
        "type":"Microsoft.DataFactory/factories/datasets"
    }
    
  2. Чтобы создать набор данных AzureBlobDataset, выполните командлет Set-AzDataFactoryV2Dataset.

    Set-AzDataFactoryV2Dataset -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "AzureBlobDataset" -File ".\AzureBlobDataset.json"
    

    Пример выходных данных:

    DatasetName       : AzureBlobDataset
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Structure         :
    Properties        : Microsoft.Azure.Management.DataFactory.Models.DelimitedTextDataset
    

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

В рамках этого руководства вы создадите конвейер с операцией копирования. Действие копирования использует SqlServerDataset в качестве входного набора данных, а AzureBlobDataset — в качестве выходного. Для типа источника задано значение SqlSource, а для типа приемника — значение BlobSink.

  1. Создайте JSON-файл с именем SqlServerToBlobPipeline.json в папке C:\ADFv2Tutorial со следующим кодом:

    {  
        "name":"SqlServerToBlobPipeline",
        "properties":{  
            "activities":[  
                {  
                    "name":"CopySqlServerToAzureBlobActivity",
                    "type":"Copy",
                    "dependsOn":[  
    
                    ],
                    "policy":{  
                        "timeout":"7.00:00:00",
                        "retry":0,
                        "retryIntervalInSeconds":30,
                        "secureOutput":false,
                        "secureInput":false
                    },
                    "userProperties":[  
    
                    ],
                    "typeProperties":{  
                        "source":{  
                            "type":"SqlServerSource"
                        },
                        "sink":{  
                            "type":"DelimitedTextSink",
                            "storeSettings":{  
                                "type":"AzureBlobStorageWriteSettings"
                            },
                            "formatSettings":{  
                                "type":"DelimitedTextWriteSettings",
                                "quoteAllText":true,
                                "fileExtension":".txt"
                            }
                        },
                        "enableStaging":false
                    },
                    "inputs":[  
                        {  
                            "referenceName":"SqlServerDataset",
                            "type":"DatasetReference"
                        }
                    ],
                    "outputs":[  
                        {  
                            "referenceName":"AzureBlobDataset",
                            "type":"DatasetReference"
                        }
                    ]
                }
            ],
            "annotations":[  
    
            ]
        }
    }
    
  2. Чтобы создать конвейер SQLServerToBlobPipeline, выполните командлет Set-AzDataFactoryV2Pipeline.

    Set-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -Name "SQLServerToBlobPipeline" -File ".\SQLServerToBlobPipeline.json"
    

    Пример выходных данных:

    PipelineName      : SQLServerToBlobPipeline
    ResourceGroupName : <resourceGroupName>
    DataFactoryName   : <dataFactoryName>
    Activities        : {CopySqlServerToAzureBlobActivity}
    Parameters        :  
    

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

Запустите выполнение конвейера SQLServerToBlobPipeline и запишите идентификатор выполнения конвейера для последующего мониторинга.

$runId = Invoke-AzDataFactoryV2Pipeline -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineName 'SQLServerToBlobPipeline'

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

  1. Чтобы постоянно проверять состояние выполнения конвейера SQLServerToBlobPipeline, выполните указанный ниже скрипт и выведите конечный результат:

    while ($True) {
        $result = Get-AzDataFactoryV2ActivityRun -DataFactoryName $dataFactoryName -ResourceGroupName $resourceGroupName -PipelineRunId $runId -RunStartedAfter (Get-Date).AddMinutes(-30) -RunStartedBefore (Get-Date).AddMinutes(30)
    
        if (($result | Where-Object { $_.Status -eq "InProgress" } | Measure-Object).count -ne 0) {
            Write-Host "Pipeline run status: In Progress" -foregroundcolor "Yellow"
            Start-Sleep -Seconds 30
        }
        else {
            Write-Host "Pipeline 'SQLServerToBlobPipeline' run finished. Result:" -foregroundcolor "Yellow"
            $result
            break
        }
    }
    

    Вот результат примера выполнения:

    ResourceGroupName    : <resourceGroupName>
    DataFactoryName      : <dataFactoryName>
    ActivityRunId        : 24af7cf6-efca-4a95-931d-067c5c921c25
    ActivityName         : CopySqlServerToAzureBlobActivity
    ActivityType         : Copy
    PipelineRunId        : 7b538846-fd4e-409c-99ef-2475329f5729
    PipelineName         : SQLServerToBlobPipeline
    Input                : {source, sink, enableStaging}
    Output               : {dataRead, dataWritten, filesWritten, sourcePeakConnections...}
    LinkedServiceName    :
    ActivityRunStart     : 9/11/2019 7:10:37 AM
    ActivityRunEnd       : 9/11/2019 7:10:58 AM
    DurationInMs         : 21094
    Status               : Succeeded
    Error                : {errorCode, message, failureType, target}
    AdditionalProperties : {[retryAttempt, ], [iterationHash, ], [userProperties, {}], [recoveryStatus, None]...}
    
  2. Вы можете получить идентификатор выполнения конвейера SQLServerToBlobPipeline и просмотреть подробный результат выполнения действия с помощью следующей команды:

    Write-Host "Pipeline 'SQLServerToBlobPipeline' run result:" -foregroundcolor "Yellow"
    ($result | Where-Object {$_.ActivityName -eq "CopySqlServerToAzureBlobActivity"}).Output.ToString()
    

    Вот результат примера выполнения:

    {  
        "dataRead":36,
        "dataWritten":32,
        "filesWritten":1,
        "sourcePeakConnections":1,
        "sinkPeakConnections":1,
        "rowsRead":2,
        "rowsCopied":2,
        "copyDuration":18,
        "throughput":0.01,
        "errors":[  
    
        ],
        "effectiveIntegrationRuntime":"ADFTutorialIR",
        "usedParallelCopies":1,
        "executionDetails":[  
            {  
                "source":{  
                    "type":"SqlServer"
                },
                "sink":{  
                    "type":"AzureBlobStorage",
                    "region":"CentralUS"
                },
                "status":"Succeeded",
                "start":"2019-09-11T07:10:38.2342905Z",
                "duration":18,
                "usedParallelCopies":1,
                "detailedDurations":{  
                    "queuingDuration":6,
                    "timeToFirstByte":0,
                    "transferDuration":5
                }
            }
        ]
    }
    

Проверка выходных данных

Конвейер автоматически создает выходную папку с именем fromonprem в контейнере BLOB adftutorial. Убедитесь, что вы видите в выходной папке файл dbo.emp.txt.

  1. На портале Azure в окне контейнера adftutorial выберите Refresh, чтобы просмотреть выходную папку.

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

  3. Убедитесь, что отображается файл dbo.emp.txt.

    Выходной файл

Конвейер передачи данных в этом примере копирует данные из одного расположения в другое в хранилище Azure Blob. Вы научились выполнять следующие задачи:

  • Создали фабрику данных.
  • Создание локальной среды выполнения интеграции.
  • Создайте связанные службы для SQL Server и Azure Storage.
  • Создайте наборы данных SQL Server и Azure Blob.
  • Создадите конвейер с действием копирования для перемещения данных.
  • Запуск конвейера.
  • Контролируйте выполнение конвейера.

Список хранилищ данных, поддерживаемых фабрикой данных, см. в разделе Поддерживаемые хранилища данных и форматы.

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