4
Вычислительные машины и программное обеспечение^
СПИСОК ЛИТЕРАТУРЫ
1. Схрейвер A. Теория линейного и целочисленного программирования. М.: Мир. 1991, т. 2. 342 с.
2. Stickel M.E. A Unification Algorithm for Associative-Commutative Functions / Journal of ACM. 1981. Vol. 28. № 3. P. 423-434.
3. Ghosh S., Martonosi M., Malik S. Cache miss equations: a compiler framework for analyzing and tuning memory behavior // ACM Transactions on Programming Languages and Systems. 1999. Vol. 21. № 4. P. 703-746.
4. Korzun D.G., Gurtov A.V. A Diophantine Model of Routes in Structured P2P Overlays // SIGMETRICS Performance Evaluation Review. ACM. 2008. Vol. 35. №. 4. P. 52-61.
5. Pottier L. Minimal Solutions of Linear Diophantine Systems: Bounds and Algorithms / 4th Int. Conf. on Rewriting Techniques and Applications (RTA-91) / Springer-Verlag. 1991. LNCS 488. P. 162-173.
6. Contejean E. An Efficient Incremental Algorithm for Solving Systems of Linear Diophantine Equations / E. Contejean, H. Devie // Information and Computation. 1994. Vol. 113. № 1. P. 143-172.
7. Domenjoud E., Tomas A. P. From Elliott-MacMahon to an Algorithm for General Linear Constraints on Naturals // 1st Int. Conf. on Principles and Practice of Constraint Programming (CP '95). 1995. LNCS 976. P. 18-35.
8. Domenjoud E. Solving systems of linear diophantine equations: an algebraic approach / 16th Int. Symp. on Mathematical Foundations of Computer Science. 1991. LNCS 520. P. 141-150.
9. Tomas A.-P., Filgueiras M. Solving Linear Diophantine Equations Using the Geometric Structure of the Solution Space // 8th Conf. on Rewriting Techniques and Applications (RTA '97). 1997. LNCS 1232. P. 269-283.
10. Богоявленский Ю.А., Корзун Д. Ж. Общий вид решения системы линейных диофантовых уравнений, ассоциированной с контекстно-свободной грамматикой // Труды ПетрГУ. "Прикладная математика и информатика". Вып. 6. Петрозаводск: Изд-во ПетрГУ 1997. С. 79-94.
11. Корзун Д.Ж. Syntactic Methods in Solving Linear Diophantine Equations / Труды междунар. семинара Finnish Data Processing Week at the University of Petrozavodsk (FDPW'2004): Advances in Methods of Modern Information Technology. Vol. 6. Петрозаводск: Изд-во ПетрГУ. 2005. C. 151-156.
12. Кулаков К.А., Корзун Д.Ж., Богоявленский Ю.А. Итеративный алгоритм нахождения базиса Гильберта однородных линейных диофантовых систем, ассоциированных с контекстно-свободными грамматиками // Вестник Санкт-Петербургского университета. Сер. 10. Вып. 2. СПб.: Изд-во СПбГУ 2008. С. 73-84.
13. Проект Web-SynDic: Система удаленного решения линейных диофантовых уравнений в неотрицательных целых числах / Ю.А. Богоявленский, Д.Ж. Корзун, К.А. Кулаков, М.А. Крышень // Матер. междунар. конф. "Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы". Т. 1. Петрозаводск: Изд-во ПетрГУ 2006. С. 136-145.
14. Кулаков К.А. Генерация систем неотрицательных линейных диофантовых уравнений / Матер. меж-дунар. конф. "Развитие вычислительной техники в России и странах бывшего СССР: история и перспективы". Т. 2. Петрозаводск: Изд-во ПетрГУ 2006. С. 58-65.
15. Корзун Д.Ж. О существовании порождающей КС-грамматики для произвольной линейной диофанто-вой системы / Труды ПетрГУ. "Математика". Вып. 6. Петрозаводск: Изд-во ПетрГУ 1999. С. 34-40.
УДК 004.651.4
А.М. Бородин, С.В. Поршнев
СРАВНИТЕЛЬНЫМ АНАЛИЗ ВОЗМОЖНОСТЕЙ И СКОРОСТИ ОБРАБОТКИ МНОГОМЕРНЫХ ДАННЫХ ПРОГРАММНЫМИ СРЕДСТВАМИ БИЗНЕС-АНАЛИТИКИ НА ОСНОВЕ ИНДЕКСИРУЮЩИХ СТРУКТУР ОСНОВНОЙ ПАМЯТИ
Одним из активно развиваемых в последнее комплексного и многомерного анализа большого
время направлений прикладного использования количества данных (финансовых, статистических,
информационных технологий является бизнес- операционных и т. п.) для быстрого получения еди-
аналитика (Business Intelligence - BI) - процесс ныхиконсолидированныхотчётов,объединяющих
^ Научно-технические ведомости СПбГТУ 1' 2010
различные типы информации [1]. Это во многом обусловлено тем, что BI, призванная оперативно выявлять и анализировать любые, даже самые сложные аспекты функционирования бизнеса с помощью интерфейса привычных офисных приложений, может, как ожидается, обеспечить более высокое качество и скорость анализа бизнес-процессов и, соответственно, принимаемых управленческих решений. При этом очевидно, что необходимым и достаточным условием достижения главной цели использования BI является обеспечение эффективного доступа и обработки исходной информации, хранящейся, как правило, в многомерных хранилищах данных.
Таким образом, задача разработки методов, алгоритмов и программного инструментария для работы с многомерными данными является актуальной. Данный вывод подтверждается, в частности, включением в пакет MS Office 2010 новой надстройки PowerPilot для программы электронных таблиц MS Excel [2], являющейся инструментом для работы со сводными таблицами (pivot tables), одной из наиболее часто используемых в BI формой представления данных.
В статье обсуждаются результаты сравнительного анализа скоростей построения индексов и расчётов агрегатных запросов программной надстройки PowerPilot для MS Excel 2010, реализующей технологию VertiPaq [3] (русскоязычный перевод), и специализированной программной библиотеки "Индексирование многомерных классифицированных данных" [4]. Данная программная библиотека была использована при разработке информационной системы "Сапфир", предназначенной для планирования бюджета субъектов РФ [5].
Технология индексирования VertiPaq
программной надстройки PowerPivot для MS Excel
VertiPaq - технология быстрой обработки табличных данных из наборов данных PowerPivot интегрированных с системой SharePoint, либо данных в книгах MS Excel.
VertiPaq является технологией баз данных основной памяти (in-memory database), обеспечивающей хранение аналитических данных в памяти в сжатом виде. В связи с тем, что производительность напрямую зависит от степени избыточности (денормализации) [2] данных, в среднем предполагается сжатие данных примерно в
десять раз, можно сделать вывод, что речь идёт о сжатии данных за счёт нормализации.
Основной идеей технологии VertiPaq является возможность создания BI-ориентированных систем на любом компьютере без необходимости приобретения MS SQL Server Analysis Services и разворачивания полноценной СУБД. Технология VertiPaq позволяет обрабатывать значительные объёмы данных в основной памяти (ОЗУ) без применения сложных и ресурсоёмких решений СУБД.
Программная надстройка PowerPivot, в которой реализована технология VertiPaq позволяет создавать набор связанных таблиц, используя в качестве источников данные из MS Excel, MS SQL Server, текстовых файлов и др., а также вычислять по каждой созданной таблице наборы агрегатных значений. Измерения агрегации здесь представляются в виде плоских списков, которые составляются автоматически. Отметим, что на данный момент не известно, в какой версии разработчики PowerPivot реализуют поддержку иерархических измерений [6]. Вместе с тем поддержка данного типа измерений является важной частью идеи BI-технологий.
Приведём пример задачи, для решения которой целесообразно использовать PowerPivot: имеются данные о нарушениях правил дорожного движения (ПДД). Одним фактом таких данных является набор из нескольких значений: дата нарушения, имя нарушителя, сумма штрафа, тип нарушения, имя инспектора, составившего протокол. Также имеется таблица сопоставления имени инспектора району города. Необходимо построить сводную таблицу, в колонках которой будут находиться названия районов города, в строках -месяцы конкретного года, а в клетках - количество штрафов или общая сумма штрафов.
Здесь расчёт одной клетки фактически является вычислением агрегатного запроса. По такой таблице пользователь системы может, например, оценить динамику нарушений ПДД в определённом районе или сравнить показатели по районам. Если объединить эти данные с таблицей недавних дорожных ремонтов, то можно получить зависимость нарушений ПДД от состояния дороги (или даже от времени суток, от пола водителя и т. п.).
Программный комплекс PowerPivot, в котором реализована технология VertiPaq, предоставляет пользователю Microsoft Excel возможность вычисления агрегатных функций по набору
Вычислительные машины и программное обеспечение
данных, записи в котором характеризуются "плоским" классификатором, т. е. не поддерживается иерархическая организация классификаторов данных. Таким образом, сегодня технология Ver-tiPaq доведена до программной реализации, которая является законченным В1-решением, готовым к эксплуатации конечным пользователем. Недостатками технологии является, во-первых, отсутствие открытых програмных интерфейсов, и, во-вторых, отсутствие поддержки иерархической классификации данных.
Технология индексирования многомерных данных в программной библиотеке "Индексирование многомерных классифицированных данных"
Программная библиотека "Индексирование многомерных классифицированных данных" (ИМКД) состоит из двух основных модулей: индексирования пространственных данных; связи классифицированных аналитических данных с пространственными координатами.
Модуль связи классифицированных аналитических данных с пространственными координатами предоставляет пользователю функционал для установления соответствия классификаторов данных пространственным координатам, геометрической интерпретации классифицированных данных и аналитических запросов. При использовании функций данного модуля, связь с модулем пространственного индексирования происходит автоматически.
Работа модуля основана на алгоритме проецирования иерархического классификатора данных на числовую ось. Здесь используются неотрицательные целые значения. При этом контроль перекрытия элементов классификатора осуществляется автоматически. Отрицательные значения измерений зарезервированы для специальных элементов, например, информация об отсутствии значения в поле измерения. Рассматриваемый алгоритм также предоставляет пользователю возможность создания не агрегируемых классификаторов. Это означает, что данные на листовых элементах иерархии не участвуют в расчёте для родительских элементов.
Модуль пространственного индексирования предоставляет пользователю возможность управления набором многомерных пространственных данных, в том числе, выполнения поиска по оконному запросу (поиск данных в диапазоне,
заданном интервалами в нескольких измерениях). Работа данного модуля основана на использовании разновидности индексирующей структуры R*-дерева [7]. При этом объём памяти индексированных данных увеличивается не более чем на 10 % от объёма изначальных данных.
Алгоритм размещения индексных данных адаптирован для применения на клиентских рабочих станциях и не требует серверной ЭВМ.
Применение программной библиотеки в информационно-аналитической системе позволяет производить аналитические расчёты по большому объёму данных. При этом асимптотические оценки показывают, что вычислительные затраты при больших N (N - количество записей в таблице фактов) не более чем O(N^log(N)), где [8].
Программную библиотеку, которую легко и быстро адаптировать для вычисления любого типа запросов над набором пространственных или аналитических данных, можно использовать в научных организациях для исследований больших наборов пространственных данных.
ИМКД предоставляет разработчику приложений средства агрегирования многомерных данных, записи которых характеризуются набором иерархических классификаторов и содержат набор данных-атрибутов. Кроме того ИМКД, в свою очередь, имеет гибкий программный интерфейс, поддерживает иерархическую организацию данных; индексирующая система ИМКД может применяться не только для решения BI-задач. В тоже время ИМКД не является конечным программным продуктом.
Результаты сравнительного анализа скоростей построения индексов и расчётов агрегатных запросов
Сравнительный анализ скоростей построения индексов и расчётов агрегатных запросов программной надстройки PowerPilot для MS Excel 2010, реализующей технологию VertiPaq, и специализированной программной библиотеки "Индексирование многомерных классифицированных данных" проводился в процессе решения следующей задачи.
Генерировался набор данных, каждая запись которого характеризовалась четырьмя плоскими классификаторами. Каждый из классификаторов принимал одно из тысячи возможных значений. Требовалось построить индексирующую структуру и рассчитать сто тысяч агрегатных
4
Научно-технические ведомости СПбГТУ 1' 2010
Таблица 1 Таблица 2
Производительность ИМДК Производительность VertiPaq
Количество записей Время Время расчёта
в исходном наборе построения агрегатных
данных индекса, мс значении, мс
1000 27 390
10000 201 1878
50000 1111 5843
100000 2890 11477
250000 8120 20273
500000 17259 62361
750000 35382 152298
1000000 80118 217640
Количество записей Время Время расчёта
в исходном наборе построения агрегатных
данных индекса, с значении,с
50000 31 0,5
100000 53 0,8
150000 79 1,1
200000 103 1,4
250000 134 1,8
300000 160 2,1
350000 187 2,5
400000 217 2,9
450000 241 3,2
500000 264 3,4
значений по первым двум классификаторам. При этом значения выбирались так, чтобы каждый элемент данных ровно один раз попал только в один из агрегатных запросов.
Тестирование проводилось на системе с одним центральным процессором с тактовой частотой 1,7 ГГц, 2 Гб ОЗУ под управлением 32-разрядной ОС Microsoft Windows XP Professional Edition. Результаты тестирования представлены в табл. 1 и 2.
Из табл. 1 и 2 видно, что индекс в соответствии с технологией VertiPaq строится значительно медленнее индекса ИМДК, однако, производительность расчётов агрегатов в соответствие с технологией VertiPaq оказывается выше. Отчасти это может быть следствием того, что индексирующая структура VertiPaq не ограничена требованием поддержки иерархических классификаторов.
С распространением 64-разрядных операционных систем, в которых отсутствуют ощутимые ограничения на используемый объём ОЗУ, и увеличением размеров доступной ОЗУ на типовых ЭВМ подход индексирования данных в основной памяти становится всё более оправданным. В этих условиях программная библиотека "Индексирование многомерных классифицированных данных" предоставляет разработчику программных комплексов возможность создавать аналитические системы, обладающие производительностью и функциональностью сравнимой с проприетарными разработками крупных компаний. Подход, основанный на индексировании в основной памяти, значительно проще для разработки и отладки, чем классический подход страничной организации данных. При его использовании исчезает необходимость решения целого комплекса проблем, связанных, в том числе, с конкурентной работой, контролем целостности, тран-закционности системы и др.
СПИСОК ЛИТЕРАТУРЫ
1. Рынок BI-платформ. Результаты исследований за 2008 год: (URL: http://citcity.ru/21333/)
2. PowerPivot features (URL: http://technet.microsoft. com/en-us/library/ee210639(SQL.105).aspx#IMBI)
3. Analysis Services in VertiPaq mode ([Электронный ресурс] // http://technet.microsoft.com/ru-ru/library/ ee637273(SQL.105).aspx).
4. Рекламно-техническое описание "Программная библиотека "Индексирование многомерных классифицированных данных" 45392457.00084-01 99 01. Инв. номер ВНИ-ТИЦ 50200900990 // Св. о рег. электронного ресурса № 14197 ОФЭРНИО".
5. Бородин А.М, Поршнев С.В., Сидоров М.А. Использование пространственных индексов для обработки аналитических запросов и агрегирования многомерных данных в ИАС // Изв. Томского политехнического ун. 2008. № 5. С. 64-86.
6. PowerPivot (Gemini) support hierarchies in dimensions ([Электронный ресурс] // http://connect. microsoft.com/SQLServer/feedback/ ViewFeedback.aspx? FeedbackID=503887).
7. BeckmannN.,KriegelH.-R, SchneiderR., SeegerB. The R*-tree: An Efficient and Robust Access Method for Points and Rectangles, Praktuche Informatik // Universitaet Bremen, D-2800 Bremen 33. West Germany. 1991.
8. Бородин А.М., Сидоров М.А., Поршнев С.В. Методы оценки эффективности R-tree индекса агрегирующих запросов в OLAP-системах // Сб. науч. тр. Междунар. науч.-практ. конф. СВЯЗЬ-ПРОМ. 17-19 марта 2009. Екатеринбург: УрТИСИ ГОУ ВПО "Сиб-ГУТИ". 2009. Т. 2. С. 59-66.