Онлайн-аналитическая обработка - Online analytical processing

Интернет аналитической обработки , или OLAP ( / л æ р / ), представляет собой подход , чтобы ответить на многомерный аналитический (MDA) запросов быстро в вычислении . OLAP является частью более широкой категории бизнес-аналитики , которая также включает реляционные базы данных , написание отчетов и интеллектуальный анализ данных . Типичные приложения OLAP включают бизнес-отчеты для продаж, маркетинга , управленческой отчетности, управления бизнес-процессами (BPM), бюджетирования и прогнозирования ,финансовая отчетность и аналогичные области, с появлением новых приложений, таких как сельское хозяйство .

Термин OLAP был создан как небольшая модификация традиционного термина онлайн-транзакции базы данных (OLTP).

Инструменты OLAP позволяют пользователям анализировать многомерные данные в интерактивном режиме с разных точек зрения. OLAP состоит из трех основных аналитических операций: консолидации (сворачивания), детализации, а также нарезки и нарезки кубиками. Консолидация включает в себя агрегирование данных, которые могут накапливаться и вычисляться в одном или нескольких измерениях. Например, все офисы продаж объединены с отделом продаж или отделом продаж, чтобы предвидеть тенденции продаж. В отличие от этого, детализация - это метод, который позволяет пользователям ориентироваться в деталях. Например, пользователи могут просматривать продажи по отдельным продуктам, составляющим продажи региона. Нарезка и нарезка - это функция, с помощью которой пользователи могут извлекать (нарезать) определенный набор данных из куба OLAP и просматривать (нарезать кубиками) срезы с разных точек зрения. Эти точки зрения иногда называют измерениями (например, просмотр одних и тех же продаж продавцом, датой, покупателем, продуктом, регионом и т. Д.).

Базы данных, настроенные для OLAP, используют многомерную модель данных, позволяющую выполнять сложные аналитические и специальные запросы с быстрым временем выполнения. Они заимствуют аспекты навигационных баз данных , иерархических баз данных и реляционных баз данных.

OLAP обычно отличается от OLTP (онлайн-обработка транзакций), которая обычно характеризуется гораздо менее сложными запросами в большем объеме для обработки транзакций, а не для целей бизнес-аналитики или отчетности. В то время как системы OLAP в основном оптимизированы для чтения, OLTP должен обрабатывать все виды запросов (чтение, вставка, обновление и удаление).

Обзор систем OLAP

В основе любой системы OLAP лежит куб OLAP (также называемый «многомерным кубом» или гиперкубом ). Он состоит из числовых фактов, называемых мерами , которые классифицируются по измерениям . Меры помещаются на пересечениях гиперкуба, который охватывает измерения как векторное пространство . Обычным интерфейсом для управления кубом OLAP является интерфейс матрицы , такой как сводные таблицы в программе электронных таблиц, который выполняет операции проецирования по измерениям, такие как агрегирование или усреднение.

Метаданные куба обычно создаются из звездообразной схемы или схемы «снежинка» или совокупности таблиц в реляционной базе данных . Показатели извлекаются из записей в таблице фактов, а измерения - из таблиц измерений .

Каждая мера может рассматриваться как имеющая набор ярлыков или связанных с ней метаданных. Измерение является то , что описывает эти метки ; он предоставляет информацию о мере .

Простым примером может служить куб, содержащий продажи магазина в качестве меры и дату / время в качестве измерения . У каждой продажи есть метка даты / времени, которая описывает больше об этой продаже.

Например:

 Sales Fact Table
+-------------+----------+
| sale_amount | time_id  |
+-------------+----------+            Time Dimension
|      2008.10|     1234 |----+     +---------+-------------------+
+-------------+----------+    |     | time_id | timestamp         |
                              |     +---------+-------------------+
                              +---->|   1234  | 20080902 12:35:43 |
                                    +---------+-------------------+

Многомерные базы данных

