Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

QuickSight

Compatible con ClickHouse

QuickSight puede conectarse a una implementación on-premise de ClickHouse (23.11+) a través de la interfaz MySQL, mediante el origen de datos oficial de MySQL y el modo Direct Query.

Configuración del servidor ClickHouse on-premise

Consulta la documentación oficial sobre cómo configurar un servidor ClickHouse con la interfaz MySQL habilitada.

Además de agregar una entrada al archivo config.xml del servidor

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

también es obligatorio usar cifrado de contraseña 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 una configuración de ejemplo para mysql_user que usa 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>

Sustituya la entrada password_double_sha1_hex por el hash Double SHA1 que haya generado.

QuickSight requiere varias opciones de configuración adicionales en el perfil del usuario MySQL.

/etc/clickhouse-server/users.d/mysql_user.xml

<profiles>
    <default>
        <prefer_column_name_to_alias>1</prefer_column_name_to_alias>
        <mysql_map_string_to_text_in_show_columns>1</mysql_map_string_to_text_in_show_columns>
        <mysql_map_fixed_string_to_text_in_show_columns>1</mysql_map_fixed_string_to_text_in_show_columns>
    </default>
</profiles>

Sin embargo, se recomienda asignarlo a un perfil diferente que pueda utilizar su usuario MySQL en lugar del predeterminado.

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

<listen_host>::</listen_host>

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) indicados 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.

Conectar QuickSight con ClickHouse

En primer lugar, ve a https://quicksight.aws.amazon.com, navega hasta Datasets y haz clic en "New dataset":

Panel de Amazon QuickSight que muestra el botón New dataset en la sección Datasets

Busca el conector oficial de MySQL incluido en QuickSight (llamado simplemente MySQL):

Pantalla de selección de origen de datos de QuickSight con MySQL resaltado en los resultados de búsqueda

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

Formulario de configuración de la conexión MySQL de QuickSight con campos para hostname, puerto, base de datos y credenciales

Ahora tienes dos opciones para obtener los datos de ClickHouse. Primero, puedes seleccionar una tabla de la lista:

Interfaz de selección de tablas de QuickSight que muestra las tablas de la base de datos disponibles en ClickHouse

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

Editor de consulta SQL personalizada de QuickSight para obtener datos de ClickHouse

Al hacer clic en "Edit/Preview data", deberías poder ver la estructura de la tabla detectada o ajustar tu consulta SQL personalizada, si decidiste acceder a los datos de ese modo:

Vista previa de datos de QuickSight que muestra la estructura de la tabla con columnas y datos de muestra

Asegúrate de tener seleccionado el modo "Direct Query" en la esquina inferior izquierda de la UI:

Interfaz de QuickSight con la opción del modo Direct Query resaltada en la esquina inferior

Ahora puedes continuar publicando tu dataset y creando una nueva visualización.

Limitaciones conocidas

  • La importación de SPICE no funciona como se espera; utilice en su lugar el modo Direct Query. Consulte #58553.
Navigation