Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

QuickSight

Поддерживается в ClickHouse

QuickSight может подключаться к ClickHouse, развернутому в собственной инфраструктуре (23.11+), через интерфейс MySQL, используя официальный источник данных MySQL и режим Direct Query.

Настройка сервера ClickHouse в собственной инфраструктуре

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

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

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

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

Генерация случайного пароля, зашифрованного методом двойного хэша 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.

Для QuickSight требуется несколько дополнительных настроек в профиле пользователя MySQL.

/etc/clickhouse-server/users.d/mysql_user.xml

<profiles>
    <default>
        <prefer_column_name_to_alias>1</prefer_column_name_to_alias>
        <mysql_map_string_to_text_in_show_columns>1</mysql_map_string_to_text_in_show_columns>
        <mysql_map_fixed_string_to_text_in_show_columns>1</mysql_map_fixed_string_to_text_in_show_columns>
    </default>
</profiles>

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

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

<listen_host>::</listen_host>

Если у вас доступен бинарный файл 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.

Подключение QuickSight к ClickHouse

Прежде всего, перейдите на https://quicksight.aws.amazon.com, откройте раздел Datasets и нажмите "New dataset":

Панель мониторинга Amazon QuickSight с кнопкой New dataset в разделе Datasets

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

Экран выбора источника данных в QuickSight, где в результатах поиска выделен MySQL

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

Форма настройки подключения MySQL в QuickSight с полями hostname, port, database и учетных данных

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

Интерфейс выбора таблицы в QuickSight со списком таблиц базы данных, доступных из ClickHouse

Либо можно указать custom SQL для получения данных:

Редактор custom SQL в QuickSight для получения данных из ClickHouse

Нажав "Edit/Preview data", вы сможете увидеть автоматически определённую структуру таблицы или изменить свой custom SQL, если выбрали такой способ доступа к данным:

Предварительный просмотр данных в QuickSight, показывающий структуру таблицы со столбцами и примерами данных

Убедитесь, что в левом нижнем углу интерфейса выбран режим "Direct Query":

Интерфейс QuickSight, где в нижнем углу выделен режим Direct Query

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

Известные ограничения

  • Импорт в SPICE работает некорректно; используйте вместо него режим Direct Query. См. #58553.
Navigation