Многомерная структура определяется как «разновидность реляционной модели, которая использует многомерные структуры для организации данных и выражения отношений между данными». Структура разбита на кубы, и кубы могут хранить и получать доступ к данным в пределах каждого куба. «Каждая ячейка в многомерной структуре содержит агрегированные данные, относящиеся к элементам по каждому из ее измерений». Даже когда данные обрабатываются, они остаются легкодоступными и продолжают представлять собой компактный формат базы данных. Данные по-прежнему взаимосвязаны. Многомерная структура довольно популярна для аналитических баз данных, использующих приложения онлайн-аналитической обработки (OLAP). Аналитические базы данных используют эти базы данных из-за их способности быстро предоставлять ответы на сложные бизнес-запросы. Данные можно рассматривать под разными углами, что дает более широкую перспективу проблемы в отличие от других моделей.

Агрегаты

Было заявлено, что для сложных запросов кубы OLAP могут дать ответ примерно за 0,1% времени, необходимого для того же запроса к реляционным данным OLTP . Наиболее важным механизмом OLAP, который позволяет достичь такой производительности, является использование агрегатов . Агрегации создаются из таблицы фактов путем изменения степени детализации по определенным измерениям и агрегирования данных по этим измерениям с использованием агрегатной функции (или агрегатной функции ). Количество возможных агрегатов определяется всеми возможными комбинациями гранулярностей измерений.

Комбинация всех возможных агрегатов и базовых данных содержит ответы на каждый запрос, на который можно ответить из данных.

Поскольку обычно существует множество агрегатов, которые можно вычислить, часто полностью вычисляется только заранее определенное число; остальные решаются по запросу. Проблема выбора агрегатов (представлений) для вычисления известна как проблема выбора представлений. Выбор представления может быть ограничен общим размером выбранного набора агрегатов, временем их обновления из-за изменений в базовых данных или и тем, и другим. Цель выбора представления обычно состоит в том, чтобы минимизировать среднее время ответа на запросы OLAP, хотя некоторые исследования также минимизируют время обновления. Выбор просмотра - NP-Complete . Были исследованы многие подходы к проблеме, включая жадные алгоритмы , рандомизированный поиск, генетические алгоритмы и алгоритм поиска A * .

Некоторые функции агрегирования можно вычислить для всего куба OLAP путем предварительного вычисления значений для каждой ячейки, а затем вычисления агрегирования для объединения ячеек путем агрегирования этих агрегатов, применяя алгоритм разделения и владения к многомерной задаче для их эффективного вычисления. Например, общая сумма свертки - это просто сумма промежуточных сумм в каждой ячейке. Функции, которые можно разложить таким образом, называются разлагаемыми функциями агрегирования и включают в себя COUNT, MAX, MIN,и SUM, которые можно вычислить для каждой ячейки, а затем напрямую агрегировать; они известны как саморазлагаемые агрегатные функции. В других случаях агрегатная функция может быть вычислена путем вычисления вспомогательных чисел для ячеек, агрегирования этих вспомогательных чисел и, наконец, вычисления общего числа в конце; примеры включают AVERAGE(отслеживание суммы и количества, деление в конце) и RANGE(отслеживание максимума и минимума, вычитание в конце). В других случаях агрегатная функция не может быть вычислена без одновременного анализа всего набора, хотя в некоторых случаях могут быть вычислены приближения; примеры включают DISTINCT COUNT, MEDIAN,и MODE; например, медиана набора не является медианой медиан подмножеств. Эти последние трудно реализовать эффективно в OLAP, поскольку они требуют вычисления агрегатной функции на основе базовых данных, либо их вычисление в режиме онлайн (медленно), либо предварительное вычисление для возможных развертываний (большое пространство).

Типы

Системы OLAP традиционно классифицируются с использованием следующей таксономии.

Многомерный OLAP (MOLAP)

MOLAP (многомерная онлайн-аналитическая обработка) - это классическая форма OLAP, которую иногда называют просто OLAP. MOLAP хранит эти данные в оптимизированном хранилище многомерных массивов, а не в реляционной базе данных.

