Сравнительный отчет по бенчмарку SSB для YMatrix и ClickHouse

Обзор теста


В данном тесте сравнивалась производительность YMatrix и ClickHouse (далее — CK) в сценариях анализа запросов к одиночной таблице. Результаты показывают, что YMatrix превосходит CK на 24% и 37% соответственно при двух масштабах тестовых данных.

SSB — это стандартный набор тестов «звезда», широко используемый в индустрии. Он представляет собой критерий оценки «стоимость/производительность» для аналитических сценариев, эволюционировавший из TPC-H. В бенчмарке SSB определено 13 сценариев запросов, позволяющих всесторонне оценить производительность аналитической СУБД.

С развитием практик использования цифровых хранилищ оригинальная архитектура SSB перестала полностью соответствовать современным паттернам использования. В недавнем бенчмарке Apache Druid была предложена модификация SSB на основе оригинальной версии: данные из нескольких исходных таблиц агрегируются в одну широкую таблицу, после чего тесты SSB выполняются именно на ней. Этот подход также применяется в последних результатах бенчмарка SSB от ClickHouse.

Тестовая среда


Аппаратная среда

Машина vCPU ОЗУ Пропускная способность EBS
AWS EC2, m5.8xlarge 64 128 ГБ 10 Гбит/с gp3, iops = 3000, пропускная способность = 125 МБ/с

Программная среда

Для максимально точного воспроизведения последних результатов ClickHouse, бенчмарк SSB для YMatrix использует ту же среду и сценарии, что и ClickHouse: одиночное развертывание и автоматически выбранную YMatrix стандартную конфигурацию. В описанной выше аппаратной среде задействовано 6 узлов Segment.

План теста


В этом тесте YMatrix использовал модель SSB, идентичную используемой ClickHouse, и провел тестирование на масштабах данных 100x и 1000x (масштаб данных SSB основан на коэффициенте масштаба TPC-H).

Объем широкой таблицы при масштабе 100x составляет около 600 миллионов записей, при масштабе 1000x — около 6 миллиардов записей.
Результаты ClickHouse для масштаба 100x взяты из официальных данных, однако официальные результаты для масштаба 1000x не публиковались, поэтому результаты для 1000x были измерены инженерами YMatrix на том же аппаратном обеспечении.

Этапы тестирования


  1. Подготовка тестовой среды
    Как описано в разделе «Аппаратная среда», инициализируйте виртуальную машину на AWS. Затем установите тестовый кластер в соответствии с инструкцией на официальном сайте YMatrix.

  2. Скачивание инструмента бенчмарка SSB

    git clone https://github.com/ymatrix-data/ssb.git

    Примечание!
    Инструмент SSB от YMatrix является открытым и простым в использовании — приглашаем попробовать!

  3. Проверка среды

    ./validate_environment.sh
  4. Генерация тестовых данных
    С помощью параметра -s 100 сгенерируйте данные масштаба 100x.

    ./generate_data.sh -s 100
  5. Импорт тестовых данных
    Инструмент поддерживает импорт наборов данных различных размеров. Сгенерированный набор данных масштаба 100x импортируется в YMatrix с помощью параметра -s 100. По умолчанию используется метод импорта MatrixGate, обеспечивающий высокую параллельность, распределенность, потоковую и пакетную запись данных. В настоящее время поддерживаются режимы MatrixGate и COPY. Для изменения метода импорта используйте параметр -t.

    ./import_data.sh -s 100
  6. Генерация широкой таблицы
    YMatrix вносит необходимые корректировки в структуру таблиц и запросы бенчмарка SSB, после чего выполняет:

    ./generate_flat_table.sh -s 100
  7. Запуск бенчмарка SSB

    ./ssb.sh -s 100

Выводы теста


Окончательные результаты теста представлены ниже:

Масштаб данных ClickHouse (мс) YMatrix (мс) Прирост
100x 1112 840 24%
1000x 5794 3670 37%