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

Советы по подключению

Вкладка Начальный SQL

Если чекбокс Установить ID сессии активирован на вкладке Расширенные настройки (по умолчанию), не стесняйтесь устанавливать настройки уровня сессии settings используя

SET my_setting=value;

Вкладка Расширенные настройки

В 99% случаев вам не нужна вкладка Расширенные настройки, в оставшихся 1% вы можете использовать следующие настройки:

  • Пользовательские параметры подключения. По умолчанию socket_timeout уже указан, этот параметр может потребоваться изменить, если некоторые выборки обновляются очень долго. Значение этого параметра указывается в миллисекундах. Остальные параметры можно найти здесь, добавьте их в это поле, разделяя запятыми.
  • Пользовательские параметры http драйвера JDBC. Это поле позволяет добавлять некоторые параметры в строку подключения ClickHouse, передавая значения в custom_http_params параметр драйвера. Например, именно так указывается session_id, когда чекбокс Установить ID сессии активирован.
  • typeMappings драйвера JDBC. Это поле позволяет вам передать список соответствий типов данных ClickHouse к типам данных Java, используемым драйвером JDBC. Коннектор автоматически отображает большие целые числа как строки благодаря этому параметру, вы можете изменить это, передав ваш набор соответствий (не знаю, почему), используя
UInt256=java.lang.Double,Int256=java.lang.Double

Узнайте больше о соответствиях в соответствующем разделе.

  • Параметры URL драйвера JDBC. Вы можете передать оставшиеся параметры драйвера, например jdbcCompliance, в этом поле. Будьте осторожны, значения параметров должны передаваться в URL-кодированном формате, и в случае передачи custom_http_params или typeMappings в этом поле и в предыдущих полях вкладки Расширенные настройки значения двух предыдущих полей на вкладке Расширенные настройки имеют более высокий приоритет.
  • Чекбокс Установить ID сессии. Он нужен для установки настроек на уровне сессии во вкладке Начальный SQL, генерирует session_id с меткой времени и псевдослучайным числом в формате "tableau-jdbc-connector-*{timestamp}*-*{number}*"

Ограниченная поддержка типов данных UInt64, Int128, (U)Int256

По умолчанию драйвер отображает поля типов UInt64, Int128, (U)Int256 как строки, но отображает, а не преобразует. Это означает, что когда вы попытаетесь записать следующее вычисляемое поле, вы получите ошибку

LEFT([myUInt256], 2) // Error!

Чтобы работать с большими целыми полями как со строками, необходимо явно обернуть поле в функцию STR().

LEFT(STR([myUInt256]), 2) // Works well!

Однако такие поля чаще всего используются для подсчета уникальных значений (ID, такие как Watch ID, Visit ID в Yandex.Metrica) или в качестве Размерности для указания детализации визуализации, это работает хорошо.

COUNTD([myUInt256]) // Works well too!

При использовании просмотра данных (View data) таблицы с полями UInt64 ошибка теперь не появляется.