DataGrip | ClickHouse. Косяки драйвера

версия для печати
DataGrip + ClickHouse лого

TL;DR: CH 26.x, драйвер в DataGrip 0.9.8, вручную добавить в Advanced драйвера костыль: ignore_unknown_config_key=true. Возможно, перегрузить IDE. Не обновлять драйвер без крайней на то необходимости.

Среда: IntelliJ IDEA 2025.3.3. Технически, в ней нет DataGrip, т.к. это отдельный инструмент. Но есть плагин с гордым названием "Database Tools and SQL for WebStorm" (чукча-style, ну разве не прелесть?). Со стороны юзера - это тот же DG, только в профиль.

Как я вляпался в проблемы на ровном месте. У нас в компании мания все обновлять и ставить обязательно самые новые версии. Не успел CH 23.x покрыться пылью забвения, как пришли адепты церкви "На острие новизны" и накатили ClickHouse 26.3.12. Хотели еще выше, я убедил придержать коней. И обновление даже встало ровно, если бы не одно "но": DataGrip перестал работать, драйвер не поддерживает СУБД, но по его ошибке хрен поймешь. Я просто отследил цепь событий.

С другой стороны разрабы ClickHouse подложили клиентам СУБД свинью, с обновлением своего драйвера поломали обратную совместимость:

Исторически существовал старый движок драйвера (V1). Он годами работал в DataGrip, умел обрабатывать сессионные параметры вроде session_id и databaseTerm, и всё было прекрасно. Затем команда ClickHouse решила полностью переписать драйвер с нуля ради производительности и выкатила новый движок (V2 / версии 0.8.x и 0.9.x). Новый движок V2 написан максимально жестко:

  • Из него вырезали поддержку старых параметров.
  • В него добавили агрессивную валидацию. Если приложение (в данном случае DataGrip) пытается передать драйверу хоть одно неизвестное ему свойство, драйвер не игнорирует его, а падает с ошибкой Unknown and unmapped config properties.

(c) Насочинала нейронка Гугла. Насколько это правда - не знаю, но где-то рядом.

Это мне вылезло, когда я на автомате обновил дрова в DataGrip, не глядя с какой на какую версию:

[08000] Failed to create connection Unknown and unmapped config properties: [databaseTerm, session_id]

Откат превратился в гребанный квест. В DataGrip на выбор есть несколько драйверов с пропусками в версиях. Я пытался найти и добавить "свой" между ними - это вообще не работает.

Итак:

  • 0.6.3 - старый драйвер без проблем. Но не поддерживает CH 26.x (актуальная версия на данный момент)
  • 0.8.6 - следующий в списке. Поддерживает CH 26.x, но там часовой пояс гвоздями прибит, см. issue #2496. Во всех выдачах DataGrip поля с датами будут с суффиксом Z[Etc/UTC].
  • 0.9.8 - самый новый драйвер. Нет проблемы с часовыми поясами, зато вылазит та самая ошибка про Unknown and unmapped config properties.

И вот когда яйца между молотом и наковальней, а работать таки надо, я нашел решение после непродолжительных споров с DeepSeek (эта сучка тоже думать не хочет). Идем в настройки драйвера в IDE Data Sources and Drivers > ClickHouse > Advanced и вручную добавляем недокументированный параметр:

ignore_unknown_config_key=true

Прим: есть параметр jdbc_ignore_unsupported_values. Он не помогает, нужно именно свой с другим именем.

После смены драйвера может потребоваться перегрузить IDE. Явно об этом не написано, наугад обнаружил. Так соединение заводится на драйвере 0.9.8 и нет других проблем.


Откуда этот волшебный параметр и почему его нет в списке? Это внутреннее свойство клиентской части (client-v2), которое можно передать при конфигурации (читай "костыли").

Вот что написано в официальном changelog'е ClickHouse Java драйвера (v0.9.7):

Client.Builder#build() now throws ClientMisconfigurationException when an unknown configuration property is passed. (…) To restore the old behavior, add ignore_unknown_config_key=true to the client properties.

(с) CH changelog

Поэтому параметр не отображается в стандартном списке вкладки Advanced в DataGrip.


На будущее: не соглашаться слепо на обновление любых драйверов в IDE. Платно или нет, но никто не несет ответственность за поломанный инструмент.

Еще бы найти единомышленников, у которых только от одной фразы "устарело, надо обновлять" портится настроение. Это бич не только в CH/DataGrip, я постоянно огребаю проблем из-за ненужных обновлений.

[1oo%, EoF]

Понравилась статья? Расскажите о ней друзьям:

Метки: кодинг

Комментарии

Показать/скрыть правила
Имя
[i] [b] [u] [s] [url]
:-) ;-) :D *lol* 8-) :-* :-| :-( *cry* :o :-? *unsure* *oops* :-x *shocked* *zzz* :P *evil*

Осталось 1000 символов.
Код защиты от спама Обновить код
Каждый комментарий проходит ручную модерацию. 100% фильтрация спама.
Для работы модуля комментариев включите javaScript

Продвижение
Время
Метки