Saltar al contenido principal Saltar al contenido complementario

MySQL

Esta sección explica cómo configurar la conectividad a un destino MySQL mediante el conector MySQL Target. MySQL puede utilizarse como base de datos de destino únicamente en una tarea de replicación. Antes de poder conectarse a un destino MySQL, debe configurar Permisos requeridos en la base de datos. Si se conecta a MySQL a través de Pasarela de datos de movimiento de datos, también deberá instalar el controlador como se describe en Configuración del controlador.

Para obtener información sobre limitaciones y consideraciones al utilizar MySQL, vea Limitaciones y consideraciones.

Configurar las propiedades de la conexión

Esta sección describe las propiedades de conexión disponibles. Todas las propiedades son obligatorias a menos que se indique lo contrario.

Destino de datos

  • Pasarela de datos: Seleccione la Pasarela de datos de movimiento de datos que se utilizará para probar la conexión al destino de MySQL. Esta debería ser la misma puerta de enlace que se utilizó para acceder a la fuente de datos.

    Nota informativa
    • Requiere Pasarela de datos de movimiento de datos 2023.5.10 o posterior.
    • También necesita instalar el controlador adecuado en la máquina de Pasarela de datos de movimiento de datos. Para más detalles, vea Configuración del controlador a continuación.

  • Proveedor Cloud: Elija uno de los siguientes, según proceda:

    • Para MySQL local, MariaDB, Amazon Aurora o Microsoft Azure Database para MySQL: servidor flexible.

    • Para Amazon RDS for MariaDB o Amazon RDS for MySQL.

    • Para Google Cloud SQL for MySQL.

    • Para Microsoft Azure Database for MySQL

  • Servidor: El nombre del host o la dirección IP del equipo en el que está instalada la base de datos de MySQL.

  • Puerto: El puerto que se utilizará al conectarse a la base de datos. El valor predeterminado es 3306.

Propiedades de la cuenta

User Name y Password: El nombre de usuario y la contraseña de un usuario autorizado para acceder a la base de datos de MySQL Server.

Propiedades de la base de datos

  • Tipo de base de datos de destino: Escoja uno de los siguientes:
    • Base de datos específica: Cuando se selecciona esta opción, todos los esquemas de origen se cargarán en el archivo especificado Base de datos.
    • Múltiples bases de datos: Cuando se selecciona esta opción, cada uno de los esquemas de origen se cargará en su base de datos correspondiente. Además, de forma predeterminada, todas las tablas de control se replicarán en un nuevo esquema llamado attrep_control. Para más información sobre la Tablas de control, vea Tablas de control.
  • Tamaño máximo de archivo (kB): Seleccione o escriba el tamaño máximo (en KB) de un archivo CSV antes de cargarlo en la base de datos de destino MySQL. El valor predeterminado es 32000 KB.
  • Hilos de carga paralela: Aumentar el número de subprocesos puede mejorar el rendimiento al cargar datos en la base de datos de destino MySQL. Tenga en cuenta que fijar una gran cantidad de subprocesos puede tener un efecto adverso en el rendimiento de la base de datos, ya que se requiere una conexión aparte para cada subproceso.

Propiedades internas

Las propiedades internas son para casos de uso especiales y, por lo tanto, no se exponen en el cuadro de diálogo. Solo deberá usarlas si se lo indica el Soporte de Qlik.

Haga uso de los botones Crear nuevo y Cancelar a la derecha de los campos para agregar o eliminar propiedades según sea necesario.

Nombre

El nombre que mostrará la conexión.

Requisitos previos

Permisos requeridos

El usuario especificado en la configuración del conector debe tener otorgado:

  • Acceso a la cuenta MySQL
  • Privilegios de lectura/escritura en la base de datos MySQL
  • Los siguientes permisos para cada esquema de destino involucrado en la replicación:
    • ALTERAR
    • CREAR
    • CREAR TABLAS TEMPORALES
    • ELIMINAR
    • SOLTAR
    • INSERTAR
    • SELECCIONAR
    • ACTUALIZAR

Configuración del controlador

Esta sección describe cómo instalar el driver necesario. El proceso implica ejecutar un script que descargará, instalará y configurará automáticamente el driver requerido. También puede ejecutar secuencias de script para actualizar y desinstalar el driver según sea necesario.

  • Asegúrese de que Python 3.6 o posterior esté instalado en el servidor de la pasarela de Movimiento de datos.

    Python viene preinstalado en la mayoría de las distribuciones de Linux. Puede verificar qué versión de Python está instalada en su sistema ejecutando el siguiente comando:

    python3 --version

Para descargar e instalar el driver:

  1. En la máquina de la puerta de enlace de Movimiento de datos, cambie el directorio de trabajo a:

    opt/qlik/gateway/movement/drivers/bin

  2. Ejecute el siguiente comando:

    Sintaxis:

    ./install mysql

    Si no logra descargar el driver (debido a restricciones de acceso o problemas técnicos), aparecerá un mensaje indicándole dónde puede descargar el driver y dónde copiarlo en la máquina de la puerta de enlace de Movimiento de datos. Una vez hecho esto, ejecute nuevamente el comando install mysql.

    De lo contrario, se mostrará el EULA del driver.

  3. Puede realizar una de las acciones siguientes:

    • Pulse [Intro] repetidamente para desplazarse por el EULA.
    • Pulse la barra espaciadora repetidamente para desplazarse rápidamente por el EULA.
    • Pulse q para salir del texto de la licencia y ver las opciones de aceptación del EULA.
  4. Puede realizar una de las acciones siguientes:

    • Escriba "y" y pulse [Intro] para aceptar el EULA y comenzar la instalación.
    • Escriba "n" y pulse [Intro] para rechazar el EULA y salir de la instalación.
    • Escriba "v" y pulse [Intro] para ver el EULA de nuevo.

  5. Se instalará el driver.

Ejecute el comando de actualización si desea desinstalar versiones anteriores del driver antes de instalar el driver provisto.

Para descargar y actualizar el driver:

  1. En la máquina de la puerta de enlace de Movimiento de datos, cambie el directorio de trabajo a:

    opt/qlik/gateway/movement/drivers/bin

  2. Ejecute el siguiente comando:

    Sintaxis:

    ./update mysql

    Si no logra descargar el driver (debido a restricciones de acceso o problemas técnicos), aparecerá un mensaje indicándole dónde puede descargar el driver y dónde copiarlo en la máquina de la puerta de enlace de Movimiento de datos. Una vez hecho esto, ejecute nuevamente el comando update mysql.

    De lo contrario, se mostrará el EULA del driver.

  3. Puede realizar una de las acciones siguientes:

    • Pulse [Intro] repetidamente para desplazarse por el EULA.
    • Pulse la barra espaciadora repetidamente para desplazarse rápidamente por el EULA.
    • Pulse q para salir del texto de la licencia y ver las opciones de aceptación del EULA.
  4. Puede realizar una de las acciones siguientes:

    • Escriba "y" y pulse [Intro] para aceptar el EULA y comenzar la instalación.
    • Escriba "n" y pulse [Intro] para rechazar el EULA y salir de la instalación.
    • Escriba "v" y pulse [Intro] para ver el EULA desde el principio.
  5. El driver anterior se desinstalará y se instalará el nuevo driver.

Ejecute el comando de desinstalación si desea desinstalar el driver.

Para desinstalar el driver:

  1. Detenga todas las tareas configuradas para utilizar este conector.

  2. En la máquina de la pasarela de Movimiento de datos, cambie el directorio de trabajo a:

    opt/qlik/gateway/movement/drivers/bin

  3. Ejecute el siguiente comando:

    Sintaxis:

    ./uninstall mysql

    Se desinstalará el driver.

Instalar el controlador manualmente

Solo debe intentar instalar el driver manualmente si la instalación automática del driver no se realizó correctamente.

Una vez que haya instalado Pasarela de datos de movimiento de datos, descargue el controlador mysql-connector-odbc-<version>.x86_64.rpm. Encontrará un enlace de descarga directa a la versión compatible en binary-artifacts, en /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Una vez completada la descarga, copie el RPM a la máquina de Pasarela de datos de movimiento de datos.

En el servidor de Data Movement gateway, abra un símbolo del shell y haga lo siguiente:

  1. Detenga el servicio Data Movement gateway:

    sudo systemctl stop repagent

  2. Opcionalmente, confirme que el servicio se ha detenido:

    sudo systemctl status repagent

    El estado debería ser el siguiente:

    Active: inactive (dead) since <timestamp> ago

  3. Instale el controlador en la máquina de Data Movement gateway.
  4. Cambie el directorio de trabajo a <Data Movement gateway-Install-Dir>/bin.

  5. Copie la ubicación del controlador en el archivo site_arep_login.sh:

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

    Esto agregará el controlador a "LD_LIBRARY_PATH" y actualizará la ubicación del controlador en el archivo site_arep_login.sh.

  6. Opcionalmente, confirme que se copió la ubicación del controlador:

    cat site_arep_login.sh
  7. Asegúrese de que el archivo /etc/odbcinst.ini contenga una entrada para MySQL, como en el siguiente ejemplo:

    [MySQL ODBC 8.0 Unicode Driver]

    Driver = /usr/lib64/libmyodbc8w.so

    UsageCount = 1

  8. Inicie el servicio Data Movement gateway:

    sudo systemctl start repagent

  9. Opcionalmente, confirme que el servicio se ha iniciado:

    sudo systemctl status repagent

    El estado debería ser el siguiente:

    Active: active (running) since <timestamp> ago

Limitaciones y consideraciones

