Star Schema Benchmark (SSB, 2009)
Star Schema Benchmark основан примерно на таблицах и запросах TPC-H, но в отличие от TPC-H, он использует схему звезды.
Основная часть данных находится в гигантской таблице фактов, окруженной несколькими небольшими таблицами измерений.
Запросы связывают таблицу фактов с одной или несколькими таблицами измерений, чтобы применить критерии фильтрации, например, MONTH = 'JANUARY'
.
Ссылки:
- Star Schema Benchmark (O'Neil и др.), 2009
- Вариации Star Schema Benchmark для тестирования влияния кривизны данных на производительность запросов (Rabl и др.), 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
Денормализованная таблица: