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

Looker Studio

Community Maintained

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

Настройка ClickHouse Cloud

Выберите Подключить ваше приложение

После создания вашего сервиса ClickHouse Cloud, на экране Подключить ваше приложение, выберите MySQL из выпадающего меню.

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

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

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

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

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

Выберите Подключить

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

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

Выберите MySQL

Выберите MySQL из выпадающего меню Подключиться с.

Экран подключения ClickHouse Cloud, показывающий выбор опции MySQL

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

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

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

Создание учетной записи MySQL только для чтения в ClickHouse Cloud

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

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

подсказка

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

примечание

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

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

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

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

Создайте нового пользователя MySQL только для чтения

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

mysql4<subdomain>_<username>

Примените профиль readonly_profile к новому пользователю и убедитесь, что пароль имеет двойной формат 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;
примечание

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

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

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

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

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54

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

Настройка сервера ClickHouse на месте

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

Помимо добавления записи в config.xml сервера

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

также обязательно использовать шифрование паролей с помощью Double SHA1 для пользователя, который будет использовать интерфейс 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 на ваш собственный сгенерированный хэш Double SHA1.

Кроме того, рекомендуется использовать use_mysql_types_in_show_columns для отображения нативных типов MySQL вместо типов ClickHouse в результатах запроса SHOW [FULL] COLUMNS, что позволяет инструментам бизнес-аналитики правильно анализировать схему базы данных при использовании соединителей 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 и создайте новый источник данных:

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

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

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

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

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

Теперь у вас есть два варианта получения данных из ClickHouse. Во-первых, вы можете использовать функцию Table Browser:

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

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

Использование пользовательского 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

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