Этот драйвер находится в активной разработке. Некоторые возможности ODBC могут быть еще не полностью реализованы. Текущая версия
сосредоточена на обеспечении базового подключения и основной функциональности ODBC, а дополнительные возможности запланированы для будущих
релизов.Ваши отзывы очень ценны и помогают определять приоритеты новых возможностей и улучшений. Если вы столкнетесь с
ограничениями, отсутствующей функциональностью или неожиданным поведением, пожалуйста, поделитесь своими наблюдениями или запросами на
новые возможности через трекер задач по адресу
https://github.com/ClickHouse/clickhouse-odbc/issues
Установка в Windows
Тестирование
$reader.GetValue(0) должна отобразиться версия вашего сервера ClickHouse.
Параметры конфигурации
Url: Указывает полный HTTP(S)-адрес конечной точки сервера ClickHouse. Сюда входят протокол, хост, порт и необязательный путь.Username: Имя пользователя, используемое для аутентификации на сервере ClickHouse.Password: Пароль, связанный с указанным именем пользователя. Если он не указан, драйвер подключается без аутентификации по паролю.Database: База данных, используемая по умолчанию для соединения.Timeout: Максимальное время (в секундах), в течение которого драйвер ожидает ответа от сервера, прежде чем прервать запрос.ClientName: Пользовательский идентификатор, отправляемый на сервер ClickHouse как часть метаданных клиента. Полезен для трассировки или различения трафика от разных приложений. Этот параметр будет частью заголовка User-Agent в HTTP- запросах, создаваемых драйвером.Compression: Включает или отключает HTTP-сжатие для полезной нагрузки запросов и ответов. При включении оно может уменьшить расход пропускной способности и повысить производительность при работе с большими результирующими наборами.SqlCompatibilitySettings: Включает настройки запросов, благодаря которым ClickHouse ведет себя больше как традиционная реляционная база данных. Это полезно, когда запросы автоматически генерируются сторонними инструментами, например, Power BI. Такие инструменты обычно не учитывают некоторые специфические особенности ClickHouse и могут создавать запросы, которые приводят к ошибкам или неожиданным результатам. Подробнее см. в разделе Настройки ClickHouse, используемые параметром конфигурации SqlCompatibilitySettings .
- Сервер ClickHouse, установленный локально в экземпляре WSL
- Экземпляр ClickHouse Cloud.
Интеграция с Microsoft Power BI
- Коннектор ClickHouse (рекомендуется) Использует ODBC на уровне реализации, но поддерживает режим DirectQuery. В этом режиме Power BI автоматически генерирует SQL-запросы и получает только те данные, которые нужны для каждой визуализации или операции фильтрации.
- Коннектор ODBC Поддерживает только режим Import. Power BI выполняет запрос, заданный пользователем (или выбирает всю таблицу), и импортирует весь результирующий набор в Power BI. При последующих обновлениях весь датасет импортируется заново.
Настройки совместимости с SQL
SqlCompatibilitySettings, который включает определенные настройки запроса,
чтобы поведение ClickHouse в большей степени соответствовало стандарту SQL.
Настройки ClickHouse, включаемые параметром конфигурации SqlCompatibilitySettings
value допускает NULL, этот запрос завершится ошибкой с сообщением:
cast_keep_nullable изменяет поведение CAST так, что он сохраняет признак Nullable у своих аргументов. Это
приближает поведение ClickHouse к поведению других баз данных и стандарту SQL для такого типа преобразований.
prefer_column_name_to_alias
ClickHouse позволяет ссылаться на выражения в том же списке SELECT по их псевдонимам. Например, этот запрос позволяет избежать
повторений, и его проще писать:
SELECT обычно так не разрешаются,
и такие запросы обычно приводят к ошибке. Проблемы особенно заметны, когда псевдоним совпадает с именем столбца. Например:
value должна агрегировать функция avg(value)? По умолчанию ClickHouse выбирает псевдоним, фактически превращая это во
вложенную агрегацию, а это не то, чего ожидает большинство инструментов.
Само по себе это редко вызывает проблемы, но некоторые BI-инструменты генерируют запросы с подзапросами, которые повторно используют псевдонимы столбцов. Например,
Power BI часто генерирует запросы, подобные следующему:
C1 может возникать следующая ошибка:
C1 как столбец из
подзапроса. Чтобы сохранить схожее поведение в ClickHouse и позволить таким запросам выполняться без ошибок, драйвер ODBC
включает prefer_column_name_to_alias.
В большинстве случаев включение этих настроек не должно вызывать проблем. Однако пользователи, у которых параметр readonly установлен в 1,
не могут изменять какие-либо настройки даже для запросов SELECT. Для таких пользователей включение SqlCompatibilitySettings приведёт
к ошибке. В следующем разделе объясняется, как сделать так, чтобы этот параметр конфигурации работал для пользователей с доступом только для чтения.
Как обеспечить работу настроек совместимости SQL для пользователей с доступом только для чтения
SqlCompatibilitySettings пользователь
с параметром readonly, установленным в 1, столкнется с ошибкой, поскольку драйвер пытается изменить настройки запроса:
SELECT.
Исправить это можно несколькими способами.
Вариант 1. Установить readonly в 2
Это самый простой вариант. Значение readonly, установленное в 2, позволяет изменять настройки, сохраняя для пользователя режим только для чтения.
readonly в значение 2. Если
этот вариант вам не подходит, используйте второй способ.
Вариант 2. Изменение пользовательских настроек в соответствии с настройками, которые задаёт драйвер ODBC.
Это тоже несложно: обновите пользовательские настройки так, чтобы они уже соответствовали параметрам, которые пытается задать драйвер ODBC.