Перейти к основному содержанию
Перейти к основному содержанию

Looker Studio

Partner Integration

Looker Studio может подключаться к ClickHouse через интерфейс MySQL, используя официальный источник данных Google для MySQL.

Настройка ClickHouse Cloud

Выберите Connect your app

После создания сервиса ClickHouse Cloud на экране Connect your app выберите MySQL из выпадающего списка.

Экран учетных данных ClickHouse Cloud с выпадающим списком выбора интерфейса MySQL

Включите интерфейс MySQL

Переключите тумблер, чтобы включить интерфейс MySQL для данного сервиса. Это откроет порт 3306 для этого сервиса и отобразит экран подключения MySQL с вашим уникальным именем пользователя MySQL.

Экран ClickHouse Cloud с тумблером включения интерфейса MySQL и параметрами подключения

Или, чтобы включить интерфейс MySQL для уже существующего сервиса:

Выберите Connect

Убедитесь, что ваш сервис находится в состоянии Running, затем выберите сервис, для которого вы хотите включить интерфейс MySQL. Выберите Connect в левом меню:

Экран подключения сервиса ClickHouse Cloud с выделенной опцией Connect

Выберите MySQL

Выберите MySQL из выпадающего списка Connect With.

Экран подключения ClickHouse Cloud с выбранным вариантом MySQL

Включите интерфейс MySQL

Переключите тумблер, чтобы включить интерфейс MySQL для данного сервиса. Это откроет порт 3306 для этого сервиса и отобразит экран подключения MySQL с вашим уникальным именем пользователя MySQL.

Экран подключения ClickHouse Cloud с включенным интерфейсом MySQL и параметрами подключения

Создание readonly-пользователя MySQL в ClickHouse Cloud

ClickHouse Cloud автоматически создает пользователя mysql4<subdomain>, который использует тот же пароль, что и пользователь по умолчанию. Часть <subdomain> соответствует первой части имени хоста вашего кластера ClickHouse Cloud.

Такой формат имени пользователя необходим для совместимости с инструментами, которые устанавливают защищенные соединения, но не включают данные SNI (Server Name Indication) в TLS-рукопожатие. Без информации SNI система не может выполнить корректную внутреннюю маршрутизацию, поэтому подсказка с поддоменом, встроенная в имя пользователя, предоставляет необходимую информацию для маршрутизации. Консольный клиент MySQL — пример инструмента, которому это требуется.

Совет

Рекомендуется создать нового readonly-пользователя MySQL.

Примечание

Для имени хоста ClickHouse Cloud вида foobar.us-east1.aws.clickhouse.cloud часть <subdomain> равна foobar, и произвольное имя пользователя MySQL может выглядеть как mysql4foobar_team1.

Создайте профиль настроек readonly

Создайте профиль настроек, который будет применяться к вашему readonly-пользователю, установив параметр readonly в значение 1:

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

Создайте нового readonly-пользователя MySQL

Создайте пользователя с именем в следующем формате:

mysql4<subdomain>_<username>

Примените readonly_profile к новому пользователю и убедитесь, что пароль задан в формате double SHA1. Например:

CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';

Выдайте новому пользователю права доступа к нужным таблицам

Выдайте новому пользователю необходимые права для работы с нужными таблицами или базами данных. Например, если вы хотите предоставить доступ только к system.query_log:

GRANT SELECT ON system.query_log TO mysql4foobar_readonly;
Примечание

Для readonly-пользователя убедитесь, что вы выдаете только права SELECT к таблицам, к которым хотите предоставить доступ.

Созданного пользователя можно использовать для подключения к вашему сервису ClickHouse Cloud через интерфейс MySQL.

Устранение неполадок с несколькими пользователями MySQL в ClickHouse Cloud

Если вы создали нового пользователя MySQL и при подключении через CLI‑клиент MySQL видите следующую ошибку:

ОШИБКА 2013 (HY000): Потеряно соединение с сервером MySQL при чтении пакета авторизации, системная ошибка: 54

В этом случае убедитесь, что имя пользователя имеет формат mysql4<subdomain>_<username>, как описано выше.

Настройка локального сервера ClickHouse

Обратитесь к официальной документации по настройке сервера ClickHouse с включенным интерфейсом MySQL.

Помимо добавления записи в конфигурационный файл сервера config.xml

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

также обязательно следует использовать Double SHA1 password encryption для пользователя, который будет работать через интерфейс MySQL.

Генерация случайного пароля с применением Double SHA1 в командной оболочке:

PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

Результат должен выглядеть следующим образом:

LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4

Первая строка — сгенерированный пароль, а вторая строка — хеш, который можно использовать для настройки ClickHouse.

Ниже приведен пример конфигурации для mysql_user, использующей сгенерированный хеш:

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

Замените значение password_double_sha1_hex на сгенерированный вами двойной SHA1-хэш.

Также рекомендуется использовать use_mysql_types_in_show_columns, чтобы выводить исходные типы MySQL вместо типов ClickHouse в результатах запроса SHOW [FULL] COLUMNS, что позволяет BI-инструментам корректно анализировать схему базы данных при использовании MySQL-коннекторов.

Например:

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

или назначить его другому профилю вместо профиля по умолчанию.

Если у вас установлен клиент mysql, вы можете протестировать подключение из командной строки. Используя пример имени пользователя (mysql_user) и пароля (LZOQYnqQN4L/T6L0) из приведённого выше примера, команда в терминале будет следующей:

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.

Наконец, настройте сервер ClickHouse на прослушивание нужных IP-адресов. Например, в config.xml раскомментируйте следующий фрагмент, чтобы сервер прослушивал все адреса:

<listen_host>::</listen_host> 

Подключение Looker Studio к ClickHouse

Сначала войдите на сайт https://lookerstudio.google.com под своей учетной записью Google и создайте новый источник данных (Data Source):

Создание нового источника данных в интерфейсе Looker Studio

Найдите официальный коннектор MySQL от Google (называется просто MySQL):

Поиск коннектора MySQL в списке коннекторов Looker Studio

Укажите параметры подключения. Обратите внимание, что порт интерфейса MySQL по умолчанию — 9004, и он может отличаться в зависимости от конфигурации вашего сервера.

Указание параметров подключения ClickHouse по интерфейсу MySQL в Looker Studio

Теперь у вас есть два варианта получения данных из ClickHouse. Можно использовать инструмент Table Browser:

Использование Table Browser для выбора таблиц ClickHouse в Looker Studio

Либо вы можете указать произвольный SQL-запрос для получения данных:

Использование пользовательского SQL-запроса для выборки данных из ClickHouse в Looker Studio

В результате вы увидите автоматически определенную структуру таблицы и при необходимости сможете скорректировать типы данных.

Просмотр автоматически определенной структуры таблицы ClickHouse в Looker Studio

Теперь вы можете приступать к анализу своих данных или созданию нового отчета!

Использование Looker Studio с ClickHouse Cloud

При использовании ClickHouse Cloud сначала необходимо включить интерфейс MySQL. Это можно сделать в диалоговом окне подключения, на вкладке «MySQL».

Включение интерфейса MySQL в настройках ClickHouse Cloud

В интерфейсе Looker Studio выберите опцию «Enable SSL». SSL-сертификат ClickHouse Cloud подписан центром Let's Encrypt. Вы можете скачать корневой сертификат здесь.

Конфигурация подключения Looker Studio с настройками SSL ClickHouse Cloud

Остальные шаги такие же, как описано выше в предыдущем разделе.