`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

OLAP без слова OLAP

Статья опубликована в №12 (580) от 27 марта

0 
 

Дистанция между выполняющими какую-либо работу и рассказывающими о выполнении этой же самой работы всегда была немалой. С распространением туманных аббревиатур, перенесенных в наши реалии излюбленным методом Ctrl-C/Ctrl-V, ситуация не улучшилась.

Чего действительно не будет в этой статье – так это неблагозвучной для нашего уха аббревиатуры OLAP. И, тем не менее, дочитав ее до конца, вы не просто узнаете, что именно кроется за этой аббревиатурой, но получите практически все необходимое для того, чтобы на дому предаться практическим занятиям тем самым, что OLAP означает.

Автор берет на себя смелость даже не приводить перевода OLAP (On-Line Analytical Processing), потому что он нам не понадобится. Вместо этого мы будем говорить о технике и свободно распространяемых инструментах быстрого анализа многомерных данных с общим доступом. В англоязычной литературе он «скрывается» за аббревиатурой FASMI (Fast Analysis of Shared Multidimensional Information). Идея создания понятия FASMI как более «вменяемой» альтернативы термина OLAP, до сих пор не имеющего единого признанного толкования значения, принадлежит Найджелу Пендзу (Nigel Pendse). Несмотря на свою сравнительную новизну (появление аббревиатуры FASMI датируется самим ее автором 1995 г.), FASMI де-факто признана во многих странах. Впрочем, неизмеримая степень признанности того или иного термина нам не слишком важна – ведь в этой статье мы будем заниматься не терминами, а напротив, тем, что за этими терминами скрывается. И раз значение FASMI многие специалисты считают удачным – нас это более чем устраивает.

OLAP без слова OLAP
В Excel интерфейс плагина Palo появляется в разделе меню Add-Ins. Программа многоязычна, поставляется в том числе и с русской локализацией

Сам Найджел Пендз дает весьма детальное толкование «быстрого анализа многомерных данных с общим доступом» – с точностью до каждого слова. «Быстрый» в данном случае означает, что речь идет о секундных временных интервалах, отделяющих моменты инициации пользователем запроса к системе и получения результатов. Несмотря на то что в пояснениях Пендза присутствует и фактически стандартное обоснование необходимости «быстрой» реакции системы (при задержках ответа более 30 с при 100%-ной загрузке процессора среднестатистический пользователь инициирует рестарт всего компьютера), куда больший интерес представляет его замечание о пагубном влиянии чрезмерно «задумчивой» реакции системы на процесс рассуждений работающего с нею аналитика – продолжительные паузы приводят к тому, что его внимание рассеивается и он теряет нить рассуждений.

«Анализ», несмотря на кажущуюся ясность, также имеет достаточно четкое значение. Найджел Пендз говорит о пригодности системы к решению традиционных для бизнеса классов задач, причем не на уровне способностей «вшитого» программного обеспечения, а в сочетании знаний и умений аналитика с поддерживаемым системой языком описания задач сверхвысокого уровня. Предоставление возможности пользователю быстро самостоятельно описывать специализированные задачи – такие, которые сторонний разработчик ПО просто не мог перед собой поставить ввиду невозможности знания всех нюансов специфики своих потенциальных заказчиков, – и получать их решения, по мнению Пендза, является исключительно важным свойством «аналитической» составляющей FASMI.

«Многомерность» – ввиду того что во всем последующем материале это понятие является ключевым, оно требует несколько неожиданного отступления.

OLAP без слова OLAP
OLAP без слова OLAP
Конструктор гиперкуба Palo

Мы начнем с того, что... уточним смысл слова «измерение» (dimension). Оно в таком изобилии встречается в литературе соответствующей тематики, что возможны два варианта – или все прекрасно знают его смысл, или же – совершенно наоборот. Толкование понятия «измерения» с нужной нам степенью абстракции дает... математика. В ней данный термин – это параметр, используемый для описания характеристики объекта в некотором абстрактном пространстве, определяемом, в свою очередь, размерностью – числом измерений, необходимых для описания всех возможных объектов. Получается, что в общем случае измерение – это множество значений какой-то характеристики объекта. Или, если отказаться от математического языка в пользу принятой в контексте статьи терминологии, – перечень категорий (свойств), объединяемых в данном контексте какой-то общностью. Например, измерением вполне может быть множество «модельный ряд», в математической нотации записываемое так: {"Jazz", "Civic 4D", "Civic 5D", "Civic Type R", "Accord", "Legend", "FR-V", "CR-V", "S2000"}. C использованием этого измерения и многих других можно точно описать любой автомобиль, произведенный компанией Honda, – одной из характеристик каждого реального автомобиля, естественно, будет «модель», т. е. значение из «модельного ряда».

Собственно говоря, мы только что в неявной форме дали достаточно внятное толкование понятия «многомерности» в отношении данных FASMI – их пространство должно характеризоваться таким количеством измерений, которое позволяет точно описать все возможные объекты.

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

Входящее в состав определения FASMI словосочетание «общий доступ» выгодно отличается от ранее рассмотренных слов своей «незаезженностью». Присутствием в определении оно обязано неумолимым требованиям реальности – над большими объемами данных могут (и должны) работать многие специалисты одновременно. Поэтому поддержка всех необходимых механизмов публичного доступа в FASMI-системах должна быть реализована в полной мере.

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

Вот, собственно, и все необходимое для «сборки» в единое целое понятия FASMI – «быстрого анализа многомерных данных с общим доступом». При этом некоторые сведения, можно сказать, были даже в каком-то смысле «избыточны», что позволяет сразу перейти к страшно именуемым, но предельно простым вещам. Так, например, множество измерений (т. е. множество множеств), характеризующее некоторое абстрактное пространство, объекты которого мы хотим изучать, принято отображать не математической конструкцией типа {A, B, ...}, A={...}; B={...};..., а почему-то часто называемой в русскоязычных ресурсах «схемой звезды» (star scheme, очевидно, что куда уместнее было бы говорить «звездообразная схема»). При этом и без того не очень удачный термин «схема звезды» используется не столько на концептуальном уровне, сколько вообще «привязывается» к специфике построения систем FASMI на основе реляционных баз данных.

Впрочем, мы уже знаем более чем достаточно для того, чтобы перейти к... практике.

Palo

Небольшая молодая немецкая компания Jedox GmbH была основана в 2002 г. Кристианом Рау (Kristian Raue) – успешным бизнесменом, специализировавшимся на инвестициях в разработку приложений-расширений к доступным на рынке электронным таблицам. К слову, Кристиан Рау пришел в бизнес программных продуктов вовсе не из «школы менеджеров» – в 1988 г. он выиграл соревнования по прикладному программированию Excel, организованные Microsoft (Microsoft Excel Applications Programming Competition). Специалистами самой Jedox ее продукция относится к классу «enterprise spreadsheet», электронных таблиц масштаба предприятия. В «модельном ряду» компании есть продукт, распространяемый на условиях donationware (т. е. без обязательной оплаты разработчикам, но с желательными пожертвованиями в пользу международной благотворительной организации SOS Children's Villages, помогающей сиротам 139 стран мира обрести семьи) и с открытыми на основе лицензии GPL исходными текстами – Jedox Palo-Server, который и понадобится нам для изучения техники FASMI не на бумаге, а вживую. Предваряя все дальнейшие сведения, хочется отметить безукоризненно высококлассную работу команды разработчиков Jedox: Palo – один из самых качественных на всех уровнях разработки GPL-лицензированных программных продуктов, которые доводилось видеть автору этой статьи.

Итак, будем считать, что Palo вы уже загрузили с сайта компании Jedox www.jedox.com – для начала вам понадобится дистрибутив, включающий в себя и клиент, и сервер, а также руководство по эксплуатации, распространяемое отдельно (Evaluation guide). Впоследствии вы сможете воспользоваться и отдельным сервером – для платформы как Linux, так и Windows, поставляемым в исполняемом формате, и исходными текстами сервера, доступными с сайта проекта на SourceForge (sourceforge.net/svn/?group_id=178241, единственный пока способ для получения 64-битовой версии сервера Palo – самостоятельная компиляция и сборка). Кроме того, на основе Palo вы при желании сможете развернуть многопользовательскую систему – сервер это позволяет.

OLAP без слова OLAP
OLAP без слова OLAP
Агрегированные элеменеты можно отображать как пары «множество-подмножество», так и в виде иерархий

Теперь давайте начнем знакомиться с Palo подробнее. Во-первых, как бы ни хотел этого автор, придется на некоторое время вернуться к термину OLAP, а точнее, к его модификации, характеризующей Palo. Дело в том, что эта программная система относится к классу MOLAP. И хотя для ее использования знание этого факта, безусловно, не обязательно, мы немного «поиграем по правилам». Принципиальным для систем класса MOLAP (Multidimensional OLAP) является то, что данные в них хранятся в соответствующей названию специализированной базе данных, т. е. в некоторой программной конструкции, идеально подходящей для работы с многомерными массивами данных (multidimensional array storage). Для непрограммистов это определение далеко не лучшее, поэтому попробуем уточнить его методом «от противного»: MOLAP – это не ROLAP, а вот ROLAP (Relational OLAP) – это когда в традиционной СУБД хранятся обычные, немногомерные данные, а некоторая «прослойка» прозрачно для пользователя формирует из них пригодную для решения задач анализа «иллюзию многомерности». Из сказанного сразу следует очевидный вывод – MOLAP-системы должны быть быстрее ROLAP-систем, потому что специализированное всегда выигрывает у универсального в области специализации. Менее очевидным достоинством MOLAP-систем является компактность баз данных – из-за идеального соответствия способа хранения типу данных. Существенным недостатком MOLAP-систем принято считать повышенную ресурсоемкость при работе с данными из пространств, мощность множеств измерений (или, проще, – число элементов) которых описывается числами высоких порядков, например миллионами. Впрочем, раз мы пока ставим перед собой учебные цели, нам куда важнее очевидные достоинства MOLAP-систем (и, соответственно, Palo), чем недостатки, проявляющиеся на исключительно масштабных задачах. И все же, раз такие компании, как Bayer HealthCare AG и ATLANTA Pharma Germany с успехом используют Palo для решения задач оптимизации продаж и анализа стоимости владения IT-инфраструктурой, нам предстоит знакомство с далеко не игрушечной «программкой».

Итак, сервер Palo – это СУБД класса MOLAP. Но без клиентской части называть продукт такого класса полноценным нельзя. Если учесть специализацию компании Jedox, ничего удивительного в том, что в качестве клиента ее авторы выбрали популярные электронные таблицы, нет. На сегодняшний день клиентская часть Palo версии 1.5 работает только с Microsoft Excel. Но сторонники использования только ПО Open Source могут не расстраиваться – Jedox сейчас ищет спонсора для создания плагина к OpenOffice. Учитывая производительность ее программистов и уже накопленный опыт разработки Palo для Excel, в случае удачного завершения поисков долго ожидать результата не придется.

Теперь, возвращаясь к краткому знакомству с компанией Jedox, мы можем понять, что имели в виду ее специалисты, говоря об «электронной таблице масштаба предприятия»: такую комбинацию обычной электронной таблицы и MOLAP-сервера баз данных, которая позволяет с помощью привычного и хорошо изученного инструмента решать качественно новые задачи.

Первое фундаментальное отличие Palo от любой «традиционной» СУБД кроется в характеристиках атомарного типа данных, который можно «извлечь» из этих систем одной операцией. Например, в реляционных СУБД таким типом можно считать запись – множество полей, каждое из которых характеризуется своим типом данных. В Palo же атомарный тип полностью соответствует принципу построения электронной таблицы – это ячейка (cell), т. е. результатом запроса к серверу Palo является одно значение ячейки.

OLAP без слова OLAP
Функции доступа к гиперкубу Palo отличаются от встроенных Excel-функций разве что именами

Второе, и также фундаментальное отличие Palo от «традиционных» СУБД, – механизм хранения многомерных данных. Здесь нет индексов, здесь только измерения гиперкуба – многомерной структуры, в которой хранятся значения ячеек. Измерения в Palo не просто «привязаны» к возможностям Excel, а, если так можно выразиться, материализованы за счет возможностей электронной таблицы. Мы уже приводили пример измерения «модельный ряд». В Excel его можно представить двумя способами – вертикальным и горизонтальными множествами соседних ячеек. К слову, этот пример дополнительно демонстрирует очевидное свойство листа электронной таблицы как пространства – оно двумерно. То есть для описания любого объекта, находящегося в нем (а эти объекты – ячейки), достаточно двух измерений (которые, конечно же, в явном виде присутствуют и на пустом листе Excel – номера строк и символьные имена столбцов). Максимальное же пространство, объекты которого можно описать стандартными средствами электронных таблиц (и Excel, в частности), – трехмерно (третье измерение – множество имен листов). Способ однозначного перехода от пространства с меньшей размерностью (трехмерной книги электронной таблицы) к пространству с большей размерностью MOLAP-базы данных сервера Palo осуществляется логичным и простым механизмом адресации, принятым разработчиками. В соответствии с правилами этого механизма адресом «места» определенной ячейки гиперкуба является последовательность типа:

‘имя сервера', ‘имя гиперкуба', ‘элемент множества измерение1', ... ‘элемент множества измерениеN'

Клиентское расширение (плагин) обеспечивает поддержку этого механизма адресации на уровне встроенных функций электронной таблицы. Более того, адресные функции, отвечающие за работу с Palo, в Excel обладают уникальным свойством «реверсивности». Остановимся на нем подробнее. Если в ячейку, содержащую обычную Excel-функцию, записать некоторое значение, – функция окажется безвозвратно утеряна. И это нормальное поведение для любой электронной таблицы. Но если в ячейке Excel записана функция адресации ячейки гиперкуба Palo, в той же ситуации произойдет следующее – плагин передаст серверу введенные пользователем многомерный адрес (известный из функции) и значение, которое сервер занесет в ячейку гиперкуба по указанному адресу, после чего клиент автоматически восстановит в ячейке Excel функцию адресации, запросит сервер и покажет пользователю обновленное значение. Естественно, это далеко не единственный способ ввода данных в гиперкуб Palo, но его знание необходимо для интерактивной работы с системой.

Еще одно свойство механизма адресации Palo, которое необходимо знать: способность к иерархической агрегации измерений. Иными словами, в Palo можно создавать «композитные» множества-измерения из элементов нескольких уже определенных множеств. Например, модельный ряд той же Honda на самом деле содержит и легковые автомобили, и мотоциклы, и генераторы электропитания, и самолеты, и много чего еще. Таким образом, рационально создать измерения «модельный ряд автомобилей», «модельный ряд мотоциклов» и из них – новое, «модельный ряд наземных транспортных средств», в околоматематической нотации – {«модельный ряд автомобилей», «модельный ряд мотоциклов»}. Это даст возможность, скажем, «выуживать» из гиперкуба сводную информацию – без необходимости выполнения дополнительных расчетов на клиентской стороне. Описание иерархий измерений реализуется не средствами Excel, а собственной интерактивной подсистемой плагина Palo – Modeller. С помощью этой же программы можно выполнять фактически все действия по описанию нового гиперкуба.

«Скорострельность» связки клиент–сервер Palo, необходимую для того, чтобы можно было говорить о полноценно быстрой (в трактовке Найджела Пендза) FASMI-системе, обеспечивает ее способность выполнять операции только над гиперкубом, находящимся в оперативной памяти компьютера. Доступ клиента к серверу осуществляется посредством стандартного HTTP-протокола (разработчиками принят по умолчанию порт 7777, но в настройках это можно изменить), что позволяет, например, работать с гиперкубом из скриптов и несложных программ (в частности, на VisualBasic) без использования электронной таблицы (в некоторых случаях это может быть полезно для загрузки данных, получаемых от нетривиальных источников и даже для «пополнения» содержимого гиперкуба в реальном времени). Стоит ли считать принципиальную возможность работы Palo только с находящимся в оперативной памяти гиперкубом недостатком – вопрос, ответ на который зависит от многих факторов. Следует учитывать, что, начиная с версии 1.5, появилась возможность использовать 64-битовый Palo-сервер, что стоимость модулей оперативной памяти уже далеко не такая «страшная», и наконец, что MOLAP-системы характеризуются очень эффективным использованием памяти.

Без возможности загрузки гиперкуба информацией от сторонних, «традиционных» баз данных, Palo была бы просто учебно-развлекательной системой. В состав дистрибутива входит и достаточно развитая подсистема ODBC-импорта с возможностью задания пользователем собственных запросных процедур, и мощные механизмы импорта данных из страниц электронной таблицы. Тем, кто собирается всерьез заняться многомерным анализом данных с помощью Palo, небесполезными будут сведения о сторонних разработках – например, о плагине www.3a-strategy.com/public_files/kettle/ к также открытой (лицензия GPL) и бесплатной системе Kettle (kettle.pentaho.org), предназначенном для более чем существенного ускорения процедур импорта данных.

Перечень функций, доступных пользователю Palo, невелик – их всего 25, что позволяет действительно быстро освоиться с системой. Все функции именуются в объектно-ориентированном стиле (имена начинаются с префикса «PALO») и относятся к двум категориям – операций с ячейками и измерениями гиперкуба. В первую категорию входит семейство вполне очевидных операций доступа к содержимому ячейки куба (префикс имен – «PALO.DATA*»), отличающихся деталями и быстродействием. Так, базовая функция PALO.DATA() в качестве параметра принимает адрес ячейки гиперкуба и возвращает хранящееся в ней значение. PALO.DATAC(), принимающая тот же аргумент, работает быстрее, но возвращенные ею данные можно использовать только для вывода на экран или печать, но не в качестве параметра в других формулах. Функции второй категории именуются аналогично (отличаясь только префиксом – «PALO.E*») и предоставляют пользователю возможность создавать и удалять как измерения, так и их элементы, управлять агрегацией измерений, программировать итеративные операции.

И наконец, последнее. Естественно, Palo располагает полноценными API для разработки клиентских приложений на языках С, Java, всех поддерживаемых платформой .NET и даже PHP. Поэтому в Palo можно решать практически любые нестандартные (например, для возможностей Excel-плагина, разработанного программистами Jedox) задачи. Все, что для этого нужно, – установить достаточно скромную по требованиям систему, изучить «Справочное руководство» (весьма неплохо написанное) и не бояться экспериментировать.

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

Здравствуйте!
меня зовут Дмитрий я работаю финансовым менеджером в компании которая занимается розничной торговлей.
Я случайно наткнулся на программку easybudget.
ознакомился с демо примером вроде все понятно.
попытался сделать свою базу для анализа.
вроде все нормально ...............только
одно небольшое или скорее большое НО,,,,,,,
как создать грани куба я понимаю и делаю , а как ввести значения в базу данных я немогу разобраться
Надеюсь что вы мне поможете советом.
мой mail [email protected]
Заранее благодарен и надеюсь на Вашу скромную помощь.

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT