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

Tableau Online

Tableau Online может подключаться к ClickHouse Cloud или локальной установке ClickHouse через интерфейс MySQL, используя официальный источник данных 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> 

Подключение Tableau Online к ClickHouse (локальный без SSL)

Войдите на свой сайт Tableau Cloud и добавьте новый Опубликованный источник данных.

Интерфейс Tableau Online с кнопкой 'Новый' для создания опубликованного источника данных

Выберите "MySQL" из списка доступных коннекторов.

Экран выбора коннекторов Tableau Online с выделенной опцией MySQL

Укажите данные подключения, собранные во время настройки ClickHouse.

Экран настройки подключения MySQL в Tableau Online с полями сервера, порта, базы данных и учетных данных

Tableau Online исследует базу данных и предоставляет список доступных таблиц. Перетащите нужную таблицу на холст справа. Дополнительно, вы можете нажать "Обновить сейчас", чтобы предварительно просмотреть данные, а также уточнить типы или имена исследуемых полей.

Страница источника данных Tableau Online с показанными таблицами базы данных слева и холстом справа с функциональностью перетаскивания

После этого остается только нажать "Опубликовать как" в правом верхнем углу, и вы сможете использовать вновь созданный набор данных в Tableau Online, как обычно.

Примечание: если вы хотите использовать Tableau Online в комбинации с Tableau Desktop и делиться наборами данных ClickHouse между ними, убедитесь, что вы также используете Tableau Desktop с коннектором MySQL по умолчанию, следуя руководству по настройке, которое отображается здесь, если вы выбираете MySQL из выпадающего списка источников данных. Если у вас Mac с M1, посмотрите эту тему по устранению неполадок для обходного решения установки драйвера.

Подключение Tableau Online к ClickHouse (облачная или локальная установка с SSL)

Так как невозможно предоставить SSL сертификаты через мастер настройки соединения MySQL Tableau Online, единственный способ — использовать Tableau Desktop для настройки соединения, а затем экспортировать его в Tableau Online. Этот процесс, однако, вполне прост.

Запустите Tableau Desktop на Windows или Mac, и выберите "Подключиться" -> "К серверу" -> "MySQL". Вероятно, вам потребуется сначала установить драйвер MySQL на вашем компьютере. Вы можете сделать это, следуя руководству по настройке, которое отображается здесь, если вы выбираете MySQL из выпадающего списка источников данных. Если у вас Mac с M1, посмотрите эту тему по устранению неполадок для обходного решения установки драйвера.

Интерфейс Tableau Desktop с меню Подключиться и выделенной опцией MySQL

примечание

В интерфейсе настройки подключения MySQL убедитесь, что опция "SSL" включена. SSL сертификат ClickHouse Cloud подписан Let's Encrypt. Вы можете загрузить этот корневой сертификат здесь.

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

Диалог подключения MySQL в Tableau Desktop с включенной опцией SSL и полями для сервера, имени пользователя, пароля и сертификата

Выберите нужные таблицы, как обычно (т similarly к Tableau Online), и выберите "Сервер" -> "Опубликовать источник данных" -> Tableau Cloud.

Tableau Desktop показывает меню Сервер с выделенной опцией Опубликовать источник данных

ВАЖНО: вам нужно выбрать "Встроенный пароль" в опциях "Аутентификация".

Диалог публикации Tableau Desktop с опциями аутентификации, где выделен Встроенный пароль

Дополнительно, выберите "Обновить рабочую книгу для использования опубликованным источником данных".

Диалог публикации Tableau Desktop с отмеченной опцией 'Обновить рабочую книгу для использования опубликованным источником данных'

Наконец, нажмите "Опубликовать", и ваш источник данных с встроенными учетными данными будет автоматически открыт в Tableau Online.

Известные ограничения (ClickHouse 23.11)

Все известные ограничения были исправлены в ClickHouse 23.11. Если вы столкнетесь с другими несовместимостями, пожалуйста, не стесняйтесь связываться с нами или создать новую задачу.