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

Рекомендации по подключению

ClickHouse Supported

Вкладка Initial SQL

Если на вкладке Advanced (по умолчанию) установлен флажок Set Session ID, вы можете задать настройки на уровне сеанса с помощью

SET my_setting=значение;

Вкладка Advanced

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

  • Custom Connection Parameters. По умолчанию уже указан socket_timeout; этот параметр может потребовать изменения, если обновление некоторых выгрузок занимает очень много времени. Значение этого параметра указывается в миллисекундах. Остальные параметры можно найти здесь; добавляйте их в это поле, разделяя запятыми.
  • JDBC Driver custom_http_params. Это поле позволяет добавить некоторые параметры в строку подключения к ClickHouse, передавая значения в параметр драйвера custom_http_params. Например, таким образом указывается session_id, когда активирован флажок Set Session ID.
  • JDBC Driver typeMappings. Это поле позволяет передать список сопоставлений типов данных ClickHouse с типами данных Java, которые использует JDBC‑драйвер. Коннектор автоматически отображает большие целые числа как строки благодаря этому параметру; вы можете изменить это, передав свой набор сопоставлений (я не знаю, зачем), используя
    UInt256=java.lang.Double,Int256=java.lang.Double
    
    Подробнее о сопоставлении типов данных читайте в соответствующем разделе.
  • Параметры URL JDBC-драйвера. В этом поле вы можете передать остальные параметры драйвера, например jdbcCompliance. Учтите, что значения параметров должны передаваться в формате URL-encoded, и при передаче custom_http_params или typeMappings и в этом поле, и в предыдущих полях вкладки Advanced значения двух предшествующих полей на вкладке Advanced имеют более высокий приоритет.
  • Флажок Set Session ID. Нужен для задания параметров на уровне сеанса во вкладке Initial 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) // Работает отлично!

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

COUNTD([myUInt256]) // Тоже отлично работает!

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