---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/reference/ydb-cli/workload-click-bench.md?version=v25.4
  - https://ydb.tech/docs/ru/reference/ydb-cli/workload-click-bench.md?version=v25.4
  - href: ru/reference/ydb-cli/workload-click-bench.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
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             | `row`                                   |
| `--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`                                              | Если по указанному пути таблица уже была создана, она будет удалена                 |                                         |

## Загрузка данных в таблицу { #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`. Очистить файл состояния и начать загрузку сначала.                                                                                                                                                                                                                                                             |                       |

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

Имя | Описание | Значение по умолчанию
---|---|---
`--upload-threads <значение>` или `-t <значение>` | Количество потоков исполнения для подготовки данных. | Cоответствует количеству доступных ядер на клиентской машине.
`--bulk-size <значение>` | Размер порции для отправки данных в строках. | 10000
`--max-in-flight <значение>` | Максимально количество порций данных, одновременно находящихся в обработке. | 128
<!-- 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}

Имя | Описание | Значение по умолчанию
---|---|---
`--output <значение>` |  Имя файла, в котором будут сохранены результаты выполнения запросов. | `results.out`
`--iterations <значение>` | Количество выполнений каждого из запросов нагрузки. | `1`
`--json <имя>` | Имя файла, в котором будет сохранена статистика выполнения запросов в формате `json`. | Файл не сохраняется
`--ministat  <имя>` | Имя файла, в котором будет сохранена статистика выполнения запросов в формате `ministat`. | Файл не сохраняется
`--plan  <имя>` | Имя файла для сохранения плана запроса. Если задано, то сохраняются файлы `<имя>.<номер запроса>.explain` и `<имя>.<номер запроса>.<номер итерации>` с планами в нескольких форматах: `ast`, `json`, `svg` и `table`. | Планы не сохраняется.
`--query-prefix <префикс>` | Префикс запроса. Каждый префикс будет добавлен отдельной строкой в начало каждого запроса. Если нужно указать несколько префиксов, используйте параметр несколько раз. | По умолчанию не задан
`--retries` | Количество повторных попыток выполнения каждого запроса | `0`
`--include` | Номера или отрезки номеров запросов, которые нужно выполнить в рамках нагрузки. Указываются через запятую, например `1,2,4-6`. | Все запросы
`--exclude` | Номера или отрезки номеров запросов, которые нужно исключить в рамках нагрузки. Указываются через запятую, например `1,2,4-6`. |
`--executer` | Механизм выполнения запросов, доступные значения: `scan`, `generic`. | `generic`
`--verbose` или `-v` | Выводить больше информации на экран в процессе выполнения запросов. |
| `--threads <значение>` или `-t <значение>` | Количество потоков, генерирующих нагрузку |
<!-- endsource: ru/reference/ydb-cli/_includes/workload/run_options.md -->

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

| Имя                                          | Описание                                                                                                              | Значение по умолчанию |
|----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------|
| `--ext-queries <запросы>` или `-q <запросы>` | Внешние запросы для выполнения нагрузки, разделенные точкой с запятой.                                                |                       |
| `--ext-queries-file <имя>`                   | Имя файла, в котором можно указать внешние запросы для выполнения нагрузки, разделенные точкой с запятой.             |                       |
| `--ext-query-dir <имя>`                      | Директория с внешними запросами для выполнения нагрузки. Запросы должны лежать в файлах с именами `q[0-42].sql`.      |                       |
| `--ext-results-dir <имя>`                    | Директория с внешними результатами запросов для сравнения. Результаты должны лежать в файлах с именами `q[0-42].sql`. |                       |
|  `--check-canonical` или `-c`                | Использовать специальные детерминированные внутренние запросы и сверять результаты с каноническими.                   |                       |

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

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

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

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