Se aplican las siguientes limitaciones al utilizar MySQL como destino de replicación:

  • Al replicar en la base de datos de destino MariaDB, si el valor DATETIME se establece en cero, debe definir una transformación que reemplace DATETIME por valores válidos. Por ejemplo:

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

    Nota informativaEsta limitación no se aplica a Microsoft Azure Database para MySQL.
  • Debido a la forma en que opera MySQL, al cargar datos en un destino MySQL durante una tarea de carga completa, los errores de claves duplicadas no se informarán en los registros.
  • Cuando se actualiza el valor de una columna a su valor existente, MySQL devuelve cero filas afectadas (a diferencia de Oracle y Microsoft SQL Server que realizan una actualización de una fila).

    Esto genera una entrada en la attrep_apply_exceptions Control Table y la siguiente advertencia:

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

  • Debido a un problema con MySQL 5.7 (que se resolvió en la versión 8.0), no se pueden insertar caracteres multibyte en las columnas de TEXTO cuando la carga completa usa archivos CSV. En consecuencia, si el punto de conexión del destino es MySQL 5.7 y una tabla replicada contiene columnas de TEXTO con caracteres multibyte UTF-8, la tabla de destino podría estar vacía.

     

    Solución:

    En la configuración del conector , establezca el parámetro interno de loadUsingCSV en FALSE. Tenga en cuenta que esto podría afectar al rendimiento.

  • Si necesita replicar caracteres emoji de 4 bytes, el conjunto de caracteres del esquema de destino debe configurarse en utf8mb4.

Tipos de datos

La información del tipo de datos nativo se conserva y se muestra en la columna Tipo de datos nativo en las vistas de conjuntos de datos. Si la columna no está visible, debe abrir el selector de columnas de la vista del conjunto de datos y seleccionar la columna Tipo de datos nativo.

Tipos de datos admitidos
Tipos de datos de Qlik Cloud Tipos de datos de MySQL

BOOL

BOOL

BYTES

Si la longitud es => 1 y =< 8095, entonces:

VARBINARY (Length)

Si la longitud es => 8096 y =< 65535, entonces:

BLOB

Si la longitud es => 65536 y =< 16777215, entonces:

MEDIUMBLOB

Si la longitud es => 16777216 y =< 2147483647, entonces:

LONGBLOB

DATE

DATE

TIME

TIME

DATETIME

If scale is => 0 and =< 6, then:

DECIMAL (p,s)

If scale is => 7 and =< 12, then:

VARCHAR (37)

INT1

TINYINT

INT2

SMALLINT

INT4

INTEGER

INT8

BIGINT

NUMERIC

Si la escala es => 0 y =< 30, entonces:

DECIMAL (p,s)

Si la escala es => 31 y =< 100, entonces:

VARCHAR (45)

REAL4

FLOAT

REAL8

DOUBLE

STRING

Si la longitud es => 1 y =< 8095, entonces:

VARCHAR (Length)

Si la longitud es => 8096 y =< 65535, entonces:

TEXT

Si la longitud es => 65536 y =< 16777215, entonces:

MEDIUMTEXT

Si la longitud es => 16777216 y =< 2147483647, entonces:

LONGTEXT

UINT1

UNSIGNED TINYINT

UINT2

UNSIGNED SMALLINT

UINT4

UNSIGNED INTEGER

UINT8

UNSIGNED BIGINT

WSTRING

Si la longitud es => 1 y =< 8095, entonces:

VARCHAR (Length)

Si la longitud es => 8096 y =< 65535, entonces:

TEXT

Si la longitud es => 65536 y =< 16777215, entonces:

MEDIUMTEXT

Si la longitud es => 16777216 y =< 2147483647, entonces:

LONGTEXT

BLOB

Cuando la opción Allow unlimited LOB size está habilitada:

  • LONGBLOB

Cuando la opción Limit LOB size to está habilitada:

  • Si el valor i especificado es 63 KB o menos, entonces:

    BLOB

  • Si el valor i especificado es 64 KB o más, entonces:

    LONGBLOB

Para más información sobre limitar el tamaño de LOB, vea Metadata.

NCLOB

Cuando la opción Allow unlimited LOB size está habilitada:

  • TEXT

Cuando la opción Limit LOB size to está habilitada:

  • Si el valor i especificado es 63 KB o menos, entonces:

    TEXT

  • Si el valor i especificado es 64 KB o más, entonces:

    LONGTEXT

Para más información sobre limitar el tamaño de LOB, vea Metadata.

CLOB

Cuando la opción Allow unlimited LOB size está habilitada:

  • TEXT CHARACTER SET UTF-16

Cuando la opción Limit LOB size to está habilitada:

  • Si el valor i especificado es 63 KB o menos, entonces:

    TEXT CHARACTER SET UTF-16

  • Si el valor i especificado es 64 KB o más, entonces:

    LONGTEXT CHARACTER SET UTF-16

Para más información sobre limitar el tamaño de LOB, vea Metadata.

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.