Этот драйвер находится в активной разработке. Некоторые возможности 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 Поддерживает только режим импорта. 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-драйвер.