Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в конвейерах Фабрики данных Azure и Synapse Analytics копировать данные из базы данных PostgreSQL. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.
Внимание
Соединитель PostgreSQL версии 1 находится на этапе удаления. Рекомендуется обновить соединитель PostgreSQL с версии 1 до версии 2.
Поддерживаемые возможности
Этот соединитель 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
- 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, приведен в таблице Поддерживаемые хранилища данных и форматы.