Мой опыт по внедрению OLAP

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

Мой опыт по внедрению OLAP

Андрей Попов
Daddy7@yandex.ru

С чего все начиналось.

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

В результате я решил поэкспериментировать с OLAP, благо инструментарий был под руками. Идея OLAP проста как мир - обменивать время на память. В качестве хранилища я выбрал базу данных SQL 2000, поскольку предполагал, что данные будут накапливаться годами, их обЪем будет расти. В качестве сервера OLAP был выбран MS Analysis Server, входящий в комплект MS SQL 2000. Больше всего времени ушло на поиски клиентской программы. В конце концов я остановился на программе MOLAP.RU http://molap.rgtu.ru/. Эту программу отличает достаточно простой интерфейс и достаточная быстрота работы. Она написана с использованием OWC, входящих в состав MS Office XP, но в отличие от использования впрямую сводных таблиц в Exel, она работает намного быстрее, особенно на больших обЪемах. К сожалению, проект заброшен. В программе есть одна особенность (или ошибка): Если в анализируемом кубе все фактические меры (measures) сделаны невидимыми, т.е. видимы только вычисляемые меры, то программа не может получить список полей куба.

Для себя еще хочу посмотреть продукт MS Data Analyzer, продукт достаточно свежий, информации по нему еще мало.

Что еще стоит почитать в сети? Мне понравилась серия статей "Введение в OLAP" на сайте www.olap.ru, (перепечатка из КопьтерПресс). В них рассматриваются как раз те продукты, которые я выбрал. Для людей, начинающих свое знакомство с OLAP - очень познавательно. Можно еще сходить на сайт фирмы "Активные торговые технологии" www.1bi.ru/. Из описания их продукта "Акселератор для 1С:Предприятия" можно подчерпнуть много идей по организации и проектированию кубов. Может кому-нибудь понравиться клиентская программа DataVision питерской фирмы Digital Design, предлагаемая на этом сайте.

Что дальше?

Первый шаг - проектирование хранилища данных. Необходимо спроектировать таблицы, в которых будут храниться фактовые значения и измерения планируемых кубов. Надо заранее определить, какие измерения будут общими, и вынести их в отдельные таблицы. В последствии это позволит нам обЪединить несколько кубов в один виртуальный.

В таблице, где мы будем хранить остатки по дням, сделаем еще одно поле для хранения количества дней от первой даты в этой таблице. Кроме этого, надо еще следить за тем, что бы типы данных, определяемых на этой стадии, поддерживались 1С. Список типов данных приведен в Описании встроенного языка в главе посвященной работе 1С с внешними приложениями через OLE.

Второй шаг - написание обработки, которая будет заполнять эти таблицы. Пример такой обработки есть на сайте http://molap.rgtu.ru/.

Далее займемся собственно проектированием многомерных кубов. Для куба, в котором мы храним остатки для меры, которая хранит количество дней, необходимо установить агрегирующую функцию Distinct count. Вместо всех остальных мер необходимо задать вычисляемые значения, поделив фактовое значение на меру количества дней. После того, как все многомерные кубы определены и произведен их процессинг, можно определить один или несколько многомерных кубов, для того чтобы например, оценивать на одном графике динамику складских запасов и динамику продаж.

У себя я определил четыре куба - Остатки, Обороты по отгрузке, Обороты по оплате и Возвраты. Кроме этого они все обЪединены в один виртуальный куб.

Что еще можно сделать?

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

Что дальше? Данные сами подскажут. На основе анализа, предоставляемого OLAP, возникают новые потребности в информации, цепочка эта непрерывная, так что тут заранее трудно что-то предположить. Одно могу сказать точно - готовых решений не бывает!

Комментарии

3
  • Хранитель_врат
    Ну что тут сказать? Как ни глупо прозвучит - molap.ru - rulezzz. Это по собственному опыту.
  • Хранитель_врат
    Ох уж этот молодежный сленг!
    Rullez - это круто или дохло???
  • Хранитель_врат
    интересно.
    кто знает, есь ли ещо што-то из олап-подобных, что можно использовать с 1с ?
    работает ли атрейд со всеми конфигами 1с или только с опредиленными?
    пишите кто че знает на emkon@stalprokat.ru