Как попробовать
Попробовать CHYT можно несколькими способами.
Самый простой способ — запустить запрос через веб-интерфейс Query Tracker. В качестве клики можно взять публичную клику c алиасом ch_public
. Это главная общедоступная клика, есть на каждом кластере присутствия CHYT.
Примечание
В версиях YTsaurus 24.1 и ранее алиас клики указывается со звёздочкой в начале, например, *ch_public
. В текущей версии *ch_public
и ch_public
соответствуют одному алиасу.
Внимание
К публичной клике есть доступ у всех пользователей YTsaurus, поэтому есть риск, что она может быть недоступна из-за запросов других пользователей или занята чужими расчетами. В связи с этим не надо основывать важные процессы и дашборды на публичной клике. Публичная клика по сути является демо-версией CHYT. Для своей команды настоятельно рекомендуется поднимать отдельную клику.
HTTP-интерфейс
Доступ к клике осуществляется через тяжёлые HTTP-прокси YTsaurus. Самый удобный способ обратиться к клике — отправить запрос на имя соответствующего кластера и обработать перенаправление (redirect). В случае утилиты cURL это означает, что необходимо указать флаг --location-trusted
.
Ниже смотрите пример, как задать с помощью утилиты cURL командной строки запрос к клике, зная имя кластера (YT_PROXY
), токен доступа к YTsaurus (YT_TOKEN
) и алиас клики (CHYT_ALIAS
).
$ curl --location-trusted -H "Authorization: OAuth $YT_TOKEN" "$YT_PROXY/chyt?chyt.clique_alias=$CHYT_ALIAS" -d 'SELECT Avg(a) FROM "//sys/clickhouse/sample_table"'
224.30769230769232
Как указать алиас клики
Алиас клики можно указать в специальном url-параметре chyt.clique_alias
(см. пример выше), либо в поле user
любым из способов авторизации (информация о фактическом пользователе содержится внутри токена). Например http://cluster.domain.com/chyt?user=my-clique&password=my-token
.
Внимание
Не допускается аутентификация (алиас клики + токен) через разные связки параметров. Например, следующий запрос содержит ошибку: -H 'X-ClickHouse-User: my-clique' 'http://cluster.domain.com/chyt?password=my-token'
(алиас указан в заголовках X-ClickHouse-User/Key
, а токен url-параметрах user/password
)
Примечание
В старой версии запросы идут по пути http://$YT_PROXY/query
.
При обращении к CHYT по устаревшему пути /query
алиас передаётся через url-параметр database
. При обращении по актуальному пути /chyt
алиас берётся из user
или из url-параметра chyt.clique_alias
.
Эксклюзивный порт для подключения
Не все клиенты поддерживают кастомные пути. Поэтому, на HTTP Proxy могут быть сконфигурированы специальные порты для обращения к CHYT, которые не требуют указания кастомных путей. Конкретные номера выделенных портов стоит уточнить у администратора YTsaurus кластера. Про то, как настроить такие порты, будет написано в ближайшее время.
ODBC-интерфейс
CHYT можно пользоваться из Tableau посредством Clickhouse ODBC Driver.
Для этого достаточно составить ODBC-конфигурацию, представленную ниже. Переменная YT_TOKEN
обозначает токен доступа к YTsaurus (AQAD-qJ…
), CHYT_ALIAS
— алиас клики (ch_public
), YT_PROXY
— имя кластера.
[ClickHouse]
Driver = <path to driver libclickhouseodbc>
# For example /usr/local/opt/clickhouse-odbc/lib/libclickhouseodbc.dylib
user = $CHYT_ALIAS
password = $YT_TOKEN
url = http://$YT_PROXY/chyt
port = 80
# trace = 1
# TraceFile=/tmp/odbc.log
Ниже представлен пример, как обратиться к CHYT через ODBC-интерфейс из командной строки, используя утилиту isql. Для этого необходимо записать файл с конфигурацией ~/.odbc.ini
, поставить Clickhouse ODBC драйвер из официального репозитория и воспользоваться утилитой isql.
isql -v clickhouse
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> SELECT * FROM "//tmp/sample_table"
+--+
| a|
+--+
| 2|
| 9|
| 6|
| 4|
| 8|
| 3|
| 1|
| 5|
| 7|
| 0|
+--+
SQLRowCount returns 10
10 rows fetched
JDBC-интерфейс
JDBC-драйвер конфигурируется схожим образом с ODBC-драйвером, смотрите пример ниже. Переменная YT_TOKEN
обозначает токен доступа к YTsaurus (AQAD-qJ…
), CHYT_ALIAS
— идентификатор либо алиас клики (ch_public
), YT_PROXY
— имя кластера.
JDBC URL = jdbc:clickhouse://{host}:{port}/chyt?chyt.clique_alias={clique_alias}
host = $YT_PROXY
user = $CHYT_ALIAS
password = $YT_TOKEN
port = 80
Кроме того, необходимо изменить свойства драйвера:
check_for_redirects=true
;use_path_as_db=false
.
JDBC-драйвер можно использовать как основу при использовании open-source программы для работы с базами данных DBeaver. Тестирование проводилось на версии DBeaver 6.1.5. В случае если ClickHouse-JDBC драйвер не устанавливается автоматически, его необходимо скачать вручную. При этом необходимо использовать версию драйвера старше 0.1.55.
CLI и Python API
У CHYT есть официальный API для языка Python и официальная утилита командной строки. Подробнее можно прочитать CLI и Python API.