---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/reference/ydb-cli/workload-tpcds.md?version=v25.4
  - https://ydb.tech/docs/ru/reference/ydb-cli/workload-tpcds.md?version=v25.4
  - href: ru/reference/ydb-cli/workload-tpcds.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/reference/ydb-cli/workload-tpcds.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# TPC-DS нагрузка

Нагрузка базируется на документе TPC-DS [документация](https://www.tpc.org/TPC_Documents_Current_Versions/pdf/TPC-DS_v3.2.0.pdf), а запросы и схемы таблиц адаптированы под YDB.

Тест генерирует типичную рабочую нагрузку в области помощи в принятии решений.

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

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

```bash
ydb  workload tpcds --path tpcds/s1 ...
```

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

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

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

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

```bash
ydb workload tpcds --path tpcds/s1 init
```

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

```bash
ydb workload tpcds init --help
```

<!-- source: ru/reference/ydb-cli/_includes/workload/init_options_tpc.md -->
### Доступные параметры {#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 |
`--float-mode <значение>` | Какой тип данных использовать для полей вещественного типа. Возможные значения: `double` и `decimal`. `double` - использовать тип `Double`, `decimal` - `Decimal` с размерностью, заданной стандартом теста. | `double`
`--scale` | Задает процент от полного размера данных и нагрузки теста, который будет использоваться. | 1

`--clear` | Если по указанному пути таблица уже была создана, она будет удалена. |
<!-- endsource: ru/reference/ydb-cli/_includes/workload/init_options_tpc.md -->

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

Загрузите данные в таблицу. Данные будут сгенерированы непосредственно ydb:

```bash
ydb workload tpcds --path tpcds/s1 import generator --scale 1
```

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

```bash
ydb workload tpcds import --help
```

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

| Имя                                               | Описание                                                                                                                                       | Значение по умолчанию |
|---------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|
| `--scale <значение>`                              | Масштаб данных. Обычно используются степени десяти.                                                                                            |                       |
| `--tables <значение>`                             | Список таблиц для генерации, разделенный запятыми. Доступные таблицы: `customer`, `nation`, `order_line`, `part_psupp`, `region`, `supplier`.  | Все таблицы           |
| `--proccess-count <значение>` или `-C <значение>` | Генерация данных может быть на разбита на несколько процессов, этот параметр задает количество процессов.                                      | 1                     |
| `--proccess-index <значение>` или `-i <значение>` | Генерация данных может быть на разбита на несколько процессов, этот параметр задает номер процесса.                                            | 0.                    |
| `--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 tpcds --path tpcds/s1 run
```

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

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

```bash
ydb workload tpcds 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 -->

### Опции, специфичные для TPC-DS { #run_tpcds_options }

| Имя                      | Описание                                                                                                         | Значение по умолчанию |
|--------------------------|------------------------------------------------------------------------------------------------------------------|-----------------------|
|  `--ext-query-dir <имя>` | Директория с внешними запросами для выполнения нагрузки. Запросы должны лежать в файлах с именами `q[1-99].sql`. |                       |

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

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

```bash
ydb workload tpcds --path tpcds/s1 clean
```

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