Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Looker Studio

Integración de partner

Looker Studio puede conectarse a ClickHouse mediante la interfaz MySQL y la fuente de datos MySQL oficial de Google.

Configuración de ClickHouse Cloud

[object Object]

Después de crear tu servicio de ClickHouse Cloud, en la pantalla Connect your app, selecciona MySQL en el menú desplegable.

Pantalla de credenciales de ClickHouse Cloud que muestra el menú desplegable para seleccionar la interfaz MySQL

Habilita la interfaz MySQL

Activa el interruptor para habilitar la interfaz MySQL para este servicio específico. Esto expondrá el puerto 3306 para este servicio y te mostrará una pantalla de conexión MySQL que incluye tu nombre de usuario MySQL único.

Interruptor para habilitar la interfaz MySQL en ClickHouse Cloud y detalles de conexión

Como alternativa, para habilitar la interfaz MySQL en un servicio existente:

[object Object]

Asegúrate de que tu servicio esté en estado Running y luego haz clic en el servicio para el que quieres habilitar la interfaz MySQL. Selecciona "Connect" en el menú de la izquierda:

Pantalla de conexión del servicio de ClickHouse Cloud con la opción Connect resaltada

[object Object]

Selecciona MySQL en el menú desplegable Connect With.

Pantalla de conexión de ClickHouse Cloud que muestra la selección de la opción MySQL

Habilita la interfaz MySQL

Activa el interruptor para habilitar la interfaz MySQL para este servicio específico. Esto expondrá el puerto 3306 para este servicio y te mostrará la pantalla de conexión MySQL, que incluye tu nombre de usuario MySQL único.

Pantalla de conexión de ClickHouse Cloud con la interfaz MySQL habilitada que muestra los detalles de conexión

Crear un usuario MySQL de solo lectura en ClickHouse Cloud

ClickHouse Cloud crea automáticamente un usuario mysql4<subdomain> que comparte la misma contraseña que el usuario predeterminado. La parte <subdomain> corresponde a la primera parte del hostname de tu servicio de ClickHouse Cloud.

Este formato de nombre de usuario es necesario para mantener la compatibilidad con herramientas que establecen conexiones seguras, pero no incluyen datos de SNI (Server Name Indication) en el handshake de TLS. Sin información de SNI, el sistema no puede realizar correctamente el enrutamiento interno, por lo que la pista del subdominio integrada en el nombre de usuario proporciona la información de enrutamiento necesaria. El cliente de consola de MySQL es un ejemplo de herramienta que lo requiere.

Crear un perfil de configuración de solo lectura

Crea un perfil de configuración para aplicárselo a tu usuario de solo lectura, estableciendo la configuración readonly en 1:

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

Crear un nuevo usuario MySQL de solo lectura

Crea un usuario con un nombre que siga este formato:

mysql4<subdomain>_<username>

Aplica readonly_profile al nuevo usuario y asegúrate de que la contraseña esté en formato double SHA1. Por ejemplo:

CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';

Conceder al nuevo usuario permisos para acceder a las tablas deseadas

Concede al nuevo usuario los permisos necesarios para interactuar con las tablas o bases de datos que quieras. Por ejemplo, si quieres conceder acceso solo a system.query_log:

GRANT SELECT ON system.query_log TO mysql4foobar_readonly;

El usuario recién creado puede usarse para conectarse a tu servicio de ClickHouse Cloud mediante la interfaz MySQL.

Solución de problemas con varios usuarios MySQL en ClickHouse Cloud

Si ha creado un nuevo usuario MySQL y ve el siguiente error al conectarse mediante el cliente MySQL CLI:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54

En este caso, asegúrate de que el nombre de usuario siga el formato mysql4<subdomain>_<username>, tal como se describe (más arriba).

Configuración del servidor ClickHouse on-premise

Consulte la documentación oficial para saber cómo configurar un servidor ClickHouse con la interfaz MySQL habilitada.

Además de añadir una entrada al config.xml del servidor

<clickhouse>
    <mysql_port>9004</mysql_port>
</clickhouse>

también es obligatorio usar cifrado de contraseña con Double SHA1 para el usuario que utilizará la interfaz MySQL.

Generar desde la shell una contraseña aleatoria cifrada con Double SHA1:

PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

La salida debería verse así:

LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4

La primera línea es la contraseña generada, y la segunda es el hash que podemos usar para configurar ClickHouse.

Aquí tienes un ejemplo de configuración para mysql_user que utiliza el hash generado:

/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>

Reemplace la entrada password_double_sha1_hex por su propio hash Double SHA1 generado.

Además, se recomienda usar use_mysql_types_in_show_columns para mostrar los tipos nativos de MySQL en lugar de los de ClickHouse en los resultados de la consulta SHOW [FULL] COLUMNS, lo que permite a las herramientas de BI inspeccionar correctamente el esquema de la base de datos al usar conectores de MySQL.

Por ejemplo:

/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>

o asígnalo a un perfil distinto en lugar del perfil predeterminado.

Si tienes disponible el binario mysql, puedes probar la conexión desde la línea de comandos. Usando el nombre de usuario de ejemplo (mysql_user) y la contraseña (LZOQYnqQN4L/T6L0) mencionados arriba, el comando sería:

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.

Por último, configure el servidor de ClickHouse para que escuche en la(s) dirección(es) IP deseada(s). Por ejemplo, en config.xml, descomente lo siguiente para que escuche en todas las direcciones:

<listen_host>::</listen_host> 

Conectar Looker Studio a ClickHouse

Primero, inicia sesión en Looker Studio con tu cuenta de Google y crea una nueva fuente de datos:

Creación de una nueva fuente de datos en la interfaz de Looker Studio

Busca el conector oficial de MySQL proporcionado por Google (llamado simplemente MySQL):

Búsqueda del conector MySQL en la lista de conectores de Looker Studio

Especifica los datos de conexión. Ten en cuenta que el puerto de la interfaz MySQL es 9004 de forma predeterminada y puede variar según la configuración del servidor.

Especificación de los datos de conexión MySQL de ClickHouse en Looker Studio

Ahora tienes dos opciones para obtener los datos de ClickHouse. Primero, puedes usar la función Table Browser:

Uso de Table Browser para seleccionar tablas de ClickHouse en Looker Studio

Como alternativa, puedes especificar una consulta SQL personalizada para obtener tus datos:

Uso de una consulta SQL personalizada para obtener datos de ClickHouse en Looker Studio

Por último, deberías poder ver la estructura de la tabla detectada automáticamente y ajustar los tipos de datos si es necesario.

Visualización de la estructura de la tabla de ClickHouse detectada automáticamente en Looker Studio

¡Ahora puedes seguir explorando tus datos o crear un informe nuevo!

Uso de Looker Studio con ClickHouse Cloud

Si usas ClickHouse Cloud, primero debes habilitar la interfaz MySQL. Puedes hacerlo en el cuadro de diálogo de conexión, en la pestaña "MySQL".

Habilitación de la interfaz MySQL en la configuración de ClickHouse Cloud

En la UI de Looker Studio, selecciona la opción "Enable SSL". El certificado SSL de ClickHouse Cloud está firmado por Let's Encrypt. Puedes descargar este certificado raíz aquí.

Configuración de la conexión de Looker Studio con los ajustes SSL de ClickHouse Cloud

El resto de los pasos son los mismos que se indican en la sección anterior.

Navigation