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

редактировать

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

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

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

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

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

Содержание
  • 1 Обзор систем OLAP
    • 1.1 Многомерные базы данных
    • 1.2 Агрегации
  • 2 типа
    • 2.1 Многомерный OLAP (MOLAP)
      • 2.1.1 Продукты
    • 2.2 Реляционный OLAP (ROLAP)
      • 2.2.1 Преимущества ROLAP
      • 2.2.2 Недостатки ROLAP
      • 2.2.3 Производительность ROLAP
      • 2.2.4 Недостаток гибкости
    • 2.3 Гибридный OLAP (HOLAP)
      • 2.3.1 Вертикальное разделение
      • 2.3.2 Горизонтальное разделение
      • 2.3.3 Продукты
    • 2.4 Сравнение
    • 2.5 Другие типы
  • 3 API и языки запросов
  • 4 Продукты
    • 4.1 История
    • 4.2 Сравнение продуктов
    • 4.3 Клиенты OLAP
    • 4.4 Структура рынка
    • 4.5 Открытый исходный код
  • 5 См. Также
  • 6 Библиография
  • 7 Ссылки
    • 7.1 Цитирования
    • 7.2 Источники
Обзор систем OLAP

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

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

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

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

Например:

Таблица фактов продаж + ------------- + ---------- + | sale_amount | time_id | + ------------- + ---------- + Измерение времени | 2008.10 | 1234 | ---- + + --------- + ------------------- + + ----------- - + ---------- + | | time_id | отметка времени | | + --------- + ------------------- + + ---->| 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.

Relational 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. Примеры таких моделей включают бюджетирование, распределение, финансовую отчетность и другие сценарии.

Производительность ROLAP

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

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

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

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

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

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

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

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

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

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

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

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

Продукты

Первым продуктом, предоставляющим хранилище HOLAP, был Holos, но эта технология также стала доступна в других коммерческих продуктах, таких как Microsoft Analysis Services, Oracle Database OLAP Вариант, 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
  • - 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 году с цифрами в миллионах долларов США.

ПоставщикГлобальный доходОбъединенная компания
Microsoft Corporation 1806Microsoft
Hyperion Solutions Corporation 1077Oracle
Cognos 735IBM
Business Objects 416SAP
MicroStrategy 416MicroStrategy
SAP AG 330SAP
Картез (SAP )210SAP
Applix 205IBM
Infor 199Infor
Oracle Corporation 159Oracle
Прочие152Прочие
Всего5700

Открытый исходный код

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

Цитаты

Источники

Последняя правка сделана 2021-06-01 12:09:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте