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

MySQL

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

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

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

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

Цель данных

  • Шлюз данных: Выберите шлюз Data Movement Gateway, с использованием которого будет тестироваться подключение к цели MySQL. Это должен быть тот же шлюз, который использовался для доступа к источнику данных.

    Примечание к информации
    • Требуется Data Movement Gateway 2023.5.10 или более поздней версии.
    • Также необходимо установить соответствующий драйвер на компьютер с Data Movement Gateway. Для получения подробных сведений см. раздел Настройка драйвера ниже.

  • Поставщик облака: Выберите один из следующих вариантов по необходимости:

    • Для локальной базы данных MySQL, MariaDB, Amazon Aurora или Microsoft Azure Database for MySQL - Flexible Server.

    • Для Amazon RDS for MariaDB или Amazon RDS for MySQL.

    • Для Google Cloud SQL for MySQL.

    • Для Microsoft Azure Database for MySQL.

  • Сервер: имя сервера или IP-адрес компьютера, на котором установлена база данных MySQL.

  • Порт: порт, который должен использоваться при подключении к базе данных. Значение по умолчанию: 3306.

Свойства учетной записи (Account properties)

Имя пользователя и пароль: имя и пароль пользователя для доступа к базе данных MySQL Server.

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

  • Тип целевой базы данных: Выберите один из следующих вариантов:
    • Specific database (Специфическая база данных): когда установлен этот флажок, все исходные схемы загружаются в указанную базу данных.
    • Multiple databases (Несколько баз данных): когда установлен этот флажок, каждая исходная схема загружается в соответствующую базу данных. Кроме того, по умолчанию все управляющие таблицы будут реплицированы в новую схему под именем attrep_control. Для получения дополнительной информации об управляющих таблицах см. раздел Управляющие таблицы.
  • Max file size (KB) (Максимальный размер файла (КБ)): выберите или введите максимальный размер (в КБ) файла CSV, прежде чем он будет загружен в целевую базу данных MySQL. Значение по умолчанию 32000 КБ.
  • Parallel load threads (Параллельные потоки загрузки): увеличение количества потоков может улучшить производительность при загрузке данных в целевую базу данных MySQL. Обратите внимание, что настройка большого количества потоков может оказать отрицательное действие на производительность базы данных, так как для каждого потока требуется отдельное подключение.

Внутренние свойства

Внутренние свойства предназначены для особых вариантов использования и поэтому не отображаются в диалоговом окне. Их можно использовать только по указанию службы поддержки Qlik.

Используйте кнопки Создать и Отмена справа от полей, чтобы при необходимости добавить или удалить свойства.

Имя

Отображаемое имя подключения.

Условия

Необходимые разрешения

Пользователь, указанный в настройках коннектора должен иметь:

  • Доступ к учетной записи MySQL
  • Права чтения/записи в базе данных MySQL
  • Следующие разрешения для каждой целевой схемы, участвующей в репликации:
    • ALTER (изменить)
    • CREATE (создать)
    • CREATE TEMPORARY TABLES (создать временные таблицы)
    • DELETE;
    • DROP (отбросить)
    • INSERT;
    • SELECT;
    • UPDATE;

Настройка драйвера

В этом разделе описывается процедура установки необходимого driverа. Она включает выполнение скрипта, который автоматически загружает, устанавливает и настраивает необходимый driver. Также можно выполнять скрипты для обновления и удаления driverа по необходимости.

  • Убедитесь, что на сервере шлюза Перемещение данных установлена версия Python 3.6 или более поздняя.

    Python предустанавливается в большинстве дистрибутивов Linux. Чтобы проверить, какая версия Python установлена в системе, выполните следующую команду:

    python3 --version

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

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

    opt/qlik/gateway/movement/drivers/bin

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

    Синтаксис:

    ./install mysql

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

    В противном случае откроется лицензионное соглашение с конечным пользователем 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 mysql

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

    В противном случае откроется лицензионное соглашение с конечным пользователем 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 mysql

    driver будет удален.

Установка драйвера вручную

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

После установки Data Movement Gateway загрузите драйвер mysql-connector-odbc-<version>.x86_64.rpm. Можно найти прямую ссылку для загрузки поддерживаемой версии в разделе binary-artifacts в /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. После завершения загрузки скопируйте RPM на машину Data Movement Gateway.

