Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Tableau Online

Tableau Online puede conectarse a ClickHouse Cloud o a una implementación on-premise de ClickHouse a través de la interfaz MySQL mediante la fuente de datos oficial de MySQL.

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 de 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 Tableau Online a ClickHouse (on-premise sin SSL)

Inicia sesión en tu sitio de Tableau Cloud y añade un nuevo origen de datos publicado.

Interfaz de Tableau Online que muestra el botón 'New' para crear un origen de datos publicado

Selecciona "MySQL" en la lista de conectores disponibles.

Pantalla de selección de conectores de Tableau Online con la opción MySQL resaltada

Especifica los datos de conexión recopilados durante la configuración de ClickHouse.

Pantalla de configuración de la conexión MySQL de Tableau Online con campos para servidor, puerto, base de datos y credenciales

Tableau Online inspeccionará la base de datos y proporcionará una lista de tablas disponibles. Arrastra la tabla deseada al lienzo de la derecha. Además, puedes hacer clic en "Update Now" para obtener una vista previa de los datos, así como ajustar los tipos o nombres de los campos detectados.

Página de origen de datos de Tableau Online que muestra las tablas de la base de datos a la izquierda y el lienzo a la derecha con funcionalidad de arrastrar y soltar

Después de eso, solo queda hacer clic en "Publish As" en la esquina superior derecha, y deberías poder usar en Tableau Online el conjunto de datos recién creado como de costumbre.

NB: si quieres usar Tableau Online junto con Tableau Desktop y compartir conjuntos de datos de ClickHouse entre ambos, asegúrate de usar Tableau Desktop también con el conector MySQL predeterminado, siguiendo la guía de configuración que se muestra aquí si seleccionas MySQL en el menú desplegable origen de datos. Si tienes un Mac M1, consulta este hilo de solución de problemas para ver una solución alternativa para la instalación del controlador.

Conectar Tableau Online a ClickHouse (configuración en la nube o on-premise con SSL)

Como no es posible proporcionar los certificados SSL mediante el asistente de configuración de conexiones MySQL de Tableau Online, la única opción es usar Tableau Desktop para configurar la conexión y después exportarla a Tableau Online. Aun así, el proceso es bastante sencillo.

Ejecute Tableau Desktop en un equipo con Windows o Mac y seleccione "Conectar" -> "A un servidor" -> "MySQL". Es probable que antes tenga que instalar el driver de MySQL en su equipo. Puede hacerlo siguiendo la guía de configuración que se muestra aquí si selecciona MySQL en el menú desplegable de fuente de datos. Si tiene un Mac con M1, consulte este hilo de resolución de problemas para ver una solución alternativa para la instalación del driver.

Interfaz de Tableau Desktop que muestra el menú Conectar con la opción MySQL resaltada

Introduzca las credenciales del usuario MySQL de su instancia de ClickHouse Cloud y la ruta al certificado raíz descargado.

Cuadro de diálogo de conexión MySQL de Tableau Desktop con la opción SSL habilitada y campos para servidor, nombre de usuario, contraseña y certificado

Elija las tablas deseadas como de costumbre (igual que en Tableau Online) y seleccione "Servidor" -> "Publicar origen de datos" -> Tableau Cloud.

Tableau Desktop mostrando el menú Servidor con la opción Publicar origen de datos resaltada

IMPORTANTE: debe seleccionar "Contraseña incrustada" en las opciones de "Autenticación".

Cuadro de diálogo de publicación de Tableau Desktop que muestra las opciones de Autenticación con Contraseña incrustada seleccionada

Además, elija "Actualizar libro de trabajo para usar el origen de datos publicado".

Cuadro de diálogo de publicación de Tableau Desktop con la opción 'Actualizar libro de trabajo para usar el origen de datos publicado' marcada

Por último, haga clic en "Publicar" y el origen de datos con las credenciales incrustadas se abrirá automáticamente en Tableau Online.

Limitaciones conocidas (ClickHouse 23.11)

Todas las limitaciones conocidas se han solucionado en ClickHouse 23.11. Si encuentra cualquier otra incompatibilidad, no dude en ponerse en contacto con nosotros o en crear una nueva incidencia.

Navigation