В вычислительной технике онлайн -аналитическая обработка , или OLAP ( / ˈ oʊ l æ p / ), представляет собой подход к быстрому ответу на многомерные аналитические (MDA) запросы. [1] Термин OLAP был создан как небольшая модификация традиционного термина базы данных онлайн-обработка транзакций (OLTP). [2] OLAP является частью более широкой категории бизнес-аналитики , которая также охватывает реляционные базы данных , написание отчетов и интеллектуальный анализ данных . [3] Типичные области применения OLAP включают бизнес-отчетность по продажам, маркетингу , управленческую отчетность, управление бизнес-процессами (BPM), [4] бюджетирование и прогнозирование , финансовую отчетность и аналогичные области, с появлением новых приложений, таких как сельское хозяйство . [5]
Инструменты OLAP позволяют пользователям интерактивно анализировать многомерные данные с разных точек зрения. OLAP состоит из трех основных аналитических операций: консолидация (свертка), детализация и нарезка и деление на части. [6] : 402–403 Консолидация подразумевает агрегацию данных, которые могут быть накоплены и вычислены в одном или нескольких измерениях. Например, все офисы продаж свертываются в отдел продаж или подразделение продаж для прогнозирования тенденций продаж. Напротив, детализация — это метод, который позволяет пользователям перемещаться по деталям. Например, пользователи могут просматривать продажи по отдельным продуктам, которые составляют продажи региона. Нарезка и деление на части — это функция, с помощью которой пользователи могут извлекать (нарезать) определенный набор данных из куба OLAP и просматривать (нарезать) срезы с разных точек зрения. Эти точки зрения иногда называются измерениями (например, просмотр тех же продаж по продавцу, или по дате, или по клиенту, или по продукту, или по региону и т. д.).
Базы данных , настроенные для OLAP, используют многомерную модель данных, что позволяет выполнять сложные аналитические и специальные запросы с быстрым временем выполнения. [7] Они заимствуют аспекты навигационных баз данных , иерархических баз данных и реляционных баз данных.
OLAP обычно противопоставляется OLTP (обработка транзакций в режиме онлайн), которая обычно характеризуется гораздо менее сложными запросами в большем объеме для обработки транзакций, а не для целей бизнес-аналитики или отчетности. В то время как системы OLAP в основном оптимизированы для чтения, OLTP должна обрабатывать все виды запросов (чтение, вставка, обновление и удаление).
В основе любой системы OLAP лежит куб OLAP (также называемый «многомерным кубом» или гиперкубом ). Он состоит из числовых фактов, называемых мерами , которые классифицируются по измерениям . Меры размещаются на пересечениях гиперкуба, который охватывает измерения как векторное пространство . Обычным интерфейсом для управления кубом OLAP является матричный интерфейс, например, сводные таблицы в программе для работы с электронными таблицами, которые выполняют операции проекции по измерениям, такие как агрегация или усреднение.
Метаданные куба обычно создаются из схемы «звезда» или схемы «снежинка» или созвездия фактов таблиц в реляционной базе данных . Меры выводятся из записей в таблице фактов , а измерения выводятся из таблиц измерений .
Каждую меру можно рассматривать как имеющую набор меток или метаданных, связанных с ней. Измерение — это то, что описывает эти метки ; оно предоставляет информацию о мере .
Простым примером может служить куб, содержащий продажи магазина в качестве меры и Дату/Время в качестве измерения . Каждая Продажа имеет метку Дата/Время , которая описывает больше о данной продаже.
Например:
Таблица фактов продаж+------------+----------+| сумма_продажи | идентификатор_времени |+------------+----------+ Измерение времени| 2008.10 | 1234 |----+ +---------+-------------------++------------+----------+ | | time_id | временная метка | | +---------+-------------------+ +---->| 1234 | 20080902 12:35:43 | +---------+-------------------+
Многомерная структура определяется как «вариация реляционной модели, которая использует многомерные структуры для организации данных и выражения взаимосвязей между данными». [6] : 177 Структура разбита на кубы, и кубы могут хранить и получать доступ к данным в пределах каждого куба. «Каждая ячейка внутри многомерной структуры содержит агрегированные данные, связанные с элементами по каждому из ее измерений». [6] : 178 Даже когда данные обрабатываются, они остаются легкодоступными и продолжают составлять компактный формат базы данных. Данные по-прежнему остаются взаимосвязанными. Многомерная структура довольно популярна для аналитических баз данных, которые используют приложения онлайн-аналитической обработки (OLAP). [6] Аналитические базы данных используют эти базы данных из-за их способности быстро предоставлять ответы на сложные бизнес-запросы. Данные можно рассматривать с разных углов, что дает более широкую перспективу проблемы в отличие от других моделей. [8]
Утверждается, что для сложных запросов кубы OLAP могут выдавать ответ примерно за 0,1% времени, необходимого для того же запроса по реляционным данным OLTP . [9] [10] Самым важным механизмом в OLAP, который позволяет достичь такой производительности, является использование агрегаций . Агрегации строятся из таблицы фактов путем изменения детализации по определенным измерениям и агрегации данных по этим измерениям с использованием агрегатной функции (или функции агрегации ). Количество возможных агрегаций определяется каждой возможной комбинацией детализации измерений.
Сочетание всех возможных агрегаций и базовых данных содержит ответы на все запросы, на которые можно ответить из данных. [11]
Поскольку обычно существует много агрегатов, которые можно вычислить, часто полностью вычисляется только предопределенное число; остальные решаются по требованию. Проблема принятия решения о том, какие агрегаты (представления) вычислять, известна как проблема выбора представления. Выбор представления может быть ограничен общим размером выбранного набора агрегатов, временем их обновления после изменения базовых данных или и тем, и другим. Целью выбора представления обычно является минимизация среднего времени ответа на запросы OLAP, хотя некоторые исследования также минимизируют время обновления. Выбор представления является NP-полным . Было изучено много подходов к проблеме, включая жадные алгоритмы , рандомизированный поиск, генетические алгоритмы и алгоритм поиска 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
Примерами коммерческих продуктов, использующих 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 Survey, крупнейший независимый опрос по всем основным продуктам 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. Службы Microsoft SQL Server 7.0 OLAP поддерживают гибридный сервер 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 узнал, что Кодд был оплачен Arbor, он отозвал статью. Рынок OLAP пережил сильный рост в конце 1990-х годов, и на рынок вышли десятки коммерческих продуктов. В 1998 году Microsoft выпустила свой первый сервер OLAP — Microsoft Analysis Services , который способствовал широкому внедрению технологии OLAP и вывел ее в мейнстрим.
Клиенты OLAP включают множество программ для работы с электронными таблицами, таких как Excel, веб-приложения, SQL, инструменты для панелей мониторинга и т. д. Многие клиенты поддерживают интерактивное исследование данных, где пользователи выбирают интересующие их измерения и меры. Некоторые измерения используются в качестве фильтров (для нарезки и разрезания данных), в то время как другие выбираются в качестве осей сводной таблицы или сводной диаграммы. Пользователи также могут изменять уровень агрегации (для детализации или свертывания) отображаемого представления. Клиенты также могут предлагать различные графические виджеты, такие как ползунки, географические карты, тепловые карты и многое другое, которые можно группировать и координировать как панели мониторинга. Обширный список клиентов отображается в столбце визуализации таблицы сравнения серверов OLAP .
Ниже приведен список ведущих поставщиков OLAP в 2006 году с цифрами в миллионах долларов США . [29]
{{cite book}}
: |journal=
проигнорировано ( помощь )