Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Connecter ClickHouse à des sources de données externes via JDBC

Vue d’ensemble : ClickHouse JDBC Bridge, combiné à la fonction de table jdbc ou au moteur de table JDBC, permet à ClickHouse d’accéder aux données de toute source de données externe pour laquelle un pilote JDBC est disponible :

Schéma d’architecture de ClickHouse JDBC Bridge

C’est pratique lorsqu’il n’existe ni integration engine, ni table function native intégrée, ni dictionnaire externe pour la source de données externe, mais qu’un pilote JDBC est disponible pour cette source.

Vous pouvez utiliser ClickHouse JDBC Bridge à la fois pour les lectures et les écritures. Il peut également être utilisé en parallèle avec plusieurs sources de données externes ; par exemple, vous pouvez exécuter des distributed queries sur ClickHouse sur plusieurs sources de données externes et internes en temps réel.

Dans cette leçon, nous allons vous montrer à quel point il est facile d’installer, de configurer et d’exécuter ClickHouse JDBC Bridge afin de connecter ClickHouse à une source de données externe. Nous utiliserons MySQL comme source de données externe pour cette leçon.

C’est parti !

Installer ClickHouse JDBC Bridge localement

Le moyen le plus simple d’utiliser ClickHouse JDBC Bridge est de l’installer et de l’exécuter sur le même hôte que celui sur lequel ClickHouse s’exécute :

Schéma de déploiement local de ClickHouse JDBC Bridge

Commençons par nous connecter au shell Unix de la machine sur laquelle ClickHouse s’exécute, puis par créer un dossier local dans lequel nous installerons plus tard ClickHouse JDBC Bridge (n’hésitez pas à donner à ce dossier le nom de votre choix et à le placer où vous voulez) :

mkdir ~/clickhouse-jdbc-bridge

Téléchargez maintenant la version actuelle du ClickHouse JDBC Bridge dans ce dossier :

cd ~/clickhouse-jdbc-bridge
wget https://github.com/ClickHouse/clickhouse-jdbc-bridge/releases/download/v2.0.7/clickhouse-jdbc-bridge-2.0.7-shaded.jar

Pour pouvoir se connecter à MySQL, nous créons une source de données nommée :

 cd ~/clickhouse-jdbc-bridge
 mkdir -p config/datasources
 touch config/datasources/mysql8.json

Vous pouvez maintenant copier-coller la configuration suivante dans le fichier ~/clickhouse-jdbc-bridge/config/datasources/mysql8.json :

 {
   "mysql8": {
   "driverUrls": [
     "https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar"
   ],
   "jdbcUrl": "jdbc:mysql://<host>:<port>",
   "username": "<username>",
   "password": "<password>"
   }
 }

Nous sommes maintenant prêts à démarrer le ClickHouse JDBC Bridge :

 cd ~/clickhouse-jdbc-bridge
 java -jar clickhouse-jdbc-bridge-2.0.7-shaded.jar

Utiliser la connexion JDBC depuis ClickHouse

ClickHouse peut désormais accéder aux données MySQL soit via la fonction de table jdbc, soit via le moteur de table JDBC.

Le moyen le plus simple d'exécuter les exemples suivants est de les copier-coller dans le clickhouse-client ou dans l'interface Play.

  • Fonction de table jdbc :
 SELECT * FROM jdbc('mysql8', 'mydatabase', 'mytable');
  • Moteur de table JDBC :
 CREATE TABLE mytable (
      <column> <column_type>,
      ...
 )
 ENGINE = JDBC('mysql8', 'mydatabase', 'mytable');

 SELECT * FROM mytable;

Installer ClickHouse JDBC Bridge à l’extérieur

Pour un cluster ClickHouse distribué (c’est-à-dire un cluster comportant plus d’un hôte ClickHouse), il est pertinent d’installer et d’exécuter ClickHouse JDBC Bridge à l’extérieur, sur un hôte dédié :

Schéma de déploiement externe de ClickHouse JDBC Bridge

L’avantage est que chaque hôte ClickHouse peut accéder à JDBC Bridge. Sinon, JDBC Bridge devrait être installé localement sur chaque instance ClickHouse censée accéder à des sources de données externes via le Bridge.

Pour installer ClickHouse JDBC Bridge à l’extérieur, procédez comme suit :

  1. Installez, configurez et exécutez ClickHouse JDBC Bridge sur un hôte dédié en suivant les étapes décrites dans la section 1 de ce guide.

  2. Sur chaque hôte ClickHouse, ajoutez le bloc de configuration suivant à la configuration du serveur ClickHouse (selon le format de configuration choisi, utilisez la version XML ou YAML) :

<jdbc_bridge>
   <host>JDBC-Bridge-Host</host>
   <port>9019</port>
</jdbc_bridge>
Navigation