Tableau Online peut se connecter à ClickHouse Cloud ou à un déploiement ClickHouse sur site via l’interface MySQL, à l’aide de la source de données MySQL officielle.
Configuration de ClickHouse Cloud
[object Object]
Après avoir créé votre service ClickHouse Cloud, dans l’écran Connect your app, sélectionnez MySQL dans le menu déroulant.

Activer l’interface MySQL
Basculez l’interrupteur pour activer l’interface MySQL pour ce service.
Cela ouvrira le port 3306 pour ce service et affichera un écran de connexion MySQL avec votre nom d’utilisateur MySQL unique.

Sinon, pour activer l’interface MySQL pour un service existant :
[object Object]
Assurez-vous que votre service est à l’état Running, puis cliquez sur le service pour lequel vous souhaitez activer l’interface MySQL.
Sélectionnez "Connect" dans le menu de gauche :

[object Object]
Sélectionnez MySQL dans le menu déroulant Connect With.

Activer l’interface MySQL
Basculez l’interrupteur pour activer l’interface MySQL pour ce service.
Cela ouvrira le port 3306 pour ce service et affichera votre écran de connexion MySQL, avec votre nom d’utilisateur MySQL unique.

Création d’un utilisateur MySQL readonly dans ClickHouse Cloud
ClickHouse Cloud crée automatiquement un utilisateur mysql4<subdomain> qui partage le même mot de passe que l’utilisateur default.
La partie <subdomain> correspond à la première partie du nom d’hôte de votre instance ClickHouse Cloud.
Ce format de nom d’utilisateur est requis pour assurer la compatibilité avec les outils qui établissent des connexions sécurisées mais n’incluent pas les données SNI (Server Name Indication) dans leur handshake TLS. Sans informations SNI, le système ne peut pas effectuer le routage interne correctement ; l’indication de sous-domaine intégrée au nom d’utilisateur fournit donc les informations de routage nécessaires. Le client de console MySQL est un exemple d’outil qui en a besoin.
Créer un profil de paramètres `readonly`
Créez un profil de paramètres à appliquer à votre utilisateur readonly,
en définissant le paramètre readonly sur 1 :
CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1Créer un nouvel utilisateur MySQL `readonly`
Créez un utilisateur avec un nom respectant ce format :
mysql4<subdomain>_<username>Appliquez readonly_profile au nouvel utilisateur et assurez-vous que le mot de passe est au format double SHA1. Par exemple :
CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';Accorder au nouvel utilisateur les permissions nécessaires pour accéder aux tables souhaitées
Accordez au nouvel utilisateur les permissions nécessaires pour interagir avec les tables ou bases de données souhaitées.
Par exemple, si vous souhaitez accorder l’accès uniquement à system.query_log :
GRANT SELECT ON system.query_log TO mysql4foobar_readonly;L’utilisateur nouvellement créé peut être utilisé pour se connecter à votre service ClickHouse Cloud via l’interface MySQL.
Troubleshooting de plusieurs utilisateurs MySQL dans ClickHouse Cloud
Si vous avez créé un nouvel utilisateur MySQL et que l’erreur suivante s’affiche lorsque vous vous connectez via le client MySQL en CLI :
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54Dans ce cas, assurez-vous que le nom d’utilisateur respecte le format mysql4<subdomain>_<username>, comme indiqué (ci-dessus).
Configuration d’un serveur ClickHouse sur site
Veuillez consulter la documentation officielle pour savoir comment configurer un serveur ClickHouse avec l’interface MySQL activée.
Outre l’ajout d’une entrée au config.xml du serveur
<clickhouse>
<mysql_port>9004</mysql_port>
</clickhouse>il est également nécessaire d’utiliser le chiffrement de mot de passe Double SHA1 pour l’utilisateur qui utilisera l’interface MySQL.
Génération d’un mot de passe aléatoire chiffré en Double SHA1 depuis le shell :
PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'Le résultat devrait ressembler à ce qui suit :
LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4La première ligne correspond au mot de passe généré, et la deuxième au hash que nous pouvons utiliser pour configurer ClickHouse.
Voici un exemple de configuration pour mysql_user utilisant le hash généré :
/etc/clickhouse-server/users.d/mysql_user.xml
<users>
<mysql_user>
<password_double_sha1_hex>fbc958cc745a82188a51f30de69eebfc67c40ee4</password_double_sha1_hex>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</mysql_user>
</users>Remplacez l’entrée password_double_sha1_hex par votre propre hachage Double SHA1 généré.
De plus, il est recommandé d’utiliser use_mysql_types_in_show_columns
pour afficher les types MySQL natifs au lieu de ceux de ClickHouse dans les résultats de la requête SHOW [FULL] COLUMNS,
ce qui permet aux outils de BI d’inspecter correctement le schéma de la base de données lors de l’utilisation de connecteurs MySQL.
Par exemple :
/etc/clickhouse-server/users.d/mysql_user.xml
<profiles>
<default>
<use_mysql_types_in_show_columns>1</use_mysql_types_in_show_columns>
</default>
</profiles>ou l’affecter à un profil différent plutôt qu’au profil par défaut.
Si le binaire mysql est disponible, vous pouvez tester la connexion depuis la ligne de commande.
En utilisant l’exemple de nom d’utilisateur (mysql_user) et de mot de passe (LZOQYnqQN4L/T6L0) ci-dessus, la ligne de commande serait :
mysql --protocol tcp -h localhost -u mysql_user -P 9004 --password=LZOQYnqQN4L/T6L0mysql> show databases;
+--------------------+
| name |
+--------------------+
| INFORMATION_SCHEMA |
| default |
| information_schema |
| system |
+--------------------+
4 rows in set (0.00 sec)
Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.Enfin, configurez le serveur ClickHouse pour qu’il écoute sur la ou les adresses IP souhaitées. Par exemple, dans config.xml, décommentez les lignes suivantes pour écouter sur toutes les adresses :
<listen_host>::</listen_host> Connexion de Tableau Online à ClickHouse (sur site sans SSL)
Connectez-vous à votre site Tableau Cloud et ajoutez une nouvelle source de données publiée.