Некоторые инструменты MOLAP требуют предварительного вычисления и хранения производных данных, таких как консолидация - операция, известная как обработка. Такие инструменты MOLAP обычно используют предварительно рассчитанный набор данных, называемый кубом данных . Куб данных содержит все возможные ответы на заданный круг вопросов. В результате они очень быстро отвечают на запросы. С другой стороны, обновление может занять много времени в зависимости от степени предварительного расчета. Предварительные вычисления также могут привести к так называемому взрыву данных.

Другие инструменты MOLAP, особенно те, которые реализуют функциональную модель базы данных , не производят предварительных вычислений производных данных, а выполняют все вычисления по запросу, кроме тех, которые были ранее запрошены и сохранены в кэше.

Преимущества MOLAP

  • Высокая производительность запросов благодаря оптимизированному хранению, многомерному индексированию и кешированию.
  • Меньший размер данных на диске по сравнению с данными, хранящимися в реляционной базе данных, благодаря методам сжатия.
  • Автоматизированное вычисление агрегатов данных более высокого уровня.
  • Он очень компактен для низкоразмерных наборов данных.
  • Модели массивов обеспечивают естественную индексацию.
  • Эффективное извлечение данных достигается за счет предварительного структурирования агрегированных данных.

Недостатки MOLAP

  • В некоторых системах MOLAP этап обработки (загрузка данных) может быть довольно длительным, особенно для больших объемов данных. Обычно это устраняется путем выполнения только инкрементальной обработки, т. Е. Обработки только данных, которые изменились (обычно новых данных), вместо повторной обработки всего набора данных.
  • Некоторые методологии MOLAP вводят избыточность данных.

Продукты

Примерами коммерческих продуктов, использующих MOLAP, являются Cognos Powerplay, Oracle Database OLAP Option , MicroStrategy , Microsoft Analysis Services , Essbase , TM1 , Jedox и icCube .

Реляционный OLAP (ROLAP)

ROLAP работает напрямую с реляционными базами данных и не требует предварительных вычислений. Базовые данные и таблицы измерений хранятся как реляционные таблицы, а новые таблицы создаются для хранения агрегированной информации. Это зависит от конкретной схемы. Эта методология основана на манипулировании данными, хранящимися в реляционной базе данных, чтобы создать видимость традиционных функциональных возможностей нарезки и нарезания кубиков OLAP. По сути, каждое действие нарезки и нарезки кубиками эквивалентно добавлению предложения WHERE в оператор SQL. Инструменты ROLAP не используют предварительно вычисленные кубы данных, а вместо этого создают запрос к стандартной реляционной базе данных и ее таблицам, чтобы вернуть данные, необходимые для ответа на вопрос. Инструменты ROLAP позволяют задать любой вопрос, поскольку методология не ограничивается содержимым куба. ROLAP также может выполнять детализацию до самого низкого уровня детализации в базе данных.

Хотя ROLAP использует источник реляционной базы данных, обычно база данных должна быть тщательно разработана для использования ROLAP. База данных, которая была разработана для OLTP , не будет работать так, как база данных ROLAP. Следовательно, ROLAP по-прежнему предполагает создание дополнительной копии данных. Однако, поскольку это база данных, для ее заполнения можно использовать различные технологии.

Преимущества ROLAP

  • ROLAP считается более масштабируемым при обработке больших объемов данных, особенно моделей с измерениями с очень высокой мощностью (т. Е. С миллионами элементов).
  • Благодаря множеству доступных инструментов загрузки данных и возможности тонкой настройки кода извлечения, преобразования, загрузки (ETL) для конкретной модели данных время загрузки обычно намного короче, чем при автоматической загрузке MOLAP .
  • Данные хранятся в стандартной реляционной базе данных, и к ним можно получить доступ с помощью любого инструмента отчетности SQL (инструмент не обязательно должен быть инструментом OLAP).
  • Инструменты ROLAP лучше справляются с обработкой неагрегируемых фактов (например, текстовых описаний). Инструменты MOLAP , как правило, страдают от низкой производительности при запросе этих элементов.
  • По развязке хранения данных с многомерной модели, можно успешно моделями данных , которые иначе не могли бы вписаться в строгую пространственную модель.
  • Подход ROLAP может использовать элементы управления авторизацией базы данных, такие как безопасность на уровне строк, посредством чего результаты запроса фильтруются в зависимости от предварительно заданных критериев, применяемых, например, к данному пользователю или группе пользователей ( предложение SQL WHERE).