На сервере Data Movement Gateway откройте приглашение оболочки и выполните действия, указанные ниже.

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

    sudo systemctl stop repagent

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

    sudo systemctl status repagent

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

    Active: inactive (dead) since <timestamp> ago

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

  5. Скопируйте местоположение драйвера в файл site_arep_login.sh:

    echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh

    Таким образом драйвер будет добавлен к LD_LIBRARY_PATH, а в файле site_arep_login.sh будет сохранено местоположение драйвера.

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

    cat site_arep_login.sh
  7. Проверьте, что в файле /etc/odbcinst.ini имеется запись для MySQL, такая, как в этом примере:

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

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

    sudo systemctl start repagent

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

    sudo systemctl status repagent

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

    Active: active (running) since <timestamp> ago

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

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

  • Если DATETIME имеет значение 0, то при репликации в целевую базу данных MariaDB необходимо определить преобразование, которое заменит DATETIME допустимыми значениями. Пример.

    replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')

    Примечание к информацииДанное ограничение не применяется к Microsoft Azure Database for MySQL.
  • В связи с принципом работы MySQL, при загрузке данных в цель MySQL во время выполнения задачи «Полная загрузка», в журналах не будут регистрироваться ошибки, связанные с повторяющимися ключами.
  • При обновлении столбца существующим значением затрагиваемые строки не возвращаются из MySQL (в отличие от Oracle и Microsoft SQL Server, которые обновляют одну строку).

    В результате этого создается запись в attrep_apply_exceptions Control Table, а также следующее предупреждение:

    Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.

  • Из-за проблемы с MySQL 5.7 (которая исправлена в версии 8.0), многобайтовые символы нельзя вставлять в столбцы TEXT, когда для полной загрузки используются файлы CSV. Следовательно, если целевая конечная точка — MySQL 5.7 и реплицированная таблица содержит столбцы TEXT с многобайтовыми символами UTF-8, целевая таблица может оказаться пустой.

     

    Обходной прием:

    В параметрах коннектора задайте внутреннему параметру loadUsingCSV значение FALSE. Обратите внимание, что это может повлиять на производительность.

  • Если необходимо реплицировать 4-байтовые символы эмодзи, в качестве символа целевой схемы необходимо задать utf8mb4.

Типы данных

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

Поддерживаемые типы данных
Типы данных Qlik Cloud Типы данных MySQL

BOOL

BOOL

BYTES

Если длина => 1 и =< 8095, то:

VARBINARY (Length)

Если длина => 8096 и =< 65535, то:

BLOB

Если длина => 65536 и =< 16777215, то:

MEDIUMBLOB

Если длина => 16777216 и =< 2147483647, то:

LONGBLOB

DATE

DATE

TIME

TIME

DATETIME

Если масштаб => 0 и =< 6, то:

DECIMAL (p,s)

Если масштаб => 7 и =< 12, то:

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

Если масштаб => 0 и =< 30, то:

DECIMAL (p,s)

Если масштаб => 31 и =< 100, то:

VARCHAR (45)

REAL4

FLOAT;

REAL8

DOUBLE

STRING

Если длина => 1 и =< 8095, то:

VARCHAR (Length)

Если длина => 8096 и =< 65535, то:

TEXT

Если длина => 65536 и =< 16777215, то:

MEDIUMTEXT

Если длина => 16777216 и =< 2147483647, то:

LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Если длина => 1 и =< 8095, то:

VARCHAR (Length)

Если длина => 8096 и =< 65535, то:

TEXT

Если длина => 65536 и =< 16777215, то:

MEDIUMTEXT

Если длина => 16777216 и =< 2147483647, то:

LONGTEXT

BLOB

Когда включен параметр Разрешить неограниченный размер LOB:

  • LONGBLOB

Когда включен параметр Ограничить размер LOB до:

  • Если заданное значение меньше или равно 63 КБ, то:

    BLOB

  • Если заданное значение больше или равно 64 КБ:

    LONGBLOB

Для получения дополнительных сведений об ограничении размера LOB см. раздел Metadata.

NCLOB

Когда включен параметр Разрешить неограниченный размер LOB:

  • TEXT

Когда включен параметр Ограничить размер LOB до:

  • Если заданное значение меньше или равно 63 КБ, то:

    TEXT

  • Если заданное значение больше или равно 64 КБ:

    LONGTEXT

Для получения дополнительных сведений об ограничении размера LOB см. раздел Metadata.

CLOB

Когда включен параметр Разрешить неограниченный размер LOB:

  • TEXT CHARACTER SET UTF-16

Когда включен параметр Ограничить размер LOB до:

  • Если заданное значение меньше или равно 63 КБ, то:

    TEXT CHARACTER SET UTF-16

  • Если заданное значение больше или равно 64 КБ:

    LONGTEXT CHARACTER SET UTF-16

Для получения дополнительных сведений об ограничении размера LOB см. раздел Metadata.

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

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