O QuickSight pode se conectar a uma instalação on-premise do ClickHouse (23.11+) pela interface MySQL, usando a fonte de dados oficial do MySQL e o modo Direct Query.
Configuração do servidor ClickHouse on-premise
Consulte a documentação oficial para saber como configurar um servidor ClickHouse com a interface MySQL habilitada.
Além de adicionar uma entrada ao config.xml do servidor
<clickhouse>
<mysql_port>9004</mysql_port>
</clickhouse>também é obrigatório usar criptografia de senha Double SHA1 para o usuário que usará a interface MySQL.
Gerando uma senha aleatória criptografada com Double SHA1 no shell:
PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'A saída deve ser semelhante ao exemplo abaixo:
LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4A primeira linha é a senha gerada, e a segunda é o hash que podemos usar para configurar o ClickHouse.
Aqui está um exemplo de configuração para mysql_user que usa o hash gerado:
/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>Substitua a entrada password_double_sha1_hex pelo hash Double SHA1 gerado por você.
O QuickSight exige várias configurações adicionais no perfil do usuário 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>No entanto, recomenda-se atribuí-lo a um perfil diferente, que seu usuário MySQL possa usar, em vez do perfil padrão.
Por fim, configure o servidor ClickHouse para ouvir no(s) endereço(s) IP desejado(s).
Em config.xml, descomente o trecho a seguir para ouvir em todos os endereços:
<listen_host>::</listen_host>Se você tiver o binário mysql disponível, poderá testar a conexão pela linha de comando.
Usando o nome de usuário de exemplo (mysql_user) e a senha (LZOQYnqQN4L/T6L0) mencionados acima, o comando seria:
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.Conectando o QuickSight ao ClickHouse
Antes de tudo, acesse https://quicksight.aws.amazon.com, vá até Datasets e clique em "New dataset":

Procure o conector oficial do MySQL disponível no QuickSight (chamado simplesmente de MySQL):

Informe os detalhes da conexão. Observe que a porta da interface MySQL é 9004 por padrão e pode ser diferente, dependendo da configuração do seu servidor.

Agora, você tem duas opções para buscar os dados do ClickHouse. Primeiro, pode selecionar uma tabela na lista:

Como alternativa, você pode informar um SQL personalizado para buscar seus dados:

Ao clicar em "Edit/Preview data", você poderá ver a estrutura da tabela identificada automaticamente ou ajustar seu SQL personalizado, caso tenha decidido acessar os dados dessa forma:

Certifique-se de que o modo "Direct Query" esteja selecionado no canto inferior esquerdo da interface:

Agora você pode publicar seu dataset e criar uma nova visualização!
Limitações conhecidas
- A importação do SPICE não funciona como esperado; use o modo Direct Query. Veja #58553.