Mondrian (сервер OLAP)
Mondrian OLAP Server | |
---|---|
Тип | OLAP-сервер |
Разработчик | Pentaho |
Написана на | Java |
Операционная система | кроссплатформенное программное обеспечение |
Последняя версия | 3.14.0 (2017-05-17) |
Репозиторий | github.com/pentaho/mondr… |
Лицензия | свободное программное обеспечение |
Сайт | mondrian.pentaho.org |
Mondrian — сервер OLAP (аналитической обработки в реальном времени) с открытыми исходными кодами, написанный на языке Java. Разрабатывается и поддерживается корпорацией Pentaho.
Поддерживает язык запросов MDX, а также спецификации XML for Analysis и JOLAP (JSR-69[1]). Для хранения данных может использовать любую систему управления базами данных с поддержкой SQL, поддерживаются другие источники данных, умеет кешировать в памяти суммарные результаты.
С ноября 2005 года входит как программный компонент в BI-пакет Pentaho BI Suite[2], как компонент фигурирует под наименованием Pentaho Analysis Services Community Edition (бесплатная реализация с открытым кодом), также поставляется в рамках коммерческого продукта Pentaho Analysis Enterprise Edition.
Архитектура сервера
Сервер Mondrian состоит из трёх слоёв, выделяются слой измерений, звёздный слой и слой хранения.
Слой измерений (англ. dimensional layer) разбирает, проверяет и выполняет MDX-запросы. MDX-запрос в Mondrian выполняется в несколько этапов. Сначала вычисляются оси, затем значения ячеек на осях, для эффективности, слой измерений посылает запросы к ячейкам на уровень агрегирования партиями. Трансформатор запросов позволяет приложению управлять существующими запросами, вместо того чтобы строить MDX-выражения с нуля для каждого запроса. Метаданные описывают и собственно модель измерений, и то, как она отображается на реляционную модель.
Слой звезды (англ. star layer) отвечает за поддержание кэша агрегатов. Агрегат — набор измеренных значений (ячеек) в памяти, соответствующий определённому набору значений столбцов измерений. Слой измерений посылает запросы для получения набора ячеек. Если требуемые ячейки не находятся в кэше, или получаются свёртыванием агрегатов в кэше, менеджер агрегатов посылает запрос на слой хранения.
Слой хранения (англ. storage layer) обеспечивает хранение исходных данных, необходимых для получения агрегатов. Принципиально, Mondrian поддерживает любые jdbc-источники данных; в частности, заявляется о коммерческой поддержке SQL-серверов DB2, Oracle Database, Microsoft SQL Server, MySQL, PostgreSQL, СУБД со столбцовым хранением Greenplum и Infobright, аппаратно-программных комплексов Teradata Database, Netezza, Neoview, а также возможен доступ к неструктурированным источникам, включая некоторые NoSQL-системы, в частности, поддерживаются MongoDB и Hadoop-источники — HDFS, HBase, Hive.
Слой измерений и слой звезды должны располагаться на одном узле.
См. также
Примечания
- ↑ Спецификация JSR-69 (англ.)
- ↑ Pentaho и Mondrian: начало консолидации открытых систем бизнес-анализа Архивная копия от 10 октября 2007 на Wayback Machine на сайте компании Pentaho.
Ссылки
- mondrian.pentaho.org — официальный сайт OLAP-сервера Mondrian