Выполнение запросов
С помощью данной команды можно исполнить произвольный запрос в клике. Смотрите также статью Как попробовать, в которой перечислены альтернативные способы задать запрос в клику CHYT.
CLI
Команда yt clickhouse execute
имеет следующие параметры (в скобках указаны значения по умолчанию):
-
query
— запрос. -
--proxy
— кластер, на котором будет запущена клика, например. Данную опцию также можно задать через переменную окруженияYT_PROXY
(например,export YT_PROXY=<cluster_name>
). -
--alias
— алиас, под которым будет доступна клика. Данную опцию также можно задать через переменную окруженияCHYT_ALIAS
(export CHYT_ALIAS=example
). -
--format
[TabSeparated] — формат ClickHouse, в котором следует выдать результат. -
--setting
— позволяет передать произвольную настройку в запрос в формате<key>=<value>
, может быть указана несколько раз.
Python API
Внимание
Для использования данной функции нужно обязательно настроить логирование на уровне Debug. Без debug logs ответить на какой-либо вопрос про исполнение запроса (включая "почему бежит так долго", "почему упал", "почему выдал такие ответ") невозможно.
В модуле yt.clickhouse
доступен следующий метод (часть параметров намеренно не упомянута, т.к. не предназначена для использования в обычной ситуации):
def execute(
query,
alias=None,
format=None,
settings=None,
raw=None,
client=None):
pass
Часть параметров пересекается с опциями командной строки, для них верно всё то же, что сказано в предыдущем разделе. Функция возвращает генератор строк из результата, причём в качестве строк могут выступать как python-объекты (списки, словари, числа, строки), так и строки в заказанном формате.
Опишем отдельные параметры и отличия от запуска через CLI:
-
format
(None) иraw
(False) — эти опции контролируют тип возвращаемых значений. Еслиraw = False
, то функция будет самостоятельно превращать значения в python-объекты аналогично тому, как это делает метод YTsaurus Python API read_table. Если жеraw = True
, то нужно дополнительно указать формат ClickHouse, тогда возвращаемым значением будет итератор по строкам (str) в заказанном формате. -
settings
({}) — словарь с дополнительными настройками ClickHouse для запроса. -
client
— клиент от YTsaurus кластера, в котором следует запустить запрос к клике. По умолчанию берётся глобальный клиент; можно, например, передать качестве клиентаyt.wrapper.YtClient("<cluster_name>")
и указать, таким образом, нужный кластер. Подробнее можно прочитать в соответствующем разделе документации Python API.