Перейти к основному содержимому Перейти к дополнительному содержимому

PostgreSQL

В этом разделе объясняется настройка подключения к цели PostgreSQL с использованием коннектора цели PostgreSQL. PostgreSQL можно использовать в качестве цели только в задаче репликации. Прежде чем подключаться к цели PostgreSQL, необходимо настроить Необходимые разрешения в базе данных. Если подключение к PostgreSQL осуществляется через Data Movement Gateway, также требуется установить необходимый драйвер, как описано в Настройка драйвера.

Для получения дополнительной информации об ограничениях и замечаниях при использовании коннектора PostgreSQL см. раздел Ограничения и замечания.

Настройка свойств подключения

Чтобы настроить коннектор, выполните следующие действия:

  1. В виде Подключения нажмите Создать подключение.

  2. Выберите коннектор цели 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 for PostgreSQL.

      • Google Cloud SQL for PostgreSQL
      • Google Cloud AlloyDB for PostgreSQL
    • Для 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, выполните следующие действия.

  1. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

  2. Выполните следующую команду:

    Синтаксис:

    ./install postgres

    Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Перемещение данных. После этого выполните команду install postgres еще раз.

    В противном случае откроется лицензионное соглашение с конечным пользователем driverа.

  3. Выполните одно из следующих действий:

    • Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
    • Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
    • Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.
  4. Затем выполните одно из следующих действий:

    • Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
    • Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
    • Введите «v» и нажмите клавишу [Enter], чтобы снова открыть лицензионное соглашение для просмотра.

  5. Будет установлен driver.

Выполните команду обновления, если требуется удалить предыдущие версии driverа перед установкой предоставленной версии driverа.

Чтобы загрузить и обновить driver, выполните следующие действия.

  1. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

  2. Выполните следующую команду:

    Синтаксис:

    ./update postgres

    Если не удается загрузить driver (из-за ограничений доступа или технических проблем), появится сообщение с указанием места, откуда можно загрузить driver и куда его скопировать на компьютере шлюза Перемещение данных. После этого выполните команду update postgres еще раз.

    В противном случае откроется лицензионное соглашение с конечным пользователем driverа.

  3. Выполните одно из следующих действий:

    • Нажмите клавишу [Enter] несколько раз, чтобы медленно прокрутить лицензионное соглашение.
    • Нажимайте клавишу «Пробел» несколько раз, чтобы быстро прокрутить лицензионное соглашение.
    • Нажмите клавишу «q», чтобы закрыть текст лицензионного соглашения и перейти к шагу принятия/отклонения.
  4. Затем выполните одно из следующих действий:

    • Введите «y» и нажмите клавишу [Enter], чтобы принять лицензионное соглашение и запустить установку.
    • Введите «n» и нажмите клавишу [Enter], чтобы отклонить лицензионное соглашение и отменить установку.
    • Введите «v» и нажмите клавишу [Enter], чтобы снова просмотреть лицензионное соглашение от начала.
  5. Будет удален старый driver и установлен новый driver.

Выполните команду удаления, если требуется удалить driver.

Чтобы удалить driver, выполните следующие действия.

  1. Остановите все задачи, использующие данный коннектор.

  2. На компьютере шлюза Перемещение данных измените рабочую папку на:

    opt/qlik/gateway/movement/drivers/bin

  3. Выполните следующую команду:

    Синтаксис:

    ./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 откройте приглашение оболочки и выполните действия, указанные ниже.

  1. Остановите службу Data Movement Gateway:

    sudo systemctl stop repagent

  2. Если нужно, подтвердите, что служба остановлена:

    sudo systemctl status repagent

    Статус должен быть следующим:

    Active: inactive (dead) since <timestamp> ago

  3. Установите файлы RPM.

  4. Измените рабочий директорий на <Data Movement Gateway-Install-Dir>/bin.

  5. Скопируйте местоположение драйвера в файл 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 будет сохранено местоположение драйвера.

  6. При необходимости подтвердите, что местоположение драйвера было скопировано:

    cat site_arep_login.sh
  7. Проверьте, что в файле /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

  8. Запустите службу Data Movement Gateway.

    sudo systemctl start repagent

  9. Если нужно, подтвердите, что сервис запущен:

    sudo systemctl status repagent

    Статус должен быть следующим:

    Active: active (running) since <timestamp> ago

Ограничения и замечания

При использовании PostgreSQL в качестве цели репликации действуют следующие ограничения:

  • Не поддерживаются операции UPDATE (обновить) и DELETE (удалить) в таблицах без первичного ключа/уникального индекса, которые содержат повторяющиеся записи. Любые изменения в таких таблицах отражаются на всех записях в цели.
  • Таблицы со столбцом LOB не поддерживаются в режиме применения «Пакетная оптимизация». Когда столбец VARBINARY используется в качестве ключа исходной таблицы, в цели будет создан столбец BYTEA. Это приводит к непредсказуемому поведению в режиме применения изменений «Пакетная оптимизация». В качестве обходного решения рекомендуется использовать в SQLite функцию HEX для преобразования VARBINARY в VARCHAR.

Типы данных

Информация о собственном типе данных сохраняется и отображается в столбце Собственный тип данных в видах набора данных. Если этот столбец не отображается, необходимо открыть инструмент «Управление столбцами» в виде набора данных и выбрать столбец Собственный тип данных.

Примечание к предупреждениюЕсли выполняется перемещение из исходной таблицы со столбцами, которые сопоставляются с BYTEA в цели PostgreSQL, убедитесь, что в настройках задачи включен параметр Реплицировать столбцы LOB (по умолчанию).
Типы данных
Типы данных 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. В таких случаях тип данных будет создаваться в цели «текст переменного размера».

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!