Проведение нагрузочного тестирования
В YDB встроен инструментарий для проведения нагрузочного тестирования несколькими стандартными бенчмарками:
Бенчмаркам | Справка |
---|---|
TPC-H | tpch |
TPC-DS | tpcds |
ClickBench | clickbench |
Работают сходным образом, детальное описание для каждого см. в соответствующих разделах, ссылки выше.
Все команды для работы с бенчмарками собраны в соответствующие группы, при этом для всех команд единым образом задается путь в БД:
ydb workload clickbench --path path/in/database ...
ydb workload tpch --path path/in/database ...
ydb workload tpcds --path path/in/database ...
Нагрузочное тестирование можно разбить на 3 этапа:
Подготовка данных
Состоит из двух этапов, это инициализация таблиц и наполнение их данными.
Инициализация
Инициализация производится командой init
:
ydb workload clickbench --path clickbench/hits init --store=row
ydb workload tpch --path tpch/s1 init --store=column
ydb workload tpcds --path tpcds/s1 init --store=external-s3
На данном этапе можно настроить создаваемые таблицы:
- Выбрать тип используемых таблиц: строковые, колоночные, внешние и тд. (параметр
--store
); - Выбрать типы используемых колонок: строк (параметр
--string
), дат и времени (--datetime
) и тип вещественных чисел (--float-mode
).
Также можно указать, что перед созданием таблицы должны быть удалены, если они уже созданы. Параметра --clear
Подробнее см. описание команд для каждого бенчмарка:
Наполнение данными
Наполнение данными выполняется при помощи команды import
. Данная команда специфична для каждого бенчмарка и её поведение зависит от подкоманд. При этом есть и общие для всех параметры.
Подробное описание см. в соответствующих разделах:
Примеры:
ydb workload clickbench --path clickbench/hits import files --input hits.csv.gz
ydb workload tpch --path tpch/s1 import generator --scale 1
ydb workload tpcds --path tpcds/s1 import generator --scale 1
Тестирование
Непосредственно тестирование выполняется командой run
. Её поведение практически одинаково для разных бенчмарков, хотя некоторые различия всё-таки присутствуют.
Примеры:
ydb workload clickbench --path clickbench/hits run --include 1-5,8
ydb workload tpch --path tpch/s1 run --exсlude 3,4 --iterations 3
ydb workload tpcds --path tpcds/s1 run --plan ~/query_plan --include 2 --iterations 5
Команда позволяет выбрать запросы для исполнения, сгенерировать несколько видов отчетов, собрать статистику исполнения и тд.
Подробное описание см. в соответствующих разделах:
Очистка
После выполнения всего необходимого тестирования данные могут быть удалены из БД.
Сделано это может быть при помощи команды clean
:
ydb workload clickbench --path clickbench/hits clean
ydb workload tpch --path tpch/s1 clean
ydb workload tpcds --path tpcds/s1 clean
Подробное описание см. в соответствующих разделах: