MySQL
Cette rubrique explique comment configurer la connectivité à une cible MySQL via le connecteur cible MySQL. MySQL peut être utilisé comme base de données cible dans une tâche de réplication uniquement. Avant de pouvoir vous connecter à une cible MySQL, vous devez configurer les Autorisations requises sur la base de données. Si vous vous connectez à MySQL via Data Movement gateway, vous devez également installer le pilote, comme décrit à la section Configuration du pilote.
Pour des informations sur les limitations et les considérations à prendre en compte lors de l'utilisation du connecteur MySQL, voir Limitations et considérations générales.
Définition des propriétés de connexion
Pour configurer le connecteur, procédez comme suit :
-
Dans Connexions, cliquez sur Créer une connexion.
-
Sélectionnez le connecteur cible MySQL et fournissez les paramètres suivants :
Cible de données
-
Passerelle de données : Lorsque vous travaillez avec Data Movement gateway, sélectionnez la passerelle de données qui sera utilisée pour tester la connexion à la cible MySQL. Il doit s'agir de la même passerelle que celle utilisée pour accéder à la source de données.
Note Informations- Ce champ n'est pas disponible avec l'abonnement Démarreur Qlik Talend Cloud, car Data Movement gateway n'est pas supporté avec ce niveau d'abonnement.
-
Vous devez également installer le pilote approprié sur le poste Data Movement gateway. Pour des informations détaillées, voir la section Configuration du pilote ci-dessous.
-
Fournisseur de cloud : sélectionnez l'une des options suivantes, selon les besoins :
-
Aucun
- Pour MySQL on-premises, MariaDB, Amazon Aurora ou Microsoft Azure Database for MySQL - Flexible Server.
- Lorsque vous travaillez sans Data Movement gateway
-
Amazon RDS
Pour Amazon RDS for MariaDB ou Amazon RDS for MySQL.
-
Google Cloud
Pour Google Cloud SQL for MySQL.
-
Microsoft Azure
Pour Microsoft Azure Database for MySQL.
-
-
Serveur : nom d'hôte ou adresse IP de l'ordinateur sur lequel la base de données MySQL est installée.
-
Port : port utilisé lors de la connexion à la base de données. Le port 3306 est le port par défaut.
Propriétés de compte
Nom d'utilisateur et Mot de passe : nom d'utilisateur et mot de passe d'un utilisateur autorisé à accéder à la base de données MySQL Server.
Propriétés de base de données
- Target Database Type : sélectionnez l'une des options suivantes :
- Specific database : lorsque cette option est sélectionnée, tous les schémas sources sont chargés dans la Database (Base de données) spécifiée.
- Multiple databases : lorsque cette option est sélectionnée, chacun des schémas sources est chargé dans sa base de données correspondante. De plus, par défaut, l'ensemble des tables de contrôle sont répliquées dans un nouveau schéma appelé attrep_control. Pour plus d'informations sur les tables de contrôle, voir Tables de contrôle.
- Max file size (KB) : sélectionnez ou saisissez la taille maximale (en Ko) d'un fichier CSV avant qu'il soit chargé dans la base de données cible MySQL. La valeur par défaut est 32 000 Ko.
- Parallel load threads : l'augmentation du nombre de threads peut améliorer les performances lors du chargement de données dans la base de données cible MySQL. Notez que la définition d'un grand nombre de threads peut avoir un effet inverse sur les performances de la base de données, étant donné qu'une connexion distincte est nécessaire pour chaque thread.
Propriétés internes
Les propriétés internes s'adressent à des cas d'utilisation spéciaux et ne sont par conséquent pas exposées dans la boîte de dialogue. Utilisez-les uniquement si Qlik Support vous le demande.
Utilisez les boutons et à droite des champs pour ajouter ou supprimer des propriétés, suivant les besoins.
Nom
Nom d'affichage de la connexion.
Conditions préalables requises
Autorisations requises
L'utilisateur spécifié dans les paramètres du connecteur doit être titulaire des droits suivants :
- Accès au compte MySQL
- Privilèges Lecture/Écriture dans la base de données MySQL
- Autorisations suivantes pour chaque schéma cible impliqué dans la réplication :
- ALTER
- CREATE
- CREATE TEMPORARY TABLES
- DELETE
- DROP
- INSERT
- SELECT
- UPDATE
Configuration du pilote
Cette section explique comment installer le driver requis. Le processus implique l'exécution d'un script qui téléchargera, installera et configurera automatiquement le driver requis. Vous pouvez également exécuter des scripts permettant de mettre à jour et de désinstaller le driver, si nécessaire.
Préparation de l'installation
-
Assurez-vous que Python 3.6 ou une version ultérieure est installé sur le serveur de passerelle Déplacement des données.
Python est préinstallé sur la plupart des distributions Linux. Vous pouvez vérifier la version de Python installée sur votre système en exécutant la commande suivante :
python3 --version
Installation de driver
Pour télécharger et installer le driver :
-
Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :
opt/qlik/gateway/movement/drivers/bin
-
Exécutez la commande suivante :
Syntaxe :
./install mysql
Si le driver ne peut pas être téléchargé (en raison de restrictions d'accès ou de problèmes techniques), un message s'affichera, vous indiquant où télécharger et copier le driver sur le poste de passerelle Déplacement des données. Une fois que c'est fait, exécutez de nouveau la commande install mysql.
Sinon, le CLUF du driver apparaîtra.
-
Procédez de l'une des manières suivantes :
- Appuyez à plusieurs reprises sur [Entrée] pour parcourir lentement le CLUF.
- Appuyez à plusieurs reprises sur la barre d'espace pour parcourir rapidement le CLUF.
- Appuyez sur q pour quitter le texte de licence et faire apparaître les options d'acceptation du CLUF.
-
Procédez de l'une des manières suivantes :
- Saisissez « y » et appuyez sur [Entrée] pour accepter le CLUF et démarrer l'installation.
- Saisissez « n » et appuyez sur [Entrée] pour rejeter le CLUF et quitter l'installation.
-
Saisissez « v » et appuyez sur [Entrée] pour afficher de nouveau le CLUF.
Le driver sera installé.
Mise à jour du driver
Exécutez la commande update si vous souhaitez désinstaller des versions précédentes du driver avant d'installer le driver fourni.
Pour télécharger et mettre à jour le driver :
-
Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :
opt/qlik/gateway/movement/drivers/bin
-
Exécutez la commande suivante :
Syntaxe :
./update mysql
Si le driver ne peut pas être téléchargé (en raison de restrictions d'accès ou de problèmes techniques), un message s'affichera, vous indiquant où télécharger et copier le driversur le poste de passerelle Déplacement des données. Une fois que c'est fait, exécutez de nouveau la commande update mysql.
Sinon, le CLUF du driver apparaîtra.
-
Procédez de l'une des manières suivantes :
- Appuyez à plusieurs reprises sur [Entrée] pour parcourir lentement le CLUF.
- Appuyez à plusieurs reprises sur la barre d'espace pour parcourir rapidement le CLUF.
- Appuyez sur q pour quitter le texte de licence et faire apparaître les options d'acceptation du CLUF.
-
Procédez de l'une des manières suivantes :
- Saisissez « y » et appuyez sur [Entrée] pour accepter le CLUF et démarrer l'installation.
- Saisissez « n » et appuyez sur [Entrée] pour rejeter le CLUF et quitter l'installation.
- Saisissez « v » et appuyez sur [Entrée] pour passer le CLUF en revue depuis le début.
L'ancien driver sera désinstallé et le nouveau driver sera installé.
Désinstallation du driver
Exécutez la commande uninstall si vous souhaitez désinstaller le driver.
Pour désinstaller le driver :
-
Arrêtez toutes les tâches configurées pour utiliser ce connecteur.
-
Sur le poste de passerelle Déplacement des données, remplacez le répertoire de travail par :
opt/qlik/gateway/movement/drivers/bin
-
Exécutez la commande suivante :
Syntaxe :
./uninstall mysql
le driver sera désinstallé.
Installation manuelle du pilote
Vous devez tenter d'installer manuellement le driver uniquement si l'installation de pilote automatisée n'a pas fonctionné.
Une fois la Data Movement gateway installée, téléchargez le pilote mysql-connector-odbc-<version>.x86_64.rpm. Vous trouverez un lien de téléchargement direct vers la version prise en charge sous binary-artifacts dans /opt/qlik/gateway/movement/drivers/manifests/mysql.yaml. Une fois le téléchargement terminé, copiez le RPM sur le poste Data Movement gateway.
Sur le serveur Data Movement gateway, ouvrez une invite shell et procédez comme suit :
-
Arrêtez le service Data Movement gateway :
sudo systemctl stop repagent
-
Confirmez éventuellement l'arrêt du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: inactive (dead) since <timestamp> ago
- Installez le pilote sur le poste Data Movement gateway.
-
Remplacez le répertoire de travail par <Data Movement gateway-Install-Dir>/bin.
-
Copiez l'emplacement du pilote dans le fichier site_arep_login.sh :
echo "export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/lib64" >> site_arep_login.sh
Le pilote est ainsi ajouté à « LD_LIBRARY_PATH » et son emplacement est mis à jour dans le fichier site_arep_login.sh.
-
Confirmez éventuellement que l'emplacement du pilote a été copié :
cat site_arep_login.sh
-
Vérifiez si le fichier /etc/odbcinst.ini contient une entrée pour MySQL, comme dans l'exemple suivant :
[MySQL ODBC 8.0 Unicode Driver]
Driver = /usr/lib64/libmyodbc8w.so
UsageCount = 1
-
Démarrez le service Data Movement gateway :
sudo systemctl start repagent
-
Confirmez éventuellement le lancement du service :
sudo systemctl status repagent
Le statut doit être comme suit :
Active: active (running) since <timestamp> ago
Limitations et considérations générales
Lors de l'utilisation de MySQL comme cible de réplication, les limitations suivantes s'appliquent :
-
Lors d'une réplication dans la base de données cible MariaDB, si la valeur DATETIME est définie sur zéro, vous devez définir une transformation qui remplace DATETIME par des valeurs valides. Par exemple :
replace($datetime_column,'9999-12-31 23:59:59','2000-01-01 22:00:00')
Note InformationsCette limitation ne s'applique pas à la base de données Microsoft Azure pour MySQL. - En raison du mode opératoire de MySQL, lors du chargement de données dans une cible MySQL au cours d'une tâche Chargement complet, les erreurs de clés dupliquées ne seront pas signalées dans les journaux.
-
Lors de la mise à jour de la valeur d'une colonne pour la remplacer par sa valeur existante, un résultat de zéro ligne affectée est renvoyé par MySQL (contrairement à Oracle et Microsoft SQL Server qui effectuent une mise à jour d'une ligne).
Cela génère une entrée dans la attrep_apply_exceptions Control Table et l'avertissement suivant :
Some changes from the source database had no impact when applied to the target database. See attrep_apply_exceptions table for details.
-
En raison d'un problème avec MySQL 5.7 (qui a été résolu dans la version 8.0), les caractères multioctets ne peuvent pas être insérés dans les colonnes TEXT lorsque Chargement complet utilise des fichiers CSV. Par conséquent, si le point de terminaison cible est MySQL 5.7 et si une table répliquée contient des colonnes TEXT avec des caractères multioctets UTF-8, il se peut que la table cible soit vide.
Solution de contournement :
Dans les paramètres de connecteur, définissez le paramètre interne loadUsingCSV sur FALSE. Notez que cela peut avoir un impact sur les performances.
-
Si vous devez répliquer des caractères emoji de 4 octets, le jeu de caractères du schéma cible doit être défini sur utf8mb4.
Types de données
Les informations de type de données natif sont préservées et affichées dans la colonne Type de données natif des vues d'ensemble de données. Si la colonne n'est pas visible, vous devez ouvrir le sélecteur de colonnes de la vue d'ensemble de données et sélectionner la colonne Type de données natif.
Types de données Qlik Cloud | Types de données MySQL |
---|---|
BOOL |
BOOL |
BYTES |
Si longueur est => 1 et =< 8 095 : VARBINARY (Longueur) Si longueur est => 8 096 et =< 65 535 : BLOB Si longueur est => 65 536 et =< 16 777 215 : MEDIUMBLOB Si longueur est => 16 777 216 et =< 2 147 483 647 : LONGBLOB |
DATE |
DATE |
TIME |
TIME |
DATETIME |
Si l'échelle est => 0 et =< 6 : DECIMAL (p,s) Si l'échelle est => 7 et =< 12 : VARCHAR (37) |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INTEGER |
INT8 |
BIGINT |
NUMERIC |
Si échelle est => 0 et =< 30 : DECIMAL (p,s) Si échelle est => 31 et =< 100 : VARCHAR (45) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
STRING |
Si longueur est => 1 et =< 8 095 : VARCHAR (Longueur) Si longueur est => 8 096 et =< 65 535 : TEXT Si longueur est => 65 536 et =< 16 777 215 : MEDIUMTEXT Si longueur est => 16 777 216 et =< 2 147 483 647 : LONGTEXT |
UINT1 |
UNSIGNED TINYINT |
UINT2 |
UNSIGNED SMALLINT |
UINT4 |
UNSIGNED INTEGER |
UINT8 |
UNSIGNED BIGINT |
WSTRING |
Si longueur est => 1 et =< 8 095 : VARCHAR (Longueur) Si longueur est => 8 096 et =< 65 535 : TEXT Si longueur est => 65 536 et =< 16 777 215 : MEDIUMTEXT Si longueur est => 16 777 216 et =< 2 147 483 647 : LONGTEXT |
BLOB |
Lorsque l'option Autoriser une taille de LOB illimitée est activée :
Lorsque l'option Limiter la taille de LOB à est activée :
Pour des informations sur la limitation de la taille de LOB, voir Metadata. |
NCLOB |
Lorsque l'option Autoriser une taille de LOB illimitée est activée :
Lorsque l'option Limiter la taille de LOB à est activée :
Pour des informations sur la limitation de la taille de LOB, voir Metadata. |
CLOB |
Lorsque l'option Autoriser une taille de LOB illimitée est activée :
Lorsque l'option Limiter la taille de LOB à est activée :
Pour des informations sur la limitation de la taille de LOB, voir Metadata. |