Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Looker Studio

Intégration partenaire

Looker Studio peut se connecter à ClickHouse via l’interface MySQL à l’aide de la source de données MySQL officielle de Google.

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.

Écran des identifiants ClickHouse Cloud affichant le menu déroulant de sélection de l’interface MySQL

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.

Interrupteur d’activation de l’interface MySQL ClickHouse Cloud et détails de connexion

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 :

Écran de connexion du service ClickHouse Cloud avec l’option Connect mise en évidence

[object Object]

Sélectionnez MySQL dans le menu déroulant Connect With.

Écran de connexion ClickHouse Cloud affichant la sélection de l’option MySQL

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.

Écran de connexion ClickHouse Cloud avec l’interface MySQL activée affichant les détails de connexion

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 = 1

Cré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: 54

Dans 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
fbc958cc745a82188a51f30de69eebfc67c40ee4

La 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/T6L0
mysql> 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 Looker Studio à ClickHouse

Commencez par vous connecter à Looker Studio avec votre compte Google, puis créez une nouvelle source de données :

Création d’une nouvelle source de données dans l’interface Looker Studio

Recherchez le connecteur MySQL officiel fourni par Google (simplement nommé MySQL) :

Recherche du connecteur MySQL dans la liste des connecteurs de Looker Studio

Renseignez vos informations de connexion. Notez que le port de l’interface MySQL est 9004 par défaut, et qu’il peut être différent selon la configuration du serveur.

Saisie des informations de connexion MySQL à ClickHouse dans Looker Studio

Vous avez maintenant deux options pour récupérer les données depuis ClickHouse. Vous pouvez d’abord utiliser la fonctionnalité de navigation dans les tables :

Utilisation du navigateur de tables pour sélectionner des tables ClickHouse dans Looker Studio

Vous pouvez également spécifier une requête SQL personnalisée pour récupérer vos données :

Utilisation d’une requête SQL personnalisée pour récupérer des données depuis ClickHouse dans Looker Studio

Enfin, vous devriez voir la structure de la table détectée automatiquement et pouvoir ajuster les types de données si nécessaire.

Affichage de la structure de table ClickHouse détectée automatiquement dans Looker Studio

Vous pouvez maintenant explorer vos données ou créer un nouveau rapport !

Utiliser Looker Studio avec ClickHouse Cloud

Lorsque vous utilisez ClickHouse Cloud, vous devez d’abord activer l’interface MySQL. Vous pouvez le faire dans la boîte de dialogue de connexion, dans l’onglet « MySQL ».

Activation de l’interface MySQL dans les paramètres de ClickHouse Cloud

Dans l’UI de Looker Studio, sélectionnez l’option « Enable SSL ». Le certificat SSL de ClickHouse Cloud est signé par Let's Encrypt. Vous pouvez télécharger ce certificat racine ici.

Configuration de la connexion Looker Studio avec les paramètres SSL de ClickHouse Cloud

Les autres étapes sont identiques à celles indiquées ci-dessus dans la section précédente.

Navigation