Sélectionnez "MySQL" dans la liste des connecteurs disponibles.

Renseignez les informations de connexion recueillies lors de la configuration de ClickHouse.

Tableau Online inspectera la base de données et affichera la liste des tables disponibles. Faites glisser la table souhaitée vers le canevas à droite. Vous pouvez également cliquer sur "Update Now" pour prévisualiser les données, ainsi qu'affiner les types ou les noms des champs détectés.

Après cela, il ne vous reste plus qu'à cliquer sur "Publish As" en haut à droite, et vous pourrez utiliser normalement dans Tableau Online le jeu de données nouvellement créé.
N.B. : si vous souhaitez utiliser Tableau Online avec Tableau Desktop et partager des jeux de données ClickHouse entre les deux, veillez à utiliser également dans Tableau Desktop le connecteur MySQL par défaut, en suivant le guide de configuration affiché ici si vous sélectionnez MySQL dans la liste déroulante source de données. Si vous avez un Mac M1, consultez ce fil de dépannage pour contourner le problème d'installation du pilote.
Connexion de Tableau Online à ClickHouse (configuration Cloud ou sur site avec SSL)
Comme il n’est pas possible de fournir les certificats SSL via l’assistant de configuration de connexion MySQL de Tableau Online, la seule solution consiste à utiliser Tableau Desktop pour configurer la connexion, puis à l’exporter vers Tableau Online. Le processus reste toutefois assez simple.
Lancez Tableau Desktop sur une machine Windows ou Mac, puis sélectionnez "Connect" -> "To a Server" -> "MySQL". Il sera probablement nécessaire d’installer d’abord le pilote MySQL sur votre machine. Vous pouvez le faire en suivant le guide de configuration affiché ici après avoir sélectionné MySQL dans la liste déroulante Source de données. Si vous utilisez un Mac M1, consultez ce fil de dépannage pour une solution de contournement concernant l’installation du pilote.

Saisissez les credentials de votre utilisateur MySQL de l’instance ClickHouse Cloud, ainsi que le chemin vers le certificat racine téléchargé.

Choisissez les tables souhaitées comme d’habitude (comme dans Tableau Online), puis sélectionnez "Server" -> "Publish Data Source" -> Tableau Cloud.

IMPORTANT : vous devez sélectionner "Embedded password" dans les options "Authentication".

En outre, choisissez "Update workbook to use the published data source".

Enfin, cliquez sur "Publish" et votre source de données avec credentials intégrés s’ouvrira automatiquement dans Tableau Online.
Limitations connues (ClickHouse 23.11)
Toutes les limitations connues ont été résolues dans ClickHouse 23.11. Si vous rencontrez d'autres incompatibilités, n'hésitez pas à nous contacter ou à créer un nouveau ticket.