Руководство. Копирование данных из базы данных SQL Server в хранилище BLOB-объектов Azure

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

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

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

Примечание.

Эта статья не содержит подробный обзор службы фабрики данных. Дополнительную информацию см. в статье Общие сведения о службе фабрики данных Azure, службе интеграции данных в облаке.

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

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

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

Подписка Azure.

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

Роли в Azure

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

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

SQL Server 2014, 2016 и 2017

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

  1. Запустите SQL Server Management Studio. Если она еще не установлена на вашем компьютере, скачайте ее со страницы Скачивание SQL Server Management Studio (SSMS).

  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

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

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

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

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

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

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

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

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

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

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

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

  1. В окне Учетная запись хранения перейдите на вкладку Обзор и выберите Blobs (Большие двоичные объекты).

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

  2. В окне Служба BLOB-объектов выберите Контейнер.

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

    Enter container name

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

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

Windows PowerShell

Чтобы установить Azure PowerShell, выполните следующие действия

Примечание.

Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Установите последнюю версию среды Azure PowerShell, если она не установлена на компьютере. Подробные инструкции см. в статье Установка и настройка служб 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, роль участника, владельца либо администратора подписки Azure.
  • Чтобы получить список регионов Azure, в которых в настоящее время доступна Фабрика данных, выберите интересующие вас регионы на следующей странице, а затем разверните раздел Аналитика, чтобы найти пункт Фабрика данных: Доступность продуктов по регионам. Хранилища данных (служба хранилища Azure, база данных SQL Azure и т. д.) и вычислительные ресурсы (Azure HDInsight и т. д.), используемые фабрикой данных, могут располагаться в других регионах.

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

В этом разделе вы создадите локальную среду выполнения интеграции и свяжете ее с локальным компьютером, на котором находится база данных SQL Server. Локальная среда выполнения интеграции — это компонент, который копирует данные из базы данных SQL Server на компьютере в хранилище BLOB-объектов 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 на локальный компьютер под управлением Windows и запустите установку.

  2. В окне приветствия мастера установки Microsoft Integration Runtime нажмите кнопку Далее.

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

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

  5. В окне Ready to install Microsoft Integration Runtime (Все готово для установки Microsoft Integration Runtime) нажмите кнопку Установить.

  6. На странице Completed the Microsoft Integration Runtime Setup (Мастер установки Microsoft Integration Runtime завершит работу) нажмите кнопку Готово.

  7. В окне Регистрация среды выполнения интеграции (с локальным размещением) вставьте ключ, созданный в предыдущем разделе, и нажмите кнопку Зарегистрировать.

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

  8. В окне Новый узел Integration Runtime (Self-hosted) (с локальным размещением) нажмите кнопку Готово.

    Окно

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

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

  10. В окне Регистрация среды выполнения интеграции (с локальным размещением) выберите Запустить диспетчер конфигурации.

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

    Страница Node is connected (Узел подключен)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На этом шаге вы свяжете учетную запись хранения 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:

    {  
        "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 Server.
    • Замените <integration runtime name> именем своей среды выполнения интеграции.
    • Перед сохранением файла замените <servername>, <databasename>, <username> и <password> значениями экземпляра SQL Server.
    • Если в имени учетной записи пользователя или имени сервера необходимо использовать символ обратной косой черты (\), добавьте escape-символ (\). Например, 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, созданную на предыдущем шаге. Связанная служба содержит сведения о подключении, используемые службой фабрики данных для подключения к экземпляру 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, созданную ранее в рамках этого руководства.

Связанная служба содержит сведения о подключении, используемые фабрикой данных для подключения к учетной записи хранения Azure в среде выполнения. В этом наборе данных указана папка в хранилище Azure, в которую копируются данные из базы данных SQL Server. В этом руководстве используется папка adftutorial/fromonprem, где adftutorial — это контейнер больших двоичных объектов, а 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 в контейнере больших двоичных объектов adftutorial. Убедитесь, что вы видите в выходной папке файл dbo.emp.txt.

  1. В окне контейнера adftutorial на портале Azure нажмите кнопку Обновить, чтобы появилась входная папка.

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

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

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

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

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

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

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