TPC-DS нагрузка

Нагрузка базируется на документе TPC-DS документация, а запросы и схемы таблиц адаптированы под YDB.

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

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

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

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

Доступные параметры

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

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

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

ydb workload tpcds --path tpcds/s1 init

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

ydb workload tpcds init --help

Доступные параметры

Имя Описание Значение по умолчанию
--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
--float-mode <значение> Какой тип данных использовать для полей вещественного типа. Возможные значения: float, decimal и decimal_ydb. float - использовать тип Float, decimal - Decimal с размерностью, заданной стандартом теста, а decimal_ydb - использовать тип Decimal(22,9) - единственный, который сейчас поддерживает YDB. float
--clear Если по указанному пути таблица уже была создана, она будет удалена.

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

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

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

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

ydb workload tpcds import --help

Доступные параметры

Имя Описание Значение по умолчанию
--scale <значение> Масштаб данных. Обычно используются степени десяти.
--tables <значение> Список таблиц для генерации, разделенный запятыми. Доступные таблицы: customer, nation, order_line, part_psupp, region, supplier. Все таблицы
--proccess-count <значение> или -C <значение> Генерация данных может быть на разбита на несколько процессов, этот параметр задает количество процессов. 1
--proccess-index <значение> или -i <значение> Генерация данных может быть на разбита на несколько процессов, этот параметр задает номер процесса. 0.
--state <путь> Путь к файлу состояния загрузки. Если загрузка была прервана по какой-то причине, при новом запуске загрузка будет продолжена с того же места.
--clear-state Актуально, если задан параметр --state. Очистить файл состояния и начать загрузку сначала.

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

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

Запуск нагрузочного теста

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

ydb workload tpcds --path tpcds/s1 run

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

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

ydb workload tpcds run --help

Общие параметры для всех видов нагрузки

Имя Описание Значение по умолчанию
--output <значение> Имя файла, в котором будут сохранены результаты выполнения запросов. results.out
--iterations <значение> Количество выполнений каждого из запросов нагрузки. 1
--json <имя> Имя файла, в котором будет сохранена статистика выполнения запросов в формате json. Файл не сохраняется
--ministat <имя> Имя файла, в котором будет сохранена статистика выполнения запросов в формате ministat. Файл не сохраняется
--plan <имя> Имя файла для сохранения плана запроса. Если задано, то сохраняются файлы <имя>.<номер запроса>.explain и <имя>.<номер запроса>.<номер итерации> с планами в нескольких форматах: ast, json, svg и table. Планы не сохраняется.
--query-settings <настройка> Настройки выполнения запроса. Каждая настройка будет добавлена отдельной строчкой в начале каждого запроса. Если нужно указать несколько настроек, используйте параметр несколько раз.
--include Номера или отрезки номеров запросов, которые нужно выполнить в рамках нагрузки. Указываются через запятую, например 1,2,4-6. Все запросы
--exclude Номера или отрезки номеров запросов, которые нужно исключить в рамках нагрузки. Указываются через запятую, например 1,2,4-6.
--executer Механизм выполнения запросов, доступные значения: scan, generic. generic
--verbose или -v Выводить больше информации на экран в процессе выполнения запросов.

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

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

Очистка данных теста

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

ydb workload tpcds --path tpcds/s1 clean

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