Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в конвейерах Фабрики данных Azure и Synapse Analytics копировать данные из базы данных PostgreSQL. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.
Внимание
Соединитель PostgreSQL версии 2 обеспечивает улучшенную встроенную поддержку PostgreSQL. Если вы используете соединитель PostgreSQL V1 в своем решении, пожалуйста, обновите соединитель PostgreSQL, так как версия V1 находится на стадии окончания поддержки. Ваш поток обработки данных завершится ошибкой после 30 сентября 2025 г., если его не обновить. Дополнительные сведения о различиях между версиями 2 и V1 см. в этом разделе .
Поддерживаемые возможности
Этот соединитель PostgreSQL предназначен для выполнения следующих возможностей:
Поддерживаемые возможности | ИКР (инфракрасное излучение) |
---|---|
Действие копирования (источник/-) | (1) (2) |
Операция поиска | (1) (2) |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для операции копирования, приведен в таблице Поддерживаемые хранилища данных и форматы.
В частности, этот соединитель PostgreSQL поддерживает PostgreSQL версии 12 и выше.
Предварительные условия
Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.
Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.
Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Начиная с версии 3.7 служба Integration Runtime предоставляет встроенный драйвер PostgreSQL, поэтому вам не потребуется устанавливать драйвер вручную.
Начало работы
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для PostgreSQL с помощью пользовательского интерфейса
Выполните приведенные ниже действия, чтобы создать связанную службу для PostgreSQL с помощью пользовательского интерфейса на портале Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Выполните поиск по запросу "Postgre" и выберите соединитель PostgreSQL.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
Следующие разделы содержат сведения о свойствах JSON, которые используются для определения сущностей фабрики данных, относящихся к соединителю PostgreSQL.
Свойства связанной службы
Для связанной службы PostgreSQL поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Свойство type должно иметь значение: PostgreSqlV2 | Да |
сервер | Указывает имя узла — и при необходимости порт, на котором выполняется PostgreSQL. | Да |
порт | TCP-порт сервера PostgreSQL. | нет |
база данных | База данных PostgreSQL для подключения. | Да |
имя пользователя | Имя пользователя для подключения. Не требуется, если используется IntegratedSecurity. | Да |
пароль | Пароль для подключения. Не требуется, если используется IntegratedSecurity. | Да |
Режим SSL | Определяет, используется ли SSL в зависимости от поддержки сервера. - Отключить: SSL отключен. Если серверу требуется SSL, подключение завершится ошибкой. - Разрешить: Предпочитать подключения без SSL, если сервер разрешает их, но разрешать SSL-подключения. - Предпочитать: предпочитать SSL-подключения, если сервер разрешает их, но разрешать подключения без SSL. - Требовать: отклонить подключение, если сервер не поддерживает SSL. - Проверка-ca: Прервать подключение, если сервер не поддерживает SSL. Также проверяет сертификат сервера. - Проверка полного выполнения. Сбой подключения, если сервер не поддерживает SSL. Также проверяет сертификат сервера с именем узла. Параметры: отключить (0) / Разрешить (1) / Предпочитать (2 ) (по умолчанию) / Требовать (3) / Verify-ca (4) / Verify-full (5) |
нет |
тип аутентификации | Тип проверки подлинности для подключения к базе данных. Поддерживается только базовый. | Да |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. | нет |
Дополнительные свойства подключения: | ||
схема | Задает путь поиска схемы. | нет |
Объединения | Следует ли использовать пул подключений. | нет |
время ожидания подключения | Время ожидания (в секундах) при попытке установить подключение, прежде чем завершать попытку и создать ошибку. | нет |
commandTimeout | Время ожидания (в секундах) при попытке выполнить команду, прежде чем завершать попытку и создать ошибку. Установите значение нулю для бесконечности. | нет |
доверять серверному сертификату | Следует ли доверять сертификату сервера, не проверяя его. | нет |
SSL-сертификат | Расположение сертификата клиента, отправляемого на сервер. | нет |
SSL-ключ | Расположение ключа клиента для отправки сертификата клиента серверу. | нет |
пароль SSL | Пароль для ключа сертификата клиента. | нет |
размер_буфера_чтения | Определяет размер внутреннего буфера Npgsql, используемого при чтении. Увеличение производительности может повысить производительность при передаче больших значений из базы данных. | нет |
параметры журнала | При включении значения параметров регистрируются при выполнении команд. | нет |
часовой пояс | Возвращает или задает часовой пояс сеанса. | нет |
кодировка | Возвращает или задает кодировку .NET, которая будет использоваться для кодирования и декодирования строковых данных PostgreSQL. | нет |
Примечание.
Чтобы обеспечить полную проверку SSL через подключение ODBC при использовании локального Integration Runtime, необходимо явно использовать подключение типа ODBC вместо соединителя PostgreSQL и выполнить следующую конфигурацию:
- Настройте DSN на любых серверах SHIR.
- Поместите соответствующий сертификат для PostgreSQL в C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt на серверах SHIR. Именно в этом случае драйвер ODBC ищет > для SSL-сертификата, чтобы выполнить проверку при его подключении к базе данных.
- В вашем подключении к фабрике данных используйте подключение типа ODBC, при этом ваша строка подключения должна указывать на DSN, созданный на серверах SHIR.
Пример:
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример: хранение пароля в Azure Key Vault
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSqlV2",
"typeProperties": {
"server": "<server>",
"port": 5432,
"database": "<database>",
"username": "<username>",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
"sslmode": <sslmode>,
"authenticationType": "Basic"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. Этот раздел содержит список свойств, поддерживаемых набором данных PostgreSQL.
Для копирования данных из PostgreSQL поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Свойство type набора данных должно иметь значение: PostgreSqlV2Table | Да |
схема | Имя схемы. | Нет (если свойство query указано в источнике действия) |
стол | Имя таблицы. | Нет (если свойство query указано в источнике действия) |
Пример
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlV2Table",
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
},
"annotations": [],
"schema": [],
"typeProperties": {
"schema": "<schema name>",
"table": "<table name>"
}
}
}
Если вы ранее использовали типизированный набор данных RelationalTable
, он пока поддерживается и не требует изменений, но мы рекомендуем перейти на новую версию.
Свойства активности копирования
Полный список разделов и свойств, доступных для определения активностей, см. в статье Конвейеры. Этот раздел содержит список свойств, поддерживаемых источником PostgreSQL.
PostgreSQL в качестве источника
Для копирования данных из PostgreSQL в разделе source для действия копирования поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
тип | Свойство type источника действия копирования должно иметь значение: PostgreSqlV2Source | Да |
запрос | Используйте пользовательский SQL-запрос для чтения данных. Например: "query": "SELECT * FROM \"MySchema\".\"MyTable\"" . |
Нет (если для набора данных задано свойство tableName) |
время ожидания запроса | Время ожидания перед завершением попытки выполнения команды и создания ошибки по умолчанию составляет 120 минут. Если для этого свойства задан параметр, допустимые значения имеют интервал времени, например "02:00:00" (120 минут). Дополнительные сведения см. в разделе CommandTimeout. Если оба commandTimeout и queryTimeout настроены, queryTimeout имеет приоритет. |
нет |
Примечание.
Имена схем и таблиц чувствительны к регистру. Заключите их в ""
(двойные кавычки) в вашем запросе.
Пример:
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlV2Source",
"query": "SELECT * FROM \"MySchema\".\"MyTable\"",
"queryTimeout": "00:10:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Если вы ранее использовали типизированный источник RelationalSource
, он пока поддерживается и не требует изменений, но мы рекомендуем в дальнейшем использовать более новую версию.
Сопоставление типов данных для PostgreSQL
При копировании данных из PostgreSQL следующие сопоставления используются из типов данных PostgreSQL к промежуточным типам данных, используемым службой внутри службы. Дополнительные сведения о том, как действие копирования сопоставляет исходную схему и типы данных для приемника, см. в статье Сопоставление схем в действии копирования.
Тип данных PostgreSQL | Тип данных промежуточной службы для PostgreSQL версии 2 | Промежуточный тип данных службы для PostgreSQL версии 1 |
---|---|---|
SmallInt |
Int16 |
Int16 |
Integer |
Int32 |
Int32 |
BigInt |
Int64 |
Int64 |
Decimal (точность <= 28) |
Decimal |
Decimal |
Decimal (точность > 28) |
Не поддерживается | String |
Numeric |
Decimal |
Decimal |
Real |
Single |
Single |
Double |
Double |
Double |
SmallSerial |
Int16 |
Int16 |
Serial |
Int32 |
Int32 |
BigSerial |
Int64 |
Int64 |
Money |
Decimal |
String |
Char |
String |
String |
Varchar |
String |
String |
Text |
String |
String |
Bytea |
Byte[] |
Byte[] |
Timestamp |
DateTime |
DateTime |
Timestamp with time zone |
DateTime |
String |
Date |
DateTime |
DateTime |
Time |
TimeSpan |
TimeSpan |
Time with time zone |
DateTimeOffset |
String |
Interval |
TimeSpan |
String |
Boolean |
Boolean |
Boolean |
Point |
String |
String |
Line |
String |
String |
Iseg |
String |
String |
Box |
String |
String |
Path |
String |
String |
Polygon |
String |
String |
Circle |
String |
String |
Cidr |
String |
String |
Inet |
String |
String |
Macaddr |
String |
String |
Macaddr8 |
String |
String |
Tsvector |
String |
String |
Tsquery |
String |
String |
UUID |
Guid |
Guid |
Json |
String |
String |
Jsonb |
String |
String |
Array |
String |
String |
Bit |
Byte[] |
Byte[] |
Bit varying |
Byte[] |
Byte[] |
XML |
String |
String |
IntArray |
String |
String |
TextArray |
String |
String |
NumericArray |
String |
String |
DateArray |
String |
String |
Range |
String |
String |
Bpchar |
String |
String |
Свойства активности поиска данных
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Обновление соединителя PostgreSQL
Ниже приведены шаги, помогающие обновить соединитель PostgreSQL:
Создайте связанную службу PostgreSQL и настройте ее, ссылаясь на свойства связанной службы.
Сопоставление типов данных для соединителя PostgreSQL версии 2 отличается от сопоставления типов данных для версии 1. Сведения о последнем сопоставлении типов данных см. в разделе "Сопоставление типов данных" для PostgreSQL.
Различия между PostgreSQL версии 2 и V1
В таблице ниже показаны различия в сопоставлении типов данных между PostgreSQL версии 2 и V1.
Тип данных PostgreSQL | Тип данных промежуточной службы для PostgreSQL версии 2 | Промежуточный тип данных службы для PostgreSQL версии 1 |
---|---|---|
Деньги | Десятичное | Строка |
Метка времени с часовыми поясами | Дата/время | Строка |
Время с учетом часового пояса | DateTimeOffset (смещение даты и времени) | Строка |
Интервал | Интервал времени | Строка |
BigDecimal (БигДецимал) | Не поддерживается. В качестве альтернативы используйте to_char() функцию для преобразования BigDecimal в String. |
Строка |
Связанный контент
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия Copy, приведен в таблице Поддерживаемые хранилища данных и форматы.