PostgreSQL
В этом разделе объясняется настройка подключения к цели PostgreSQL с использованием коннектора цели PostgreSQL. PostgreSQL можно использовать в качестве цели только в задаче репликации. Прежде чем подключаться к цели PostgreSQL, необходимо настроить Необходимые разрешения в базе данных. Если подключение к PostgreSQL осуществляется через Data Movement Gateway, также требуется установить необходимый драйвер, как описано в Настройка драйвера.
Для получения дополнительной информации об ограничениях и замечаниях при использовании коннектора PostgreSQL см. раздел Ограничения и замечания.
Настройка свойств подключения
Чтобы настроить коннектор, выполните следующие действия:
-
В виде Подключения нажмите Создать подключение.
-
Выберите коннектор цели PostgreSQL, а затем задайте следующие настройки.
Цель данных
-
Шлюз данных: При работе с Data Movement Gateway выберите шлюз данных, с использованием которого будет тестироваться подключение к цели PostgreSQL. Это должен быть тот же шлюз, который использовался для доступа к источнику данных.
Примечание к информации- Это поле недоступно при использовании подписки Qlik Talend Cloud Starter, так как Data Movement Gateway не поддерживается для этого уровня подписки.
-
Также необходимо установить соответствующий драйвер на компьютер с Data Movement Gateway. Для получения подробных сведений см. Настройка драйвера ниже.
-
Облачный поставщик: выберите один из следующих вариантов по ситуации:
-
«Нет» ― выберите при работе со следующими службами:
- PostgreSQL (локальная)
- Amazon Aurora
- Azure Database для PostgreSQL - Flexible Server
- Нет Data Movement Gateway
-
Amazon RDS
Для Amazon RDS for PostgreSQL.
-
Google Cloud ― выберите при работе со следующими службами:
- Google Cloud SQL for PostgreSQL
- Google Cloud AlloyDB for PostgreSQL
-
Microsoft Azure
Для Microsoft Azure Database for PostgreSQL.
-
-
Узел: имя сервера или IP-адрес компьютера, на котором установлена база данных PostgreSQL.
-
Порт: порт, который должен использоваться при подключении к базе данных. Значение по умолчанию: 5432.
Свойства учетной записи (Account properties)
Имя пользователя и Пароль: имя и пароль пользователя для авторизованного доступа к базе данных сервера PostgreSQL.
Свойства базы данных
-
Имя базы данных: задать базу данных можно двумя способами:
- Способ 1: выбор из списка. Щелкните Загрузить базы данных, а затем выберите базу данных.
- Способ 2: вручную. Выберите Ввести имя базы данных вручную, а затем введите имя базы данных.
- Режим SSL: выберите одно из значений, указанных ниже.
- disable — подключение только с помощью фамилии и пароля.
- allow — устанавливает подключение с шифрованием по запросу сервера.
- prefer — это значение по умолчанию. Устанавливает подключение с шифрованием, если сервер поддерживает такие подключения, и переключается обратно на подключение без шифрования, если подключение с шифрованием не может быть установлено.
- require — устанавливает подключение с шифрованием, если сервер поддерживает такие подключения. Если подключение с шифрованием не может быть установлено, попытка подключения завершается ошибкой.
- verify-ca — аналогично значению require, но также проверяется сертификат центра сертификации (ЦС) сервера на соответствие настроенным сертификатам ЦС. устанавливает подключение с шифрованием, если сервер поддерживает такие подключения, и переключается обратно на подключение без шифрования, если подключение с шифрованием не может быть установлено.
- verify-full — аналогично значению verify-ca, но также выполняется проверка удостоверения имени хоста путем сопоставления имени хоста, который клиент (т. е. Qlik Talend Data Integration) использует для подключения к серверу, с именем в удостоверении сертификата, который сервер отправляет клиенту. Клиент проверяет, совпадает ли имя хоста, который он использует для подключения, со значением Общее имя в сертификате сервера. Если имена не совпадают, попытка подключения завершается ошибкой.
- Доверенный сертификат: файл сертификата клиента, выпущенного центром сертификации (ЦС), в формате PEM.
- Сертификат клиента: загрузите сертификат клиента, запрашиваемый сервером.
- Ключ сертификата клиента: файл закрытого ключа клиента в формате PEM.
- CRL: сертификат CRL. Этот файл содержит сертификаты, отозванные центрами сертификации. Если сертификат сервера присутствует в этом списке, попытка подключения завершается ошибкой.
- Сжатие SSL: выберите этот параметр для сжатия данных перед их шифрованием.
- Максимальный размер файла (КБ): выберите или введите максимальный размер (в КБ) файла CSV, прежде чем он будет загружен в целевую базу данных PostgreSQL. Значение по умолчанию 32 000 КБ.
Внутренние свойства
Внутренние свойства предназначены для особых вариантов использования и поэтому не отображаются в диалоговом окне. Их можно использовать только по указанию службы поддержки Qlik.
Используйте кнопки и справа от полей, чтобы при необходимости добавить или удалить свойства.
Имя
Отображаемое имя подключения.
Условия
Необходимые разрешения
Пользователь, указанный в параметрах коннектора, должен быть зарегистрированным пользователем в базе данных PostgreSQL.
В дополнение к этому необходимо предоставить следующие права:
- Может войти
- Создавать базы данных
Настройка драйвера
driver можно установить с помощью программы для установки драйверов (рекомендуется) или вручную. Ручную установку следует выполнять только в том маловероятном случае, если возникла проблема с программой для установки драйверов.
Использование программы для установки драйверов для установки драйвера
В этом разделе описывается процедура установки необходимого driverа. Она включает выполнение скрипта, который автоматически загружает, устанавливает и настраивает необходимый driver. Также можно выполнять скрипты для обновления и удаления driverа по необходимости.
Подготовка к установке
-
Убедитесь, что на сервере шлюза Перемещение данных установлена версия Python 3.6 или более поздняя.
Python предустанавливается в большинстве дистрибутивов Linux. Чтобы проверить, какая версия Python установлена в системе, выполните следующую команду:
python3 --version
Установка driver
Чтобы загрузить и установить driver, выполните следующие действия.
-
На компьютере шлюза Перемещение данных измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./install postgres
Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Перемещение данных. После этого выполните команду install postgres еще раз.
В противном случае откроется лицензионное соглашение с конечным пользователем driverа.
-
Выполните одно из следующих действий:
- Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
- Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
- Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.
-
Затем выполните одно из следующих действий:
- Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
- Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
-
Введите «v» и нажмите клавишу [Enter], чтобы снова открыть лицензионное соглашение для просмотра.
Будет установлен driver.
Обновление driverа
Выполните команду обновления, если требуется удалить предыдущие версии driverа перед установкой предоставленной версии driverа.
Чтобы загрузить и обновить driver, выполните следующие действия.
-
На компьютере шлюза Перемещение данных измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./update postgres
Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Перемещение данных. После этого выполните команду update postgres еще раз.
В противном случае откроется лицензионное соглашение с конечным пользователем driverа.
-
Выполните одно из следующих действий:
- Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
- Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
- Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.
-
Затем выполните одно из следующих действий:
- Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
- Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
- Введите «v» и нажмите клавишу [Enter], чтобы снова просмотреть лицензионное соглашение от начала.
Будет удален старый driver и установлен новый driver.
Удаление driverа
Выполните команду удаления, если требуется удалить driver.
Чтобы удалить driver, выполните следующие действия.
-
Остановите все задачи, использующие данный коннектор.
-
На компьютере шлюза Перемещение данных измените рабочую папку на:
opt/qlik/gateway/movement/drivers/bin
-
Выполните следующую команду:
Синтаксис:
./uninstall postgres
driver будет удален.
Установка драйверов и библиотек вручную
Установку driver вручную следует пытаться выполнить только в том случае, если автоматическая установка драйвера не завершилась успешно.
После установки Data Movement Gateway загрузите следующие файлы RPM. Прямые ссылки для загрузки файлов можно найти в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/postgres.yaml. После завершения загрузки скопируйте файлы на компьютер Data Movement Gateway.
Когда Data Movement Gateway установлен в ОС Red Hat 9.x:
- postgresql<версия>-libs-<версия>PGDG.rhel9.x86_64.rpm
- postgresql<версия>-<версия>PGDG.rhel9.x86_64.rpm
- postgresql<версия>-odbc-<версия>PGDG.rhel8.x86_64.rpm
Когда Data Movement Gateway установлен в ОС Red Hat 8.x:
- postgresql<версия>-libs-<версия>PGDG.rhel8.x86_64.rpm
- postgresql<версия>-<версия>PGDG.rhel8.x86_64.rpm
- postgresql<версия>-odbc-<версия>PGDG.rhel8.x86_64.rpm
На сервере Data Movement Gateway откройте приглашение оболочки и выполните действия, указанные ниже.
-
Остановите службу Data Movement Gateway:
sudo systemctl stop repagent
-
Если нужно, подтвердите, что служба остановлена:
sudo systemctl status repagent
Статус должен быть следующим:
Active: inactive (dead) since <timestamp> ago
-
Установите файлы RPM.
-
Измените рабочий директорий на <Data Movement Gateway-Install-Dir>/bin.
-
Скопируйте местоположение драйвера в файл site_arep_login.sh следующим образом:
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/pgsql-<version>/lib" >> site_arep_login.sh
Таким образом драйвер будет добавлен к LD_LIBRARY_PATH, а в файле site_arep_login.sh будет сохранено местоположение драйвера.
-
При необходимости подтвердите, что местоположение драйвера было скопировано:
cat site_arep_login.sh
-
Проверьте, что в файле /etc/odbcinst.ini есть запись для PostgreSQL, как описано в этом примере:
[PostgreSQL]
Description = PostgreSQL ODBC driver
Driver = /usr/pgsql-13/lib/psqlodbc.so
Setup = /usr/pgsql-13/lib/psqlodbcw.so
UsageCount = 1
-
Запустите службу Data Movement Gateway.
sudo systemctl start repagent
-
Если нужно, подтвердите, что сервис запущен:
sudo systemctl status repagent
Статус должен быть следующим:
Active: active (running) since <timestamp> ago
Ограничения и замечания
При использовании PostgreSQL в качестве цели репликации действуют следующие ограничения:
- Не поддерживаются операции UPDATE (обновить) и DELETE (удалить) в таблицах без первичного ключа/уникального индекса, которые содержат повторяющиеся записи. Любые изменения в таких таблицах отражаются на всех записях в цели.
- Таблицы со столбцом LOB не поддерживаются в режиме применения «Пакетная оптимизация». Когда столбец VARBINARY используется в качестве ключа исходной таблицы, в цели будет создан столбец BYTEA. Это приводит к непредсказуемому поведению в режиме применения изменений «Пакетная оптимизация». В качестве обходного решения рекомендуется использовать в SQLite функцию HEX для преобразования VARBINARY в VARCHAR.
Типы данных
Информация о собственном типе данных сохраняется и отображается в столбце Собственный тип данных в видах набора данных. Если этот столбец не отображается, необходимо открыть инструмент «Управление столбцами» в виде набора данных и выбрать столбец Собственный тип данных.
Типы данных Qlik Cloud | Типы данных PostgreSQL |
---|---|
BOOL |
BOOL |
BYTES |
BYTEA |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Если масштаб => 0 и =< 6, то: TIMESTAMP Если масштаб => 7 и =< 12, то: VARCHAR (37) |
INT1 |
SMALLINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
DECIMAL (P, S) |
REAL4 |
FLOAT4 |
REAL8 |
FLOAT8 |
STRING |
Если длина 1 — 21845, то: VARCHAR (длина в байтах = значение STRING, умноженное на 3) Если длина 21846 — 2147483647, то: VARCHAR (65535) |
UINT1 |
SMALLINT |
UINT2 |
INTEGER |
UINT4 |
BIGINT |
UINT8 |
BIGINT |
WSTRING |
Если длина 1 — 21845, то: VARCHAR (длина в байтах = значение WSTRING, умноженное на 3) Если длина 21846 — 2147483647, то: VARCHAR (65535) |
BLOB |
BYTEA |
NCLOB |
TEXT |
CLOB |
TEXT |
Типы данных при репликации из источника PostgreSQL
При репликации из источника PostgreSQL, целевая таблица будет создана с теми же типами данных для всех столбцов, кроме столбцы с определенными пользователем типами данных и с типом данных PostGIS. В таких случаях тип данных будет создаваться в цели «текст переменного размера».