Skip to main content
Permet de se connecter à des bases de données hébergées sur un serveur MySQL distant et d’exécuter des requêtes INSERT et SELECT pour échanger des données entre ClickHouse et MySQL. Le moteur de base de données MySQL traduit les requêtes pour le serveur MySQL, ce qui vous permet d’effectuer des opérations telles que SHOW TABLES ou SHOW CREATE TABLE. Vous ne pouvez pas exécuter les requêtes suivantes :
  • RENAME
  • CREATE TABLE
  • ALTER

Création d’une base de données

Paramètres du moteur
  • host:port — Adresse du serveur MySQL.
  • database — Nom de la base de données distante.
  • user — Utilisateur MySQL.
  • password — Mot de passe de l’utilisateur.
Réglages

enable_compression

Active la compression zlib pour la connexion via le protocole MySQL. Lorsqu’elle est définie sur 1, ClickHouse demande au serveur MySQL une compression au niveau du protocole. Valeur par défaut : 0. Exemple :

TLS/SSL

Les identifiants d’une connexion chiffrée à MySQL sont transmis sous forme de clés de collection nommée (ou d’arguments clé-valeur) : Les valeurs correspondent au contenu des fichiers PEM associés, qui peut être copié dans une collection nommée ou dans une requête. Elles sont masquées dans les journaux et les requêtes SHOW, de la même manière que les mots de passe. Les mêmes identifiants peuvent également être fournis sous forme de chemins vers des fichiers sur le serveur, dans ssl_ca, ssl_cert et ssl_key — mais uniquement dans une collection nommée définie dans le fichier de configuration du serveur ; une telle valeur ne peut pas être remplacée dans une requête. Le serveur ouvre ces fichiers avec ses propres privilèges. Accepter un chemin depuis SQL permettrait donc à tout utilisateur capable de définir une source MySQL d’explorer le système de fichiers local et de s’authentifier avec un certificat et une clé auxquels il n’est pas lui-même autorisé à accéder.

Prise en charge des types de données

La conversion des types spatiaux (à l’exception de POINT, qui est toujours converti) est contrôlée par l’option geometry du paramètre mysql_datatypes_support_level, activée par défaut. Le type de colonne générique GEOMETRY est mappé au type englobant Geometry (un Variant des types géométriques concrets). Comme une telle colonne peut contenir une valeur de n’importe quel sous-type, la lecture d’une valeur dont le sous-type n’a pas d’équivalent dans ClickHouse (GEOMETRYCOLLECTION) déclenche une exception lors de la lecture ; cette incompatibilité est acceptée en contrepartie d’un type géométrique approprié. Les colonnes déclarées avec le type GEOMETRYCOLLECTION sont converties en String, comme tous les autres types de données MySQL. Nullable est pris en charge. Une colonne spatiale est mappée à String (Nullable(String) si elle accepte les valeurs nulles) au lieu d’un type géométrique dans trois cas : elle est déclarée GEOMETRYCOLLECTION ; l’option geometry est désactivée et le type n’est pas POINT ; ou la colonne accepte les valeurs nulles et le type n’est pas POINT, car Point est le seul type géométrique qui peut être imbriqué dans Nullable. Dans les trois cas, la chaîne contient la valeur exactement telle que MySQL la renvoie : un préfixe SRID de 4 octets suivi du payload WKB. Supprimez donc ces 4 octets initiaux avant de la transmettre à un décodeur WKB.

Prise en charge des variables globales

Pour une meilleure compatibilité, vous pouvez référencer les variables globales dans le style MySQL, sous la forme @@identifier. Ces variables sont prises en charge :
  • version
  • max_allowed_packet
À ce jour, ces variables sont des stubs et ne correspondent à rien.
Exemple :

Exemples d’utilisation

Table dans MySQL :
Base de données ClickHouse échangeant des données avec le serveur MySQL :
Dernière modification le 14 août 2026