Куб OLAP — это многомерный массив данных. [1] Онлайн-аналитическая обработка (OLAP) [2] — это компьютерный метод анализа данных для поиска информации. Термин «куб» здесь относится к многомерному набору данных, который также иногда называют гиперкубом, если число измерений больше трех.
Куб можно считать многомерным обобщением двух- или трехмерной электронной таблицы . Например, компания может захотеть суммировать финансовые данные по продукту, по периоду времени и по городу, чтобы сравнить фактические и бюджетные расходы. Продукт, время, город и сценарий (фактический и бюджетный) являются измерениями данных. [3]
Куб — это сокращение от многомерный набор данных , учитывая, что данные могут иметь произвольное количество измерений . Иногда используется термин гиперкуб , особенно для данных с более чем тремя измерениями. Куб не является «кубом» в строгом математическом смысле, так как стороны не обязательно все равны. Но этот термин используется широко.
Срез — это термин для подмножества данных, сгенерированного путем выбора значения для одного измерения и отображения данных только для этого значения (например, только данные в один момент времени). Электронные таблицы являются только 2-мерными, поэтому с помощью (продолжительного) среза или других методов становится возможным визуализировать в них многомерные данные.
Каждая ячейка куба содержит число, представляющее собой определенную меру бизнеса, например, продажи, прибыль, расходы, бюджет и прогноз.
Данные OLAP обычно хранятся в схеме «звезда» или «снежинка» в реляционном хранилище данных или в специальной системе управления данными. Меры выводятся из записей в таблице фактов , а измерения выводятся из таблиц измерений .
Элементы измерения могут быть организованы как иерархия , [ 4] набор родительско-дочерних отношений, обычно где родительский элемент суммирует своих дочерних элементов. Родительские элементы могут быть далее объединены как дочерние элементы другого родителя. [5]
Например, родительским элементом для мая 2005 года является второй квартал 2005 года, который, в свою очередь, является дочерним элементом для года 2005. Аналогично города являются дочерними элементами регионов; продукты объединяются в группы продуктов, а отдельные статьи расходов — в типы расходов.
Представление данных в виде куба с иерархическими измерениями приводит к концептуально простым операциям для облегчения анализа. Согласование содержимого данных с привычной визуализацией улучшает обучение и производительность аналитика. [5] Инициируемый пользователем процесс навигации путем вызова интерактивного отображения страниц с помощью спецификации срезов посредством поворотов и детализации/развертывания иногда называется «разрез и кубик». К распространенным операциям относятся разрез и кубик, детализация, свертывание и поворот.
Срез — это процесс выбора прямоугольного подмножества куба путем выбора одного значения для одного из его измерений, в результате чего создается новый куб с меньшим числом измерений. [5] На рисунке показана операция среза: данные о продажах по всем регионам продаж и по всем категориям продуктов компании за 2005 и 2006 годы «срезаются» из куба данных.
Игральная кость : операция бросания кубика создает подкуб, позволяя аналитику выбирать определенные значения из нескольких измерений. [6] На рисунке показана операция бросания кубика: новый куб показывает цифры продаж ограниченного числа категорий продуктов, измерения времени и региона охватывают тот же диапазон, что и раньше.
Drill Down/Up позволяет пользователю перемещаться по уровням данных от наиболее обобщенных (вверх) до наиболее подробных (вниз). [5] На рисунке показана операция детализации: аналитик переходит от сводной категории «Средства защиты на открытом воздухе», чтобы увидеть данные о продажах отдельных продуктов.
Свертывание : Свертывание включает в себя суммирование данных по измерению. Правило суммирования может быть агрегатной функцией , например, вычисление итогов по иерархии или применение набора формул, таких как «прибыль = продажи - расходы». [5] Общие функции агрегации могут быть затратными для вычисления при свертке: если их нельзя определить из ячеек куба, их необходимо вычислить из базовых данных, либо вычислив их онлайн (медленно), либо предварительно вычислив их для возможных свертков (большое пространство). Функции агрегации, которые можно определить из ячеек, известны как разложимые функции агрегации и позволяют выполнять эффективные вычисления. [7] Например, легко поддерживать COUNT, MAX, MIN,
и SUM
в OLAP, поскольку их можно вычислить для каждой ячейки куба OLAP, а затем свернуть, поскольку общая сумма (или количество и т. д.) является суммой подсумм, но трудно поддерживать MEDIAN
, поскольку это должно быть вычислено для каждого представления отдельно: медиана набора не является медианой медиан подмножеств.
Pivot позволяет аналитику вращать куб в пространстве, чтобы увидеть его различные грани. Например, города можно расположить вертикально, а продукты горизонтально, просматривая данные за определенный квартал. Pivoting может заменить продукты на временные периоды, чтобы увидеть данные по времени для одного продукта. [5] [8]
На рисунке показана операция поворота: весь куб поворачивается, что позволяет по-другому взглянуть на данные.
В теории баз данных куб OLAP является [9] абстрактным представлением проекции отношения СУРБД . При наличии отношения порядка N рассмотрим проекцию, которая содержит X , Y и Z в качестве ключа и W в качестве остаточного атрибута . Характеризуя это как функцию ,
атрибуты X , Y и Z соответствуют осям куба, а значение W соответствует элементу данных, который заполняет каждую ячейку куба.
Поскольку двумерные устройства вывода не могут легко охарактеризовать три измерения, более практично проецировать «срезы» куба данных (мы говорим «проекция» в классическом векторно-аналитическом смысле сокращения размерности, а не в смысле SQL , хотя эти два понятия концептуально схожи),
который может подавлять первичный ключ, но все равно иметь некоторую семантическую значимость, возможно, часть триадического функционального представления для заданного интересующего значения Z.
Мотивация [9] отображения OLAP восходит к парадигме перекрестных отчетов СУБД 1980-х годов и к более ранним таблицам сопряженности 1904 года. Результатом является отображение в стиле электронной таблицы, где значения X заполняют строку $1; значения Y заполняют столбец $A; а значения g : ( X , Y ) → W заполняют отдельные ячейки на пересечениях столбцов с метками X и строк с метками Y , так сказать, «юго-восток» $B$2, включая сам $B$2.