Star Schema Benchmark (SSB, 2009)
Star Schema Benchmark в значительной степени основан на таблицах и запросах TPC-H, но в отличие от TPC-H, использует макет звёздной схемы. Основная часть данных находится в гигантской таблице фактов, окружаемой несколькими небольшими таблицами измерений. Запросы соединяют таблицу фактов с одной или несколькими таблицами измерений, чтобы применить критерии фильтрации, например, MONTH = 'JANUARY'
.
Ссылки:
- Star Schema Benchmark (O'Neil et. al), 2009
- Вариации Star Schema Benchmark для тестирования влияния сдвига данных на производительность запросов (Rabl et. al.), 2013
Сначала ознакомьтесь с репозиторием Star Schema Benchmark и соберите генератор данных:
Затем сгенерируйте данные. Параметр -s
указывает масштабный коэффициент. Например, с -s 100
генерируется 600 миллионов строк.
Теперь создайте таблицы в ClickHouse:
Данные можно импортировать следующим образом:
Во многих случаях использования ClickHouse несколько таблиц конвертируются в одну единую денормализованную плоскую таблицу. Это шаг является необязательным, ниже приведены запросы в их оригинальной форме и в формате, переписанном для денормализованной таблицы.
Запросы генерируются с помощью ./qgen -s <scaling_factor>
. Примеры запросов для s = 100
:
Q1.1
Денормализованная таблица:
Q1.2
Денормализованная таблица:
Q1.3
Денормализованная таблица:
Q2.1
Денормализованная таблица:
Q2.2
Денормализованная таблица:
Q2.3
Денормализованная таблица:
Q3.1
Денормализованная таблица:
Q3.2
Денормализованная таблица:
Q3.3
Денормализованная таблица:
Q3.4
Денормализованная таблица:
Q4.1
Денормализованная таблица:
Q4.2
Денормализованная таблица:
Q4.3
Денормализованная таблица: