Онлайн-аналитическая обработка , или OLAP ( / ˈ oʊ l æ p / ), представляет собой подход к быстрому ответу на многомерные аналитические запросы (MDA) в вычислениях . [1] OLAP является частью более широкой категории бизнес-аналитики , которая также включает в себя реляционные базы данных , написание отчетов и интеллектуальный анализ данных . [2] Типичные применения OLAP включают бизнес-отчетность по продажам, маркетингу , управленческую отчетность, управление бизнес-процессами (BPM), [3] составление бюджета и прогнозирование , финансовую отчетность и аналогичные области, при этом появляются новые приложения, такие как сельское хозяйство . [4]
Термин OLAP был создан как небольшая модификация традиционного термина базы данных « онлайн-обработка транзакций» (OLTP). [5]
Инструменты OLAP позволяют пользователям интерактивно анализировать многомерные данные с разных точек зрения. OLAP состоит из трех основных аналитических операций: консолидации (свертывания), детализации, а также нарезки и нарезки. [6] : 402–403 Консолидация предполагает агрегирование данных, которые можно накапливать и вычислять в одном или нескольких измерениях. Например, все офисы продаж объединены в отдел продаж или подразделение продаж, чтобы предвидеть тенденции продаж. Напротив, детализация — это метод, который позволяет пользователям перемещаться по деталям. Например, пользователи могут просматривать продажи отдельных продуктов, составляющих продажи региона. Нарезка и нарезка — это функция, с помощью которой пользователи могут извлекать (нарезать) определенный набор данных из куба OLAP и просматривать (нарезать) срезы с разных точек зрения. Эти точки зрения иногда называют измерениями (например, просмотр одних и тех же продаж по продавцам, по датам, по клиентам, по продуктам, по регионам и т. д.).
Базы данных , настроенные для OLAP, используют многомерную модель данных, что позволяет выполнять сложные аналитические и специальные запросы с быстрым временем выполнения. [7] Они заимствуют аспекты навигационных баз данных , иерархических баз данных и реляционных баз данных.
OLAP обычно противопоставляется OLTP (онлайн-обработка транзакций), которая обычно характеризуется гораздо менее сложными запросами в большем объеме для обработки транзакций, а не для целей бизнес-аналитики или отчетности. В то время как системы OLAP в основном оптимизированы для чтения, OLTP приходится обрабатывать все виды запросов (чтение, вставка, обновление и удаление).
В основе любой системы OLAP лежит куб OLAP (также называемый «многомерным кубом» или гиперкубом ) . Он состоит из числовых фактов, называемых мерами , которые классифицируются по измерениям . Меры размещаются на пересечениях гиперкуба, который натянут на измерения как векторное пространство . Обычный интерфейс для управления кубом OLAP — это матричный интерфейс, подобный сводным таблицам в программе работы с электронными таблицами, который выполняет операции проецирования по измерениям, такие как агрегирование или усреднение.
Метаданные куба обычно создаются на основе схемы «звезда» , схемы «снежинка» или совокупности фактов таблиц в реляционной базе данных . Меры извлекаются из записей в таблице фактов , а измерения — из таблиц измерений .
Каждую меру можно рассматривать как имеющую набор меток или связанных с ней метаданных. Измерение – это то, что описывает эти метки ; он предоставляет информацию о мере .
Простым примером может служить куб, который содержит продажи магазина в качестве меры и дату/время в качестве измерения . Каждая распродажа имеет метку даты/времени , которая описывает дополнительную информацию об этой продаже.
Например:
Таблица фактов продаж+-------------+----------+| сумма_продажи | идентификатор_времени |+-------------+----------+ Измерение времени| 2008.10 | 1234 |----+ +---------+-------------------++-------------+----------+ | | идентификатор_времени | временная метка | | +---------+-------------------+ +---->| 1234 | 20080902 12:35:43 | +---------+-------------------+
Многомерная структура определяется как «разновидность реляционной модели, которая использует многомерные структуры для организации данных и выражения связей между данными». [6] : 177 Структура разбита на кубы, и кубы могут хранить данные и получать к ним доступ в пределах каждого куба. «Каждая ячейка в многомерной структуре содержит агрегированные данные, относящиеся к элементам по каждому из ее измерений». [6] : 178 Даже когда данными манипулируют, к ним остается легкий доступ, и они продолжают представлять собой компактный формат базы данных. Данные по-прежнему остаются взаимосвязанными. Многомерная структура довольно популярна для аналитических баз данных, использующих приложения онлайн-аналитической обработки (OLAP). [6] Аналитические базы данных используют эти базы данных из-за их способности быстро предоставлять ответы на сложные бизнес-запросы. Данные можно рассматривать под разными углами, что дает более широкий взгляд на проблему в отличие от других моделей. [8]
Утверждается, что для сложных запросов кубы OLAP могут дать ответ примерно за 0,1% времени, необходимого для того же запроса к реляционным данным OLTP . [9] [10] Наиболее важным механизмом в OLAP, который позволяет достичь такой производительности, является использование агрегаций . Агрегации создаются на основе таблицы фактов путем изменения детализации конкретных измерений и агрегирования данных по этим измерениям с помощью агрегатной функции (или функции агрегирования ). Количество возможных агрегатов определяется всеми возможными комбинациями детализации измерений.
Комбинация всех возможных агрегатов и базовых данных содержит ответы на каждый запрос, на который можно ответить из данных. [11]
Поскольку обычно существует множество агрегатов, которые можно вычислить, часто полностью рассчитывается только заранее определенное число; остальные решаются по требованию. Проблема принятия решения о том, какие агрегаты (представления) вычислять, известна как проблема выбора представления. Выбор представления может быть ограничен общим размером выбранного набора агрегатов, временем их обновления в зависимости от изменений в базовых данных или тем и другим. Целью выбора представления обычно является минимизация среднего времени ответа на запросы OLAP, хотя некоторые исследования также минимизируют время обновления. Выбор вида — NP-Complete . Было исследовано множество подходов к проблеме, включая жадные алгоритмы , рандомизированный поиск, генетические алгоритмы и алгоритм поиска A* .
Некоторые функции агрегирования можно вычислить для всего куба OLAP, предварительно вычислив значения для каждой ячейки, а затем вычислив агрегирование для совокупности ячеек путем агрегирования этих агрегатов и применения алгоритма «разделяй и властвуй» к многомерной задаче для их эффективного вычисления. [12] Например, общая сумма свертки — это просто сумма промежуточных сумм в каждой ячейке. Функции, которые можно разложить таким образом, называются разлагаемыми функциями агрегирования и включают в себя COUNT, MAX, MIN,
и SUM
, которые можно вычислить для каждой ячейки, а затем напрямую агрегировать; они известны как саморазложимые функции агрегирования. [13] В других случаях агрегатная функция может быть вычислена путем вычисления вспомогательных чисел для ячеек, агрегирования этих вспомогательных чисел и, наконец, вычисления общего числа в конце; примеры включают AVERAGE
(отслеживание суммы и количества, деление в конце) и RANGE
(отслеживание максимума и минимума, вычитание в конце). В других случаях агрегатную функцию невозможно вычислить без анализа всего набора сразу, хотя в некоторых случаях можно вычислить приближения; примеры включают DISTINCT COUNT, MEDIAN,
и MODE
; например, медиана набора не является медианой медиан подмножеств. Последние сложно эффективно реализовать в OLAP, поскольку они требуют вычисления агрегатной функции на основе базовых данных, либо вычисляя их в режиме онлайн (медленно), либо предварительно вычисляя их для возможных развертываний (большое пространство).
Системы OLAP традиционно классифицируются с использованием следующей таксономии. [14]
MOLAP (многомерная онлайн-аналитическая обработка) — это классическая форма OLAP, которую иногда называют просто OLAP. MOLAP хранит эти данные в оптимизированном многомерном массиве, а не в реляционной базе данных.
Некоторые инструменты MOLAP требуют предварительного расчета и хранения производных данных, например консолидации – операции, известной как обработка. Такие инструменты MOLAP обычно используют предварительно рассчитанный набор данных, называемый кубом данных . Куб данных содержит все возможные ответы на заданный диапазон вопросов. В результате они очень быстро реагируют на запросы. С другой стороны, обновление может занять много времени в зависимости от степени предварительных вычислений. Предварительные вычисления также могут привести к так называемому взрывному росту данных.
Другие инструменты MOLAP, особенно те, которые реализуют функциональную модель базы данных, не выполняют предварительное вычисление производных данных, а выполняют все вычисления по требованию, кроме тех, которые ранее были запрошены и сохранены в кэше.
Преимущества МОЛАП
Недостатки MOLAP
Примерами коммерческих продуктов, использующих MOLAP, являются Cognos Powerplay, Oracle Database OLAP Option , MicroStrategy , Microsoft Analysis Services , Essbase , TM1 , Jedox и icCube .
ROLAP работает напрямую с реляционными базами данных и не требует предварительных вычислений. Базовые данные и таблицы измерений хранятся как реляционные таблицы, а для хранения агрегированной информации создаются новые таблицы. Это зависит от конструкции специализированной схемы. Эта методология основана на манипулировании данными, хранящимися в реляционной базе данных, чтобы создать видимость традиционных функций нарезки и нарезки OLAP. По сути, каждое действие по нарезке эквивалентно добавлению предложения «WHERE» в оператор SQL. Инструменты ROLAP не используют предварительно рассчитанные кубы данных, а вместо этого отправляют запрос к стандартной реляционной базе данных и ее таблицам, чтобы вернуть данные, необходимые для ответа на вопрос. Инструменты ROLAP позволяют задавать любые вопросы, поскольку методология не ограничивается содержимым куба. ROLAP также имеет возможность детализации до самого низкого уровня детализации в базе данных.
Хотя ROLAP использует источник реляционной базы данных, обычно база данных должна быть тщательно спроектирована для использования ROLAP. База данных, разработанная для OLTP , не будет работать как база данных ROLAP. Таким образом, ROLAP по-прежнему предполагает создание дополнительной копии данных. Однако, поскольку это база данных, для ее заполнения можно использовать различные технологии.
В OLAP-индустрии ROLAP обычно воспринимается как средство масштабирования для больших объемов данных, но с более низкой производительностью запросов по сравнению с MOLAP. Исследование OLAP, крупнейшее независимое исследование среди всех основных продуктов OLAP, проводившееся в течение 6 лет (с 2001 по 2006 год), постоянно обнаруживало, что компании, использующие ROLAP, сообщают о более низкой производительности, чем те, кто использует MOLAP, даже если принять во внимание объемы данных.
Однако, как и в любом опросе, существует ряд тонких вопросов, которые необходимо учитывать при интерпретации результатов.
Некоторые компании выбирают ROLAP, потому что они намерены повторно использовать существующие таблицы реляционной базы данных — эти таблицы часто не оптимально подходят для использования OLAP. Превосходная гибкость инструментов ROLAP позволяет работать с этой далеко не оптимальной конструкцией, но при этом страдает производительность. Инструменты MOLAP, напротив, заставят данные перезагружаться в оптимальную структуру OLAP.
Нежелательный компромисс между дополнительными затратами ETL и низкой производительностью запросов привел к тому, что большинство коммерческих инструментов OLAP теперь используют подход «гибридного OLAP» (HOLAP), который позволяет разработчику модели решить, какая часть данных будет храниться в MOLAP и какая часть в ROLAP.
В отрасли нет четкого согласия относительно того, что представляет собой «гибридная OLAP», за исключением того, что база данных будет разделять данные между реляционным и специализированным хранилищем. [15] Например, у некоторых поставщиков база данных HOLAP будет использовать реляционные таблицы для хранения больших объемов подробных данных и использовать специализированное хранилище, по крайней мере, для некоторых аспектов меньших объемов более агрегированных или менее подробных данных. HOLAP устраняет недостатки MOLAP и ROLAP, объединяя возможности обоих подходов. Инструменты HOLAP могут использовать как предварительно рассчитанные кубы, так и реляционные источники данных.
В этом режиме HOLAP сохраняет агрегаты в MOLAP для быстрого выполнения запросов, а подробные данные в ROLAP для оптимизации времени обработки куба .
В этом режиме HOLAP сохраняет некоторый фрагмент данных, обычно более свежий (т. е. срез по измерению времени) в MOLAP для повышения производительности запросов, а более старые данные — в ROLAP. Более того, мы можем хранить некоторые кубики в MOLAP, а другие в ROLAP, используя тот факт, что в большом кубоиде будут плотные и разреженные подобласти. [16]
Первым продуктом, обеспечивающим хранилище 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.
Каждый тип имеет определенные преимущества, хотя между поставщиками существуют разногласия по поводу специфики льгот.
Иногда также используются следующие аббревиатуры, хотя они не так распространены, как приведенные выше:
В отличие от реляционных баз данных , в которых стандартным языком запросов был SQL, и широко распространенных API, таких как ODBC , JDBC и OLEDB , в мире OLAP долгое время не существовало такой унификации. Первым настоящим стандартным API была спецификация OLE DB для OLAP от Microsoft , которая появилась в 1997 году и представила язык запросов MDX . Несколько поставщиков OLAP – как серверов, так и клиентов – приняли его на вооружение. В 2001 году Microsoft и Hyperion анонсировали спецификацию XML для анализа , которая была одобрена большинством поставщиков OLAP. Поскольку в качестве языка запросов также использовался MDX, MDX стал стандартом де-факто. [26] С сентября 2011 года LINQ можно использовать для запроса кубов SSAS OLAP из Microsoft .NET. [27]
Первым продуктом, выполнявшим запросы OLAP, был Express, выпущенный в 1970 году (и приобретенный Oracle в 1995 году у Information Resources). [28] Однако этот термин появился только в 1993 году, когда он был придуман Эдгаром Ф. Коддом , которого называют «отцом реляционной базы данных». Статья Кодда [1] стала результатом короткого консультационного задания, которое Кодд взял на себя для бывшей Arbor Software (позже Hyperion Solutions , а в 2007 году приобретенной Oracle), что было своего рода маркетинговым переворотом. Годом ранее компания выпустила собственный OLAP-продукт Essbase . В результате «двенадцать законов онлайн-аналитической обработки» Кодда были явно связаны с Essbase. После этого возникли разногласия, и когда Computerworld узнал, что Арбор заплатил Кодду, он отозвал статью. В конце 1990-х годов рынок OLAP пережил сильный рост, когда на рынок вышли десятки коммерческих продуктов. В 1998 году Microsoft выпустила свой первый OLAP-сервер — Microsoft Analysis Services , который способствовал широкому распространению технологии OLAP и сделал ее основной.
Клиенты OLAP включают в себя множество программ для работы с электронными таблицами, таких как Excel, веб-приложения, SQL, инструменты информационной панели и т. д. Многие клиенты поддерживают интерактивное исследование данных, при котором пользователи выбирают интересующие измерения и меры. Некоторые измерения используются в качестве фильтров (для разделения и дробления данных), тогда как другие выбираются в качестве осей сводной таблицы или сводной диаграммы. Пользователи также могут изменять уровень агрегации (для детализации или свертывания) отображаемого представления. Клиенты также могут предлагать различные графические виджеты, такие как ползунки, географические карты, тепловые карты и многое другое, которые можно группировать и координировать в виде информационных панелей. Обширный список клиентов отображается в столбце визуализации таблицы сравнения серверов OLAP .
Ниже приведен список ведущих поставщиков OLAP в 2006 году с цифрами в миллионах долларов США . [29]
{{cite book}}
: |journal=
игнорируется ( помощь )