Найти в Дзене
Postgres Professional

Просто улет: новая версия демобазы

Вместо искусственных таблиц у нас уже девять лет есть свой общий мир данных — учебная авиакомпания, на которой разбирали SQL, индексы и планы запросов в книгах, курсах и демках Postgres Pro. За это время выросли задачи: понадобились глобальные маршруты, большие объемы, реалистичные сценарии и возможность крутить нагрузку, а не просто смотреть на статичный дамп. И мы выпустили вторую версию. Это глобальная авиакомпания с задержками, стыковками и историей перелетов. В комплекте с имитационным генератором нагрузки. Развернули один раз — и у вас живая среда, где можно учить SQL, разбираться в работе планировщика и безопасно пробовать тюнинг. 🔹 Объемы и данные Есть варианты дампов за 3, 6, 12 месяцев и 2 года объемом от 1 до 11 ГБ. Небольшие варианты подходят для обучения и простых примеров. Крупные дают до 10 млн бронирований и 21 млн билетов — на таких данных уже есть смысл показывать секционирование и шардирование, работу индексов, статистики и планировщика. Структура данных повзрослел

Вместо искусственных таблиц у нас уже девять лет есть свой общий мир данных — учебная авиакомпания, на которой разбирали SQL, индексы и планы запросов в книгах, курсах и демках Postgres Pro.

За это время выросли задачи: понадобились глобальные маршруты, большие объемы, реалистичные сценарии и возможность крутить нагрузку, а не просто смотреть на статичный дамп.

И мы выпустили вторую версию.

Это глобальная авиакомпания с задержками, стыковками и историей перелетов. В комплекте с имитационным генератором нагрузки. Развернули один раз — и у вас живая среда, где можно учить SQL, разбираться в работе планировщика и безопасно пробовать тюнинг.

🔹 Объемы и данные

Есть варианты дампов за 3, 6, 12 месяцев и 2 года объемом от 1 до 11 ГБ.

Небольшие варианты подходят для обучения и простых примеров. Крупные дают до 10 млн бронирований и 21 млн билетов — на таких данных уже есть смысл показывать секционирование и шардирование, работу индексов, статистики и планировщика.

Структура данных повзрослела: отдельно описаны маршруты, рейсы, сегменты перелетов, места и посадочные талоны, учтены стыковки, задержки и опоздания.

Справочники аэропортов, городов, стран и самолетов организованы так, что названия можно показывать на разных языках. Нужный язык выбирается настройкой.

🔹 Имитационная модель вместо дампа

Главное отличие от старой версии — под капотом не статичный дамп, а имитационная модель. Генератор ведет себя как информационная система авиакомпании: поток бронирований, вылеты, посадки, задержки, сорванные стыковки.

Выбираете период, интенсивность полетов, долю задержек, состав флота — и получаете живую нагрузку, близкую по поведению к реальной системе.

Исходники генератора открыты на GitHub.

🔹 Кому пригодится

✔️ Админам — тренировать настройки, мониторинг, резервные копии и сценарии отказов.

✔️ Разработчикам — писать нетривиальные запросы, играть с индексами и статистикой, смотреть на планы выполнения.

✔️ Преподавателям — строить практику на той же базе, что используется в книгах и курсах Postgres Pro.

Postgres должен объединять людей, поэтому демобаза и генератор распространяются по лицензии MIT.

Используйте демобазу 2.0 в своих курсах, тренажерах и статьях, адаптируйте под свои сценарии и делитесь результатами.

Полную версию статьи читайте на Хабре.