Недостатки ROLAP

  • В отрасли существует консенсус в отношении того, что инструменты ROLAP имеют более низкую производительность, чем инструменты MOLAP. Однако см. Обсуждение производительности ROLAP ниже.
  • Загрузка сводных таблиц должна управляться пользовательским кодом ETL . Инструменты ROLAP не помогают с этой задачей. Это означает дополнительное время на разработку и больше кода для поддержки.
  • Когда этап создания сводных таблиц пропускается, производительность запроса ухудшается, поскольку необходимо запрашивать более крупные подробные таблицы. Это можно частично исправить, добавив дополнительные таблицы агрегирования, однако по-прежнему нецелесообразно создавать агрегированные таблицы для всех комбинаций измерений / атрибутов.
  • ROLAP полагается на базу данных общего назначения для запросов и кэширования, поэтому некоторые специальные методы, используемые инструментами MOLAP , недоступны (например, специальная иерархическая индексация). Однако современные инструменты ROLAP используют преимущества последних улучшений языка SQL, таких как операторы CUBE и ROLLUP, DB2 Cube Views, а также другие расширения SQL OLAP. Эти улучшения SQL могут уменьшить преимущества инструментов MOLAP .
  • Поскольку инструменты ROLAP полагаются на SQL для всех вычислений, они не подходят, когда модель тяжелая для вычислений, которые плохо транслируются в SQL . Примеры таких моделей включают составление бюджета, ассигнования, финансовую отчетность и другие сценарии.

Производительность РОЛАП

В индустрии OLAP ROLAP обычно воспринимается как способный масштабироваться для больших объемов данных, но страдающий от более низкой производительности запросов по сравнению с MOLAP . Исследование OLAP , крупнейшее независимое исследование всех основных продуктов OLAP, проводившееся в течение 6 лет (с 2001 по 2006 гг.), Неизменно обнаруживало, что компании, использующие ROLAP, сообщают о более низкой производительности, чем компании, использующие MOLAP, даже с учетом объемов данных.

Однако, как и в случае любого опроса, существует ряд тонких моментов, которые необходимо учитывать при интерпретации результатов.

  • Исследование показывает, что у инструментов ROLAP в 7 раз больше пользователей, чем у инструментов MOLAP в каждой компании. Системы с большим количеством пользователей, как правило, будут иметь больше проблем с производительностью в часы пик.
  • Также возникает вопрос о сложности модели, измеряемой как числом измерений, так и богатством расчетов. Опрос не предлагает хороший способ контролировать эти вариации в анализируемых данных.

Обратная сторона гибкости

Некоторые компании выбирают ROLAP, потому что они намереваются повторно использовать существующие таблицы реляционной базы данных - эти таблицы часто не будут оптимально спроектированы для использования OLAP. Превосходная гибкость инструментов ROLAP позволяет работать с этой неоптимальной конструкцией, но при этом страдает производительность. Инструменты MOLAP, напротив, вынуждают повторно загружать данные в оптимальную структуру OLAP.

Гибридный OLAP (HOLAP)

Нежелательный компромисс между дополнительной стоимостью ETL и низкой производительностью запросов привел к тому, что большинство коммерческих инструментов OLAP теперь используют подход «гибридного OLAP» (HOLAP), который позволяет разработчику модели решать, какая часть данных будет храниться в MOLAP и какая часть в РОЛАП.

В отрасли нет четкого соглашения о том, что представляет собой «гибридный OLAP», за исключением того, что база данных будет разделять данные между реляционными и специализированными хранилищами. Например, для некоторых поставщиков база данных HOLAP будет использовать реляционные таблицы для хранения больших объемов подробных данных и использовать специализированное хранилище, по крайней мере, для некоторых аспектов меньших объемов более агрегированных или менее подробных данных. HOLAP устраняет недостатки MOLAP и ROLAP , сочетая возможности обоих подходов. Инструменты HOLAP могут использовать как предварительно рассчитанные кубы, так и реляционные источники данных.

