O Tableau Online pode se conectar ao ClickHouse Cloud ou a uma implantação on-premise do ClickHouse pela interface MySQL usando a fonte de dados oficial do MySQL.
Configuração do ClickHouse Cloud
[object Object]
Após criar seu serviço no ClickHouse Cloud, na tela Connect your app, selecione MySQL no menu suspenso.

Habilite a interface MySQL
Ative o interruptor para habilitar a interface MySQL para este serviço específico.
Isso abrirá a porta 3306 para esse serviço e exibirá uma tela de conexão MySQL com seu usuário MySQL exclusivo.

Como alternativa, para habilitar a interface MySQL em um serviço existente:
[object Object]
Certifique-se de que seu serviço esteja no estado Running e clique no serviço para o qual você deseja habilitar a interface MySQL.
Selecione "Connect" no menu à esquerda:

[object Object]
Selecione MySQL no menu suspenso Connect With.

Habilite a interface MySQL
Ative o interruptor para habilitar a interface MySQL para este serviço específico.
Isso abrirá a porta 3306 para esse serviço e exibirá sua tela de conexão MySQL, incluindo seu usuário MySQL exclusivo.

Criando um usuário MySQL somente leitura no ClickHouse Cloud
O ClickHouse Cloud cria automaticamente um usuário mysql4<subdomain> que usa a mesma senha do usuário padrão.
A parte <subdomain> corresponde à primeira parte do hostname do seu ClickHouse Cloud.
Esse formato de nome de usuário é necessário para compatibilidade com ferramentas que estabelecem conexões seguras, mas não incluem dados de SNI (Server Name Indication) no handshake de TLS. Sem as informações de SNI, o sistema não consegue fazer o roteamento interno corretamente, então o subdomínio incorporado ao nome de usuário fornece as informações de roteamento necessárias. O cliente de console do MySQL é um exemplo de ferramenta que precisa disso.
Crie um perfil de configurações de somente leitura
Crie um perfil de configurações para aplicar ao seu usuário somente leitura,
definindo a configuração readonly como 1:
CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1Crie um novo usuário MySQL somente leitura
Crie um usuário com um nome neste formato:
mysql4<subdomain>_<username>Aplique o readonly_profile ao novo usuário e certifique-se de que a senha esteja no formato double SHA1. Por exemplo:
CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';Conceda ao novo usuário permissões para acessar as tabelas desejadas
Conceda ao novo usuário as permissões necessárias para interagir com as tabelas ou bancos de dados desejados.
Por exemplo, se você quiser conceder acesso apenas a system.query_log:
GRANT SELECT ON system.query_log TO mysql4foobar_readonly;O usuário recém-criado pode ser usado para se conectar ao seu serviço do ClickHouse Cloud pela interface MySQL.
Solução de problemas com vários usuários MySQL no ClickHouse Cloud
Se você criou um novo usuário MySQL e vê o seguinte erro ao se conectar pelo cliente de linha de comando do MySQL:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54Nesse caso, certifique-se de que o nome de usuário siga o formato mysql4<subdomain>_<username>, conforme descrito (acima).
Configuração on-premise do servidor ClickHouse
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 com Double SHA1 para o usuário que usará a interface MySQL.
Como gerar, no shell, uma senha aleatória criptografada com Double SHA1:
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 à seguinte:
LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4A primeira linha é a senha gerada, e a segunda linha é o hash que pode ser usado 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ê.
Além disso, é recomendável usar use_mysql_types_in_show_columns
para exibir os tipos nativos do MySQL em vez dos do ClickHouse nos resultados da consulta SHOW [FULL] COLUMNS,
o que permite que ferramentas de BI inspecionem corretamente o esquema do banco de dados ao usar conectores MySQL.
Por exemplo:
/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 atribuí-lo a outro profile em vez do profile padrão.
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) 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.Por fim, configure o ClickHouse Server para escutar no(s) endereço(s) IP desejado(s). Por exemplo, em config.xml, descomente o trecho a seguir para escutar em todos os endereços:
<listen_host>::</listen_host> Conectando o Tableau Online ao ClickHouse (on-premise sem SSL)
Faça login no seu site do Tableau Cloud e adicione uma nova fonte de dados publicada.

Selecione "MySQL" na lista de conectores disponíveis.

Informe os detalhes da conexão obtidos durante a configuração do ClickHouse.

O Tableau Online inspecionará o banco de dados e exibirá uma lista das tabelas disponíveis. Arraste a tabela desejada para a área à direita. Além disso, você pode clicar em "Update Now" para visualizar os dados e ajustar com mais precisão os tipos ou nomes dos campos identificados.

Depois disso, só falta clicar em "Publish As" no canto superior direito, e você já poderá usar normalmente a fonte de dados recém-criada no Tableau Online.
Observação: se você quiser usar o Tableau Online em conjunto com o Tableau Desktop e compartilhar fontes de dados do ClickHouse entre eles, certifique-se de usar o Tableau Desktop também com o conector MySQL padrão, seguindo o guia de configuração exibido aqui ao selecionar MySQL no menu suspenso fonte de dados. Se você tiver um Mac M1, consulte este tópico de solução de problemas para uma alternativa de instalação do driver.
Como conectar o Tableau Online ao ClickHouse (configuração na nuvem ou on-premise com SSL)
Como não é possível fornecer os certificados SSL pelo assistente de configuração de conexão MySQL do Tableau Online, a única forma é usar o Tableau Desktop para configurar a conexão e depois exportá-la para o Tableau Online. Ainda assim, esse processo é bastante simples.
Execute o Tableau Desktop em uma máquina Windows ou Mac e selecione "Connect" -> "To a Server" -> "MySQL". Muito provavelmente, primeiro será necessário instalar o driver MySQL na sua máquina. Você pode fazer isso seguindo o guia de configuração exibido aqui ao selecionar MySQL no menu suspenso de fonte de dados. Se você tiver um Mac M1, consulte este tópico de solução de problemas para ver uma alternativa para a instalação do driver.

Informe as credenciais do MySQL user da sua instância do ClickHouse Cloud e o caminho para o certificado raiz baixado.

Escolha as tabelas desejadas normalmente (assim como no Tableau Online) e selecione "Server" -> "Publish Data Source" -> Tableau Cloud.

IMPORTANTE: você precisa selecionar "Embedded password" nas opções de "Authentication".

Além disso, escolha "Update workbook to use the published data source".

Por fim, clique em "Publish", e sua fonte de dados com credenciais incorporadas será aberta automaticamente no Tableau Online.
Limitações conhecidas (ClickHouse 23.11)
Todas as limitações conhecidas foram corrigidas no ClickHouse 23.11. Se você encontrar alguma outra incompatibilidade, não hesite em entrar em contato conosco ou abrir uma nova issue.