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

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

ClickHouse Supported

Вкладка Initial SQL

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

SET my_setting=value;

Вкладка 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
    

    Подробнее о сопоставлении типов данных читайте в соответствующем разделе.

  • JDBC Driver URL Parameters. В это поле вы можете передать оставшиеся параметры драйвера, например 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) // Works well!

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

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

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