Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Tableau Online

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.

Tela de credenciais do ClickHouse Cloud mostrando o menu suspenso de seleção da interface MySQL

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.

Interruptor para habilitar a interface MySQL no ClickHouse Cloud e detalhes da conexão

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:

Tela de conexão do serviço no ClickHouse Cloud com a opção Connect destacada

[object Object]

Selecione MySQL no menu suspenso Connect With.

Tela de conexão do ClickHouse Cloud mostrando a seleção da opção MySQL

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.

Tela de conexão do ClickHouse Cloud com a interface MySQL habilitada mostrando os detalhes da conexão

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 = 1

Crie 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: 54

Nesse 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
fbc958cc745a82188a51f30de69eebfc67c40ee4

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

Interface do Tableau Online mostrando o botão 'New' para criar uma fonte de dados publicada

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

Tela de seleção de conectores do Tableau Online com a opção MySQL destacada

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

Tela de configuração da conexão MySQL no Tableau Online com campos de servidor, porta, banco de dados e credenciais

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.

Página da fonte de dados do Tableau Online mostrando as tabelas do banco de dados à esquerda e a área à direita com funcionalidade de arrastar e soltar

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.

Interface do Tableau Desktop mostrando o menu Connect com a opção MySQL destacada

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

Caixa de diálogo de conexão MySQL do Tableau Desktop com a opção SSL habilitada e campos para servidor, nome de usuário, senha e certificado

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

Tableau Desktop mostrando o menu Server com a opção Publish Data Source destacada

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

Caixa de diálogo de publicação do Tableau Desktop mostrando as opções de Authentication com Embedded password selecionada

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

Caixa de diálogo de publicação do Tableau Desktop com a opção 'Update workbook to use the published data source' marcada

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.

Navigation