MySQL
Este tema explica cómo configurar la conectividad a un destino MySQL utilizando el conector de destino MySQL . 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 Data Movement, 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
Para configurar el conector, haga lo siguiente:
-
En Conexiones, haga clic en Crear conexión.
-
Seleccione el conector de destino MySQL y luego proporcione la siguiente configuración:
Destino de datos
-
Pasarela de datos: Cuando trabaje con Pasarela Data Movement seleccione la pasarela de datos que se utilizará para probar la conexión al destino de MySQL. Esta debería ser la misma pasarela que se utilizó para acceder a la fuente de datos.
Nota informativa- Este campo no está disponible con la suscripción Qlik Talend Cloud Starter porque Pasarela Data Movement no se admite con este nivel de suscripción.
-
También necesita instalar el controlador adecuado en la máquina de Pasarela Data Movement. Para más detalles, vea Configuración del controlador a continuación.
-
Proveedor de servicios en la nube: elija uno de los siguientes según corresponda:
-
Ninguno
- Para MySQL local, MariaDB, Amazon Aurora o Microsoft Azure Database para MySQL: servidor flexible.
- Cuando se trabaja sin Pasarela Data Movement
-
Amazon RDS
Para Amazon RDS for MariaDB o Amazon RDS for MySQL.
-
Google Cloud
Para Google Cloud SQL for MySQL.
-
Microsoft Azure
Para Microsoft Azure Database for MySQL.
-
-
Server: 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
Nombre de usuario y Contraseña: el nombre de usuario y la contraseña de un usuario autorizado para acceder a la base de datos 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 obtener 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 y 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.
Preparar la instalación
-
Asegúrese de que Python 3.6 o posterior esté instalado en el servidor de la pasarela de Data Movement.
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
Instalar el paquete de visualización driver
Para descargar e instalar el driver:
-
En la máquina de la puerta de enlace de Data Movement, cambie el directorio de trabajo a:
opt/qlik/gateway/movement/drivers/bin
-
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 Data Movement. Una vez hecho esto, ejecute nuevamente el comando install mysql.
De lo contrario, se mostrará el EULA del driver.
-
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.
-
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.
Se instalará el driver.
Actualizar 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:
-
En la máquina de la puerta de enlace de Data Movement, cambie el directorio de trabajo a:
opt/qlik/gateway/movement/drivers/bin
-
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 Data Movement. Una vez hecho esto, ejecute nuevamente el comando update mysql.
De lo contrario, se mostrará el EULA del driver.
-
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.
-
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.
El driver anterior se desinstalará y se instalará el nuevo driver.
Desinstalar el driver
Ejecute el comando de desinstalación si desea desinstalar el driver.
Para desinstalar el driver:
-
Detenga todas las tareas configuradas para utilizar este conector.
-
En la máquina de la pasarela de Data Movement, cambie el directorio de trabajo a:
opt/qlik/gateway/movement/drivers/bin
-
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 Data Movement, 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 Data Movement.
En el servidor de Data Movement gateway, abra un símbolo del shell y haga lo siguiente:
-
Detenga el servicio Data Movement gateway:
sudo systemctl stop repagent
-
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
- Instale el controlador en la máquina de Data Movement gateway.
-
Cambie el directorio de trabajo a <Data Movement gateway-Install-Dir>/bin.
-
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.
-
Opcionalmente, confirme que se copió la ubicación del controlador:
cat site_arep_login.sh
-
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
-
Inicie el servicio Data Movement gateway:
sudo systemctl start repagent
-
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 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:
Cuando la opción Limit LOB size to está habilitada:
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:
Cuando la opción Limit LOB size to está habilitada:
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:
Cuando la opción Limit LOB size to está habilitada:
Para más información sobre limitar el tamaño de LOB, vea Metadata. |