---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/user-guide/data-processing/chyt/reference/execute.md
  - https://ytsaurus.tech/docs/ru/user-guide/data-processing/chyt/reference/execute.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

<!-- source: ru/_includes/user-guide/data-processing/chyt/reference/execute.md -->
# Выполнение запросов

С помощью данной команды можно исполнить произвольный запрос в клике. Смотрите также статью [Как попробовать](https://ytsaurus.tech/docs/ru/user-guide/data-processing/chyt/try-chyt.md), в которой перечислены альтернативные способы задать запрос в клику CHYT.

## CLI { #cli }

Команда `yt clickhouse execute` имеет следующие параметры (в скобках указаны значения по умолчанию):

- `query` — запрос.

- `--proxy` — кластер, на котором будет запущена клика, например. Данную опцию также можно задать через переменную окружения `YT_PROXY` (например, `export YT_PROXY=<cluster_name>`).

- `--alias` — алиас, под которым будет доступна клика. Данную опцию также можно задать через переменную окружения `CHYT_ALIAS` (`export CHYT_ALIAS=example`).

- `--format` [TabSeparated] — [формат ClickHouse](https://clickhouse.tech/docs/ru/interfaces/formats/), в котором следует выдать результат.

- `--setting` — позволяет передать произвольную настройку в запрос в формате `<key>=<value>`, может быть указана несколько раз.

## Python API   { #python }

{% note warning "Внимание" %}

Для использования данной функции нужно **обязательно** настроить логирование на уровне **Debug**. Без debug logs ответить на какой-либо вопрос про исполнение запроса (включая "почему бежит так долго", "почему упал", "почему выдал такие ответ") невозможно.

{% endnote %}

В модуле `yt.clickhouse` доступен следующий метод (часть параметров намеренно не упомянута, т.к. не предназначена для использования в обычной ситуации):

```python
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` ({}) — словарь с дополнительными [настройками](https://clickhouse.tech/docs/ru/operations/settings/settings/) ClickHouse для запроса.

- `client` — клиент от YTsaurus кластера, в котором следует запустить запрос к клике. По умолчанию берётся глобальный клиент; можно, например, передать качестве клиента `yt.wrapper.YtClient("<cluster_name>")` и указать, таким образом, нужный кластер. Подробнее можно прочитать в соответствующем разделе документации Python API.
<!-- endsource: ru/_includes/user-guide/data-processing/chyt/reference/execute.md -->