Копирование данных из DB2 с помощью Фабрики данных Azure или Synapse Analytics

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

Совет

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

В этой статье описывается, как с помощью действия копирования в конвейерах Фабрики данных Azure и Synapse Analytics копируются данные из базы данных DB2. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.

Поддерживаемые возможности

Соединитель DB2 поддерживается для следующих возможностей:

Поддерживаемые возможности IR
Действие копирования (источник/-) ① ②
Действие поиска ① ②

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

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

В частности, этот соединитель DB2 поддерживает приведенные ниже платформы и версии IBM DB2 с архитектурой распределенной реляционной базы данных (DRDA) SQL Access Manager (SQLAM) версии 9, 10 и 11. Он использует протокол DDM/DRDA.

  • IBM DB2 для z/OS версии 12.1
  • IBM DB2 для z/OS версии 11.1
  • IBM DB2 для i версии 7.3
  • IBM DB2 для i версии 7.2
  • IBM DB2 для i версии 7.1
  • IBM DB2 для LUW версии 11
  • IBM DB2 для LUW версии 10.5
  • IBM DB2 для LUW версии 10.1

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

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

Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.

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

Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.

Среда выполнения интеграции предоставляет встроенный драйвер DB2, поэтому при копировании данных из DB2 вам не потребуется устанавливать драйвер вручную.

Начало работы

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

Создание связанной службы для DB2 с помощью пользовательского интерфейса

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

  1. Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":

  2. Найдите DB2 и выберите соединитель DB2.

    Screenshot of the DB2 connector.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Screenshot of linked service configuration for DB2.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах JSON, которые используются для определения сущностей фабрики данных, относящихся к соединителю DB2.

Свойства связанной службы

Для связанной службы DB2 поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Для свойства типа необходимо задать значение Db2 Да
connectionString Укажите сведения, необходимые для подключения к экземпляру DB2.
Вы можете также поместить пароль в Azure Key Vault и извлечь конфигурацию password из строки подключения. Ознакомьтесь с приведенными ниже примерами и подробными сведениями в статье Хранение учетных данных в Azure Key Vault.
Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. No

Типичный набор свойств для строки подключения.

Свойство Описание: Обязательное поле
server Имя сервера DB2. Вы можете указать номер порта следом за именем сервера, разделив их двоеточием, например server:port.
Соединитель DB2 использует протокол DDM/DRDA и порт 50 000 по умолчанию, если он не настроен. Для конкретной базы данных DB2 используемый порт может отличаться в зависимости от версии и настроенных параметров. Например, для DB2 LUW по умолчанию используется порт 50 000, а для AS400 — 446 (или 448, если включен TLS). Ознакомьтесь со следующими документами DB2 о том, как обычно настроен порт: DB2 z/OS, DB2 iSeries и DB2 LUW.
Да
database Имя базы данных DB2. Да
authenticationType Тип проверки подлинности, используемый для подключения к базе данных DB2.
Допустимое значение: Базовый.
Да
username Укажите имя пользователя для подключения к базе данных DB2. Да
password Введите пароль для учетной записи пользователя, указанной для выбранного имени пользователя. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. Да
packageCollection Укажите, в каком расположении автоматически создаются необходимые пакеты при запросе к базе данных. Если этот параметр не задан, служба использует {username} в качестве значения по умолчанию. No
certificateCommonName При использовании протоколов SSL или TLS необходимо ввести значение для параметра "Общее имя сертификата". No

Совет

Если вы получите сообщение об ошибке The package corresponding to an SQL statement execution request was not found. SQLSTATE=51002 SQLCODE=-805, это означает, что необходимый пакет для пользователя не создан. По умолчанию служба попытается создать пакет в коллекции с тем же именем, что у пользователя, которое использовалось при подключении к DB2. Укажите свойство коллекции пакетов, чтобы определить, где служба будет создавать необходимые пакеты при запросе к базе данных. Если не удается определить имя коллекции пакетов, попробуйте задать packageCollection=NULLID.

Пример:

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;password=<password>;packageCollection=<packagecollection>;certificateCommonName=<certname>;"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: хранение пароля в Azure Key Vault

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "connectionString": "server=<server:port>;database=<database>;authenticationType=Basic;username=<username>;packageCollection=<packagecollection>;certificateCommonName=<certname>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

Предыдущие полезные данные:

{
    "name": "Db2LinkedService",
    "properties": {
        "type": "Db2",
        "typeProperties": {
            "server": "<servername:port>",
            "database": "<dbname>",
            "authenticationType": "Basic",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Свойства набора данных

Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. Этот раздел содержит список свойств, поддерживаемых набором данных DB2.

Для копирования данных из DB2 поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Свойство типа набора данных должно иметь значение : Db2Table Да
schema Имя схемы. Нет (если свойство query указано в источнике действия)
table Имя таблицы. Нет (если свойство query указано в источнике действия)
tableName Имя таблицы со схемой. Это свойство поддерживается только для обеспечения обратной совместимости. Для новых рабочих нагрузок используйте schema и table. Нет (если свойство query указано в источнике действия)

Пример

{
    "name": "DB2Dataset",
    "properties":
    {
        "type": "Db2Table",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<DB2 linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

Свойства действия копирования

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

DB2 в качестве источника

Для копирования данных из DB2 в разделе source для действия копирования поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Свойство type источника действия копирования должно иметь значение: Db2Source Да
query Используйте пользовательский SQL-запрос для чтения данных. Например: "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\"". Нет (если для набора данных задано свойство tableName)

Пример:

"activities":[
    {
        "name": "CopyFromDB2",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<DB2 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "Db2Source",
                "query": "SELECT * FROM \"DB2ADMIN\".\"Customers\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

Сопоставление типов данных для DB2

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

Тип базы данных DB2 Промежуточный тип данных службы
BigInt Int64
Binary Byte[]
BLOB-объект Byte[]
Char Строка
Clob Строка
Date Datetime
DB2DynArray Строка
DbClob Строка
Десятичное число Десятичное число
DecimalFloat Decimal
Двойной Двойной
Тип с плавающей запятой Двойной
GRAPHIC Строка
Целое число Int32
LongVarBinary Byte[]
LongVarChar Строка
LongVarGraphic Строка
Числовое Десятичное число
Вещественное число Одна
SmallInt Int16
Время TimeSpan
Метка времени Дата/время
VarBinary Byte[]
VarChar Строка
VarGraphic Строка
Xml Byte[]

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

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