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
Денормализованная таблица: