Star Schema Benchmark (SSB, 2009)
Star Schema Benchmark в значительной степени основан на таблицах и запросах TPC-H, но в отличие от TPC-H, он использует структуру звездной схемы. Основная часть данных располагается в гигантской таблице фактов, окруженной несколькими небольшими таблицами размерностей. Запросы объединяют таблицу фактов с одной или несколькими таблицами размерностей для применения критериев фильтрации, например, MONTH = 'JANUARY'
.
Ссылки:
- Star Schema Benchmark (O'Neil и др.), 2009
- Variations of the Star Schema Benchmark to Test the Effects of Data Skew on Query Performance (Rabl. и др.), 2013
Сначала клонируйте репозиторий star schema benchmark и скомпилируйте генератор данных:
Затем сгенерируйте данные. Параметр -s
задает масштабный фактор. Например, с -s 100
будет сгенерировано 600 миллионов строк.
Теперь создайте таблицы в ClickHouse:
Данные могут быть импортированы следующим образом:
Во многих случаях использования ClickHouse несколько таблиц преобразуются в одну денормализованную плоскую таблицу. Этот шаг является необязательным, ниже приведены запросы в их оригинальной форме и в формате, переписанном для денормализованной таблицы.
Запросы генерируются с помощью ./qgen -s <масштабный_фактор>
. Пример запросов для 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
Денормализованная таблица: