---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.4
alternate:
  - https://ydb.tech/docs/en/reference/ydb-cli/workload-click-bench.md
  - https://ydb.tech/docs/ru/reference/ydb-cli/workload-click-bench.md
sourcePath: ru/core/reference/ydb-cli/workload-click-bench.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# ClickBench нагрузка

Нагрузка базируется на данных и запросах из репозитория [https://github.com/ClickHouse/ClickBench](https://github.com/ClickHouse/ClickBench), а запросы и схема таблицы адаптированы под YDB.

Тест генерирует типичную рабочую нагрузку в следующих областях: анализ потока кликов и трафика, веб-аналитика, машинно-генерируемые данные, структурированные журналы и данные о событиях. Он охватывает типичные запросы в аналитике и информационных панелях реального времени.

Набор данных для бенчмарка был получен на основе фактической записи трафика одной из крупнейших в мире платформ веб-аналитики. Он анонимизирован, при этом сохраняет все основные распределения данных. Набор запросов был импровизирован, чтобы отразить реалистичные рабочие нагрузки, в то время как запросы не исходят непосредственно из производства.

## Общие параметры команд

Все команды поддерживают общий параметр `--path`, который задает путь к таблице в базе данных:

```bash
ydb  workload clickbench --path clickbench/hits ...
```

### Доступные параметры { #common_options }

| Имя                | Описание       | Значение по умолчанию |
|--------------------|----------------|-----------------------|
|  `--path` или `-p` | Путь к таблице | `clickbench/hits`     |

## Инициализация нагрузочного теста { #init }

Перед запуском теста создайте таблицу:

```bash
ydb workload clickbench --path clickbench/hits init
```

Посмотрите описание команды для запуска нагрузки:

```bash
ydb workload clickbench init --help
```

### Доступные параметры { #init_options }

| Имя                                                     | Описание                                                                            | Значение по умолчанию                   |
|---------------------------------------------------------|-------------------------------------------------------------------------------------|-----------------------------------------|
| `--store <значение>`                                    | Тип хранилища таблиц. Возможные значения: `row`, `column`, `external-s3             | `column`                                   |
| `--external-s3-prefix <значение>`                       | Актуально только для внешних таблиц. Корневой путь к набору данных в S3-хранилище   |                                         |
| `--external-s3-endpoint <значение>` или `-e <значение>` | Актуально только для внешних таблиц. Ссылка на S3-Bucket с данными                  |                                         |
| `--string`                                              | Использовать для текстовых полей тип `String`                                       | `Utf8`                                  |
| `--datetime`                                            | Использовать для полей, связанных со временем типа `Date`, `Datetime` и `Timestamp` | `Date32`, `Datetime64` и `Timestamp64`. |
| `--partition-size`        | Максимальный размер партиции в мегабайтах (`AUTO_PARTITIONING_PARTITION_SIZE_MB`) для строчных таблиц. | 2000 |
| `--clear`                 | Если по указанному пути таблица уже была создана, она будет удалена.                               |      |
| `--dry-run`               | Не выполнять инициализационные запросы, а только вывести их текст.                             |      |

## Загрузка данных в таблицу { #load }

Загрузите данные в таблицу. Для этого скачайте архив с данными, затем загрузите данные в таблицу:

```bash
wget https://datasets.clickhouse.com/hits_compatible/hits.csv.gz
ydb workload clickbench --path clickbench/hits import files --input hits.csv.gz
```

В качестве исходных файлов можно использовать как распакованные и запакованные csv и tsv файлы, так и директории с такими файлами.

### Доступные параметры { #load_files_options }

| Имя                              | Описание                                                                                                                                                                                                                                                                                                                                                 | Значение по умолчанию |
|----------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|
| `--input <путь>` или `-i <путь>` | Путь к исходным файлам с данными. Поддерживаются как распакованные и запакованные csv и tsv файлы, так и директории с такими файлами. Данные могут быть загружены с официального сайта ClickBench: [csv.gz](https://datasets.clickhouse.com/hits_compatible/hits.csv.gz), [tsv.gz](https://datasets.clickhouse.com/hits_compatible/hits.tsv.gz). Для ускорения загрузки можно разбить эти файлы на более мелкие части, в этом случае части буду загружаться параллельно. |                       |
| `--state <путь>`                 | Путь к файлу состояния загрузки. Если загрузка была прервана по какой-то причине, при новом запуске загрузка будет продолжена с того же места.                                                                                                                                                                                                           |                       |
| `--clear-state`                  | Актуально, если задан параметр `--state`. Очистить файл состояния и начать загрузку сначала.                                                                                                                                                                                                                                                             |                       |
| `--dry-run`                      | Не выполнять загрузку данных в базу данных, только подготовить данные и вывести об этом сообщение. | |

<!-- source: ru/reference/ydb-cli/_includes/workload/load_options.md -->
### Общие параметры команды import {#load_options}

Имя | Описание | Значение по умолчанию
---|---|---
`--upload-threads <значение>` или `-t <значение>` | Количество потоков исполнения для подготовки данных. | Рассчитывается автоматически и равно числу доступных ядер на клиентской машине.
`--bulk-size <значение>` | Размер порции для отправки данных в строках. | 10000
`--max-in-flight <значение>` | Максимальное количество порций данных, одновременно находящихся в обработке. | 128
`--file-output-path <значение>` или `-f <путь>` | Если эта опция установлена, данные не будут загружены в базу данных, а будут сохранены в каталоге <путь>. |
<!-- endsource: ru/reference/ydb-cli/_includes/workload/load_options.md -->

## Запуск нагрузочного теста { #run }

Запустите нагрузку:

```bash
ydb workload clickbench  --path clickbench/hits run
```

В течение теста на экран выводится статистика по нагрузке для каждого запроса.

Посмотрите описание команды для запуска нагрузки:

```bash
ydb workload clickbench run --help
```

<!-- source: ru/reference/ydb-cli/_includes/workload/run_options.md -->
### Общие параметры для всех видов нагрузки {#run_options}

Имя | Описание | Значение по умолчанию
---|---|---
`--dry-run` | Не выполнять инициализационные запросы, а только вывести их текст. |  
`--check-canonical` или `-c` | Использовать специальную версию запросов (они имеют детерминированные ответы) и сверять результаты с каноническими. |
`--output <значение>` |  Имя файла, в котором будут сохранены результаты выполнения запросов. | `results.out`
`--iterations <значение>` | Количество выполнений каждого из запросов нагрузки. | `1`
`--json <имя>` | Имя файла, в котором будет сохранена статистика выполнения запросов в формате `json`. | Файл не сохраняется
`--ministat <имя>` | Имя файла, в котором будет сохранена статистика выполнения запросов в формате `ministat`. | Файл не сохраняется
`--csv <имя>` | Имя файла для сохранения CSV-версии таблицы с результатами. | Файл не сохраняется
`--plan  <имя>` | Имя файла для сохранения плана запроса. Если задано, то сохраняются файлы `<имя>.<номер запроса>.explain` и `<имя>.<номер запроса>.<номер итерации>` с планами в нескольких форматах: `ast`, `json`, `svg` и `table`. | Планы не сохраняются.
`--query-prefix <префикс>` | Префикс запроса. Каждый префикс будет добавлен отдельной строкой в начало каждого запроса. Если нужно указать несколько префиксов, используйте параметр несколько раз. | По умолчанию не задан
`--retries` | Количество повторных попыток выполнения каждого запроса | `0`
`--include` | Имена, номера или диапазоны номеров запросов, которые нужно выполнить в рамках нагрузки. Указываются через запятую, например: `1,2,4-6`. | Все запросы
`--exclude` | Имена, номера или диапазоны номеров запросов, которые нужно исключить из нагрузки. Указываются через запятую, например: `1,2,4-6`. |
`--verbose` или `-v` | Выводить больше информации на экран в процессе выполнения запросов. |
`--global-timeout <значение>` | Общий таймаут на выполнение всех запросов. Задаётся в текстовом формате, например: `0.5s`, `1m`, `100us` и т.д. | Отсутствует. Время не ограничено.
`--request-timeout <значение>` | Таймаут на выполнение каждой итерации каждого запроса. Задаётся в текстовом формате, например: `0.5s`, `1m`, `100us` и т.д. | Отсутствует. Время не ограничено.
`--threads <значение>` или `-t <значение>` | Количество потоков, генерирующих нагрузку. Ноль означает, что запросы будут выполняться в основном потоке; при ином значении запросы будут перемешаны. | `0`
<!-- endsource: ru/reference/ydb-cli/_includes/workload/run_options.md -->

### Опции, специфичные для ClickBench { #run_clickbench_options }

| Имя                   | Описание                                                        | Значение по умолчанию |
|-----------------------|-----------------------------------------------------------------|------------------------|
| `--syntax <значение>` | Какой вариант синтаксиса запросов использовать: `yql`. Про работу с синтаксисом YQL можно прочитать [здесь](../../yql/reference/index.md). | `yql`                  |

## Очистка данных теста { #cleanup }

Запустите очистку:

```bash
ydb workload clickbench --path clickbench/hits clean
```

Команда не имеет параметров.
