Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Looker Studio

Integração com parceiro

O Looker Studio pode se conectar ao ClickHouse pela interface MySQL usando a fonte de dados MySQL oficial do Google.

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

Como conectar o Looker Studio ao ClickHouse

Primeiro, faça login no Looker Studio com sua conta do Google e crie uma nova fonte de dados:

Criando uma nova fonte de dados na interface do Looker Studio

Procure o conector oficial do MySQL fornecido pelo Google (chamado simplesmente de MySQL):

Pesquisa do conector MySQL na lista de conectores do Looker Studio

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

Especificando os detalhes da conexão MySQL do ClickHouse no Looker Studio

Agora, você tem duas opções para buscar os dados do ClickHouse. Primeiro, pode usar o recurso Navegador de tabelas:

Usando o Navegador de tabelas para selecionar tabelas do ClickHouse no Looker Studio

Como alternativa, você pode especificar uma consulta SQL personalizada para buscar os dados:

Usando uma consulta SQL personalizada para buscar dados do ClickHouse no Looker Studio

Por fim, você deverá conseguir ver a estrutura da tabela identificada automaticamente e ajustar os tipos de dados, se necessário.

Visualizando a estrutura da tabela do ClickHouse identificada automaticamente no Looker Studio

Agora você pode continuar explorando seus dados ou criar um novo relatório!

Usando o Looker Studio com ClickHouse Cloud

Ao usar o ClickHouse Cloud, é preciso primeiro habilitar a interface MySQL. Você pode fazer isso na caixa de diálogo de conexão, na aba "MySQL".

Habilitando a interface MySQL nas configurações do ClickHouse Cloud

Na UI do Looker Studio, escolha a opção "Enable SSL". O certificado SSL do ClickHouse Cloud é assinado pela Let's Encrypt. Você pode baixar esse certificado raiz aqui.

Configuração da conexão do Looker Studio com as configurações SSL do ClickHouse Cloud

O restante das etapas é o mesmo listado acima na seção anterior.

Navigation