Копирование данных из PostgreSQL с помощью Фабрика данных Azure или Synapse Analytics (устаревшая версия)

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

Совет

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

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

Внимание

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

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

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

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

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

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

В частности, этот соединитель PostgreSQL поддерживает PostgreSQL версии 7.4 и более поздних.

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

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

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

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

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

Начиная с версии 3.7 служба Integration Runtime предоставляет встроенный драйвер PostgreSQL, поэтому вам не потребуется устанавливать драйвер вручную.

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

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

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

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

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

  2. Выполните поиск по запросу "Postgre" и выберите соединитель PostgreSQL.

    Снимок экрана: выбор соединителя PostgreSQL.

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

    Снимок экрана: настройка связанной службы в PostgreSQL.

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

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

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

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

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

Типичная строка подключения — Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>. Дополнительные свойства, которые вы можете установить в вашем случае:

Свойство Description Параметры Обязательное поле
EncryptionMethod (EM) Метод, используемый драйвером для шифрования данных, отправленных между драйвером и сервером базы данных. Пример: EncryptionMethod=<0/1/6>;. 0 (без шифрования) (по умолчанию) -1 (SSL) или 6 (RequestSSL) No
ValidateServerCertificate (VSC) Определяет, проверяет ли драйвер сертификат, отправленный сервером базы данных, когда включено шифрование SSL (метод шифрования = 1). Пример: ValidateServerCertificate=<0/1>;. 0 (отключено) (по умолчанию) -1 (включено) No

Примечание.

Чтобы обеспечить полную проверку SSL через подключение ODBC при использовании локального Integration Runtime, необходимо явно использовать подключение типа ODBC вместо соединителя PostgreSQL и выполнить следующую конфигурацию:

  1. Настройте DSN на любых серверах SHIR.
  2. Поместите соответствующий сертификат для PostgreSQL в C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt на серверах SHIR. Именно в этом случае драйвер ODBC ищет > для SSL-сертификата, чтобы выполнить проверку при его подключении к базе данных.
  3. В подключении фабрики данных используйте подключение типа ODBC со строкой подключения, указывающей на DSN, созданное на серверах SHIR.

Пример:

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSql",
        "typeProperties": {
            "connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSql",
        "typeProperties": {
            "connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Ранее используемая связанная служба PostgreSQL со приведенными ниже полезными данными по-прежнему поддерживается. Но мы рекомендуем в дальнейшем использовать более новую версию.

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

{
    "name": "PostgreSqlLinkedService",
    "properties": {
        "type": "PostgreSql",
        "typeProperties": {
            "server": "<server>",
            "database": "<database>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

Пример

{
    "name": "PostgreSQLDataset",
    "properties":
    {
        "type": "PostgreSqlTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<PostgreSQL linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

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

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

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

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

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

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

Примечание.

В именах схем и таблиц учитывается регистр. Заключите имя в "" (двойные кавычки) в запросе.

Пример:

"activities":[
    {
        "name": "CopyFromPostgreSQL",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<PostgreSQL input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "PostgreSqlSource",
                "query": "SELECT * FROM \"MySchema\".\"MyTable\""
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

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