Что такое OLAP?

«Что такое OLAP?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

OLAP (Online Analytical Processing) — это технология для сложного многомерного анализа больших объемов исторических данных, оптимизированная для операций чтения и агрегации.

Основные концепции:

  • Куб данных (OLAP-куб): Многомерная структура, где измерения (например, Время, Регион, Товар) образуют оси, а ячейки содержат агрегированные меры (например, Сумма продаж).
  • Основные операции:
    • Slice (срез): Выбор подмножества куба по фиксированному значению одного измерения.
    • Dice (сечение): Выбор подмножества по диапазону значений нескольких измерений.
    • Drill Down/Up (детализация/свертка): Переход на более детальный или более обобщенный уровень иерархии измерений.
    • Pivot (поворот): Изменение расположения измерений на осях отчета.

Пример SQL-запроса, иллюстрирующего OLAP-аналитику (использующего CUBE):

-- Агрегация продаж по всем комбинациям региона и месяца
SELECT
    region,
    EXTRACT(MONTH FROM sale_date) AS month,
    SUM(amount) AS total_sales
FROM sales
GROUP BY CUBE(region, EXTRACT(MONTH FROM sale_date));

OLAP является фундаментом для BI-систем (Business Intelligence) и работает поверх хранилищ данных (Data Warehouse), таких как Snowflake, Amazon Redshift или специализированных OLAP-СУБД (ClickHouse).