Вертикальное разделение

В этом режиме HOLAP хранит агрегаты в MOLAP для быстрого выполнения запросов и подробные данные в ROLAP для оптимизации времени обработки куба .

Горизонтальное разделение

В этом режиме HOLAP хранит некоторый фрагмент данных, обычно самый последний (то есть срезанный по измерению времени) в MOLAP для быстрого выполнения запросов, а более старые данные - в ROLAP . Более того, мы можем хранить одни кубики в MOLAP, а другие в ROLAP , используя тот факт, что в большом кубоиде будут плотные и разреженные подобласти.

Продукты

Первым продуктом, предоставляющим хранилище HOLAP, был Holos , но эта технология также стала доступна в других коммерческих продуктах, таких как Microsoft Analysis Services , Oracle Database OLAP Option , MicroStrategy и SAP AG BI Accelerator. Гибридный подход OLAP сочетает в себе технологии ROLAP и MOLAP, извлекая выгоду из большей масштабируемости ROLAP и более быстрого вычисления MOLAP. Например, сервер HOLAP может хранить большие объемы подробных данных в реляционной базе данных, в то время как агрегаты хранятся в отдельном хранилище MOLAP. Службы OLAP Microsoft SQL Server 7.0 поддерживают гибридный сервер OLAP.

Сравнение

У каждого типа есть определенные преимущества, хотя между поставщиками существуют разногласия по поводу их специфики.

  • Некоторые реализации MOLAP подвержены взрывному росту базы данных - явлению, вызывающему использование базами данных MOLAP огромных объемов дискового пространства при соблюдении определенных общих условий: большое количество измерений, предварительно рассчитанные результаты и разреженные многомерные данные.
  • MOLAP обычно обеспечивает лучшую производительность за счет специальной оптимизации индексации и хранения. MOLAP также требует меньше места для хранения по сравнению с ROLAP, поскольку специализированное хранилище обычно включает методы сжатия .
  • ROLAP обычно более масштабируемый. Однако предварительную обработку большого объема трудно реализовать эффективно, поэтому ее часто пропускают. Поэтому производительность запросов ROLAP может сильно пострадать.
  • Поскольку ROLAP больше полагается на базу данных для выполнения вычислений, он имеет больше ограничений в специализированных функциях, которые он может использовать.
  • HOLAP пытается объединить лучшее из ROLAP и MOLAP. Как правило, он может быстро выполнять предварительную обработку, хорошо масштабироваться и обеспечивать хорошую функциональную поддержку.

Другие типы

Также иногда используются следующие аббревиатуры, хотя они не так широко распространены, как приведенные выше:

  • WOLAP - веб-OLAP
  • DOLAP - настольный OLAP
  • RTOLAP - OLAP в реальном времени
  • GOLAP - График OLAP
  • CaseOLAP - контекстно-зависимый семантический OLAP, разработанный для биомедицинских приложений. Платформа CaseOLAP включает в себя предварительную обработку данных (например, загрузку, извлечение и анализ текстовых документов), индексацию и поиск с помощью Elasticsearch, создание функциональной структуры документа под названием Text-Cube и количественную оценку определяемых пользователем отношений фраза-категория с использованием основного алгоритма CaseOLAP.

API и языки запросов

В отличие от реляционных баз данных , в которых SQL был стандартным языком запросов, и широко распространенными API, такими как ODBC , JDBC и OLEDB , в мире OLAP долгое время не было такой унификации. Первым настоящим стандартным API была спецификация OLE DB для OLAP от Microsoft, появившаяся в 1997 году и представившая язык запросов MDX . Несколько поставщиков OLAP - как серверных, так и клиентских - приняли его. В 2001 году Microsoft и Hyperion объявили о спецификации XML для анализа , которая была одобрена большинством поставщиков OLAP. Поскольку здесь также использовались многомерные выражения в качестве языка запросов, многомерные выражения стали стандартом де-факто. С сентября 2011 года LINQ можно использовать для запроса кубов SSAS OLAP из Microsoft .NET.

Продукты

История

Первым продуктом, который выполнял запросы OLAP, был Express, выпущенный в 1970 году (и приобретенный Oracle в 1995 году у компании Information Resources). Однако этот термин не появлялся до 1993 года, когда его ввел Эдгар Ф. Кодд , которого называют «отцом реляционной базы данных». Работа Кодда стала результатом короткого консультационного задания, которое Кодд взял на себя для бывшего Arbor Software (позже Hyperion Solutions , а в 2007 году приобрел Oracle), как своего рода маркетинговый ход. Годом ранее компания выпустила собственный продукт OLAP, Essbase . В результате «Двенадцать законов онлайн-аналитической обработки» Кодда были явными в их ссылке на Essbase. Возникли споры, и когда Computerworld узнал, что Арбор заплатила Кодду, статья отозвалась. Рынок OLAP пережил сильный рост в конце 1990-х, когда на рынок вышли десятки коммерческих продуктов. В 1998 году Microsoft выпустила свой первый OLAP-сервер - Microsoft Analysis Services , который привел к широкому распространению технологии OLAP и вывел ее в массовое производство.

Сравнение продуктов

Клиенты OLAP

Клиенты OLAP включают в себя множество программ для работы с электронными таблицами, таких как Excel, веб-приложение, SQL, инструменты панели мониторинга и т. Д. Многие клиенты поддерживают интерактивное исследование данных, когда пользователи выбирают интересующие измерения и меры. Некоторые измерения используются в качестве фильтров (для разделения и разделения данных), в то время как другие выбираются в качестве осей сводной таблицы или сводной диаграммы. Пользователи также могут изменять уровень агрегации (для детализации или сворачивания) отображаемого представления. Клиенты также могут предлагать различные графические виджеты, такие как ползунки, географические карты, тепловые карты и многое другое, которые можно сгруппировать и скоординировать в виде информационных панелей. Обширный список клиентов отображается в столбце визуализации таблицы сравнения серверов OLAP .

Структура рынка

Ниже приведен список ведущих поставщиков OLAP в 2006 году с цифрами в миллионах долларов США .

Продавец Глобальный доход Объединенная компания
Корпорация Майкрософт 1 806 Microsoft
Корпорация Hyperion Solutions 1077 Oracle
Cognos 735 IBM
Бизнес-объекты 416 SAP
MicroStrategy 416 MicroStrategy
SAP AG 330 SAP
Картез ( SAP ) 210 SAP
Приложение 205 IBM
Infor 199 Infor
Корпорация Oracle 159 Oracle
Другие 152 Другие
Общее 5700

Открытый источник

  • Сервер Mondrian OLAP - это сервер OLAP с открытым исходным кодом, написанный на Java . Он поддерживает язык запросов многомерных выражений, XML для анализа и спецификации интерфейса olap4j .
  • Apache Druid - популярное распределенное хранилище данных с открытым исходным кодом для запросов OLAP, которое широко используется в производстве различными организациями.
  • Apache Kylin - это распределенное хранилище данных для запросов OLAP, изначально разработанное eBay.
  • Кубы (сервер OLAP) - еще один облегченный набор инструментов с открытым исходным кодом, реализующий функциональность OLAP на языке программирования Python со встроенным ROLAP.
  • Apache Pinot (инкубационный) используется в LinkedIn, Uber, Slack и Microsoft для предоставления масштабируемой аналитики в реальном времени с низкой задержкой. Он может принимать данные из автономных источников данных (таких как Hadoop и плоские файлы), а также из онлайн-источников (например, Kafka). Пино рассчитано на масштабирование по горизонтали.
  • ClickHouse - это довольно новая СУБД, ориентированная на столбцы, ориентированная на быструю обработку и время отклика.

Смотрите также

Библиография

  • Даниэль Лемир (декабрь 2007 г.). «Хранилище данных и библиография, ориентированная на исследования OLAP-A» .
  • Эрик Томсен. (1997). Решения OLAP: построение многомерных информационных систем, 2-е издание . Джон Вили и сыновья. ISBN 978-0-471-14931-6.

Рекомендации

Цитаты

Источники