![image](https://habrastorage.org/files/ec1/f37/d84/ec1f37d846924db98b17ef1fd00999a0.png)
В современном мире существуют определенные классы программного обеспечения, которое ориентированно в основном на корпоративный сегмент (крупный и средний бизнес) и соответственно не имеет широкого распространения. Но некоторые программные комплексы имеют достаточно интересные функции, которые можно применить не только в сфере мелкого бизнеса, но и в качестве персонального инструмента. Вот об одном из таких программных комплексов и пойдет речь в данной статье.
Примечание
Я являюсь техническим специалистом, соответственно статья имеет более технический уклон. Если есть желание почитать информацию по продукту, ориентированную на бизнес пользователей, то вам на офсайт IBM.
Основная цель этой статьи, показать вам как сделать свой первый «Hello World» (по аналогии с программированием) в IBM Cognos BI.
Также хочу отметить, что я имею большой опыт написания пошаговых инструкций со скриншотами каждого шага. Но эта статья не будет очередной пошаговой инструкцией, здесь я хочу показать концепцию работы с системой, а не сделать еще один мануал.
Что такое BI?
Итак, что же такое BI система? Если в трех словах, то это продвинутая система отчетности. Что-бы было более понятно, ниже перечислю список основных функций, которыми располагают современные системы класса BI:
- возможность подключения к различным источникам данных (от файла Excel до универсального ODBC подключения)
- возможность построения как простых отчетов (типа график или таблица), так и сложных параметризированных отчетов с комбинированной структурой и ссылочными связями (Drill-Trough, Drill-Up/Drill-Down)
- возможность прозрачной работы с разными источниками данных (например, Excel и SQL Server) с полноценной обработкой связей между ними
- возможность интерактивной работы с данными (формирование отчетов «на лету»)
- возможность представления реляционных данных как многомерные
- возможность распределения прав доступа используя как внутренние источники аутентификации, так и внешние (NTLM, LDAP и т. д.)
- возможность запуска формирования отчетов как вручную, так и автоматически по расписанию
- возможность автоматической рассылки сформированных отчетов
- возможность построения отчетов в различных форматах (Excel, HTML, PDF и т. д.)
Говоря простым русским языком, BI система – это такая программа, которая предоставляет пользователю удобные инструменты анализа фактически любых данных (будь то файл Excel либо промышленное хранилище данных).
Возможность применения BI системы в качестве персонального инструмента
Сразу становится вопрос, как можно использовать эту систему в качестве персонального инструмента? Отвечу по личному примеру, я использую IBM Cognos BI в качестве инструмента по анализу статистики в своих проектах и инструмента по анализу статистики домашней бухгалтерии.
Тут конечно можно возразить, что-то в духе «я и обычным SQL запросами отлично анализирую статистику» или «встроенных функций Excel вполне достаточно чтобы проанализировать всю домашнюю бухгалтерию», но «все познается в сравнении». Как показывает практика, гораздо проще просто натаскать мышкой нужные элементы данных и получить результат в готовом виде, чем возится с написанием SQL запросов или перенастраиванием функций Excel.
Опять-таки, все написанное это лично мое мнение, с которым вы не обязаны соглашаться.
Архитектура IBM Cognos BI
Архитектура системы относительно несложная (как для системы корпоративного класса). Итак, ключевым элементом системы является IBM Cognos BI сервер (см. схему ниже), который работает с источниками данных, используя созданное пользователем описание (именуемое метаданными). Далее, посредством Web доступа, IBM Cognos BI сервер предоставляет доступ ко всем основным функциям системы.
Этапы работы с системой
Чтобы сделать свой первый отчет необходимо выполнить несколько основных этапов:
- Создать подключение к источнику данных
- Сформировать описание источника данных, т. е. создать метаданные
- Создать и опубликовать пакет метаданных на IBM Cognos BI сервере
- Создать отчет
Структура тестового источника данных
Перед тем как приступить к реализации вышеописанных этапов, я хочу сказать пару слов об тестовом источнике данных. С одной стороны, структура тестового источника данных относительно простая (как для промышленного хранилища данных) с другой стороны она несколько сложнее чем простой лист Excel. Все данные в источнике являются синтетическими (сгенерированы алгоритмами на основе случайных чисел), из-за этого агрегатные показатели выглядят весьма ровно.
![image](https://habrastorage.org/files/d29/ca2/4d1/d29ca24d17124d8789eed735a71c3989.png)
Как видно на схеме выше, в тестовой базе данных содержится 3 иерархических измерения: «Группа товара -> Товар», «Континент -> Страна -> Город -> Торговая точка», «Год -> Полугодие -> Квартал -> Месяц -> Дата»; 2 плоских (одномерных) измерения: «Кассир», «Региональный руководитель»; и 2 таблицы фактов: «Продажи», «План продаж».
Причем измерение «Кассир» расположено в одной из таблиц фактов в денормализованном виде, а измерение «Региональный руководитель» привязано к уровню «Страна» измерения «Торговая точка» связью «многие ко многим» (подразумевается, что один руководитель может управлять разными странами).
Подключение к источнику данных
В IBM Cognos BI все необходимые параметры для подключения к источникам данных хранятся в специальных объектах системы, которые так и называются «Data Source Connections». Чтобы создать новое подключение, необходимо выполнить несколько простых шагов: зайти на портал IBM Cognos BI, перейти в раздел «Администрирование» («Administration»), открыть вкладку «Конфигурация» («Configuration»), выбрать подраздел «Подключения источника данных» («Data Source Connections») и нажать кнопку «Новый источник данных» («New Data Source») в панели инструментов. Далее появится серия диалоговых окон, в которых будет необходимо задать несколько параметров, таких как название подключения, тип соединения, сервер, логин, пароль и т. д.
Разработка метаданных
Разработка метаданных, это один из самых сложных и ответственных моментов. От качества метаданных зависит, как работоспособность системы (скорость формирования отчетов, корректность сформированных результатов и т. д.) так и удобство разработки отчетов. Но несмотря на вышесказанное, сложность разработки метаданных прямо пропорциональна сложности источника данных. Например, чтобы построить реляционное описание нашего тестового источника данных, достаточно запустить мастер построения метаданных, несколько раз кликнуть кнопку «Next», и метаданные готовы.
Итак, как я уже писал ранее, метаданные – это описание источника данных. В IBM Cognos BI. Фундаментом метаданных являются объекты «Query Subject» и связи между ними. Объект «Query Subject» это синоним «View» из реляционных СУБД. Т. е. в основе «Query Subject» стоит запрос к СУБД, определяющий структуру объекта источника, а связи между «Query Subject» это описание логического взаимодействия между этими запросами.
Для создания метаданных в IBM Cognos BI используется отдельное приложение IBM Cognos Framework Manager (единственное не Web приложение в комплексе IBM Cognos BI). После запуска Framework Manager будет предложено создать новый проект (необходимо будет ввести наименование проекта и его расположение в локальной файловой системе).
Следует понимать, что проект Framework Manager (также именуемый как модель Framework Manager) это набор локальных файлов, с которыми работает локальная программа, а пакет метаданных это результат, который располагается на IBM Cognos BI сервере (если проводить аналогию с программированием, то проект – это исходный код, а пакет – это скомпилированное приложение). На базе одного проекта Framework Manager можно создать несколько наборов пакетов.
После того как проект Framework Manager создан, лучше всего начать работу с запуска мастера импорта метаданных (Action -> Run Metadata Wizard …). Мастер импорта предложит выбрать существующий источник данных или создать новый и позволит выбрать необходимые объекты для импорта. В простейшем случае (например, когда источником данных является файл Excel, который в 99,9% случаев содержит данные в денормализованном виде) нужно будет полям объекта «Query Subject» задать правильный тип использования (атрибут «Usage») и на этом работу с моделью Framework Manager можно заканчивать и приступать к формированию и публикации пакета метаданных. В более сложном варианте (как в нашем тестовом примере), необходимо будет проверить правильность импортированных связей между объектами «Query Subject», исправить некорректные и добавить недостающие. В более профессиональных вариантах есть возможность создавать вычисляемые поля, менять структуру «Query Subject», сформировать многомерное (multidimensional) представление, определить алгоритмы безопасности и т.д.
![image](https://habrastorage.org/files/047/dcf/1c5/047dcf1c552d4837a1cb003ec97c13dd.png)
Создание и публикация пакета метаданных
После того как метаданные созданы, необходимо сформировать метапакет и опубликовать его на IBM Cognos BI сервере. Как я упоминал ранее, метапакет – это некоторое подмножество метаданных, которое публикуется на сервере и с которым работают все Web приложения комплекса IBM Cognos BI. Настройки метапакета позволяют скрыть или не публиковать некоторые объекты метаданных. Например, в тестовых метаданных есть некоторый «Query Subject» [Country_RegDir], который влияет на логику обработки данных источника (является связующим звеном между страной и региональным директором), но не представляет ценности при разработке отчетов, вот такой объект метаданных имеет смысл скрыть на уровне пакета. Или, например, поля с идентификаторами, их тоже имеет смысл скрыть от пользователей метапакетов.
Чтобы создать метапакет необходимо в Framework Manager, в разделе «Packages» вызвать контекстное меню и выбрать пункт «Create -> Package», после чего появится мастер создания метапакета. После того как метапакет будет создан, система сразу предложит его опубликовать на сервере. Начинающему пользователю можно сильно не вникать опции мастера публикации пакетов (просто нажимать кнопку Next и Publish). Единственно что, на последней вкладке (где будет не кнопка Next, а кнопка Publish) будет птичка «Verify package before publish», она определяет проверять ли метапакет на наличие логических неоднозначностей перед публикацией и отображает список этих неоднозначностей, если они буду найдены. Настоятельно рекомендую никогда не пропускать этот шаг и исправлять все найденные неоднозначности перед публикацией.
![image](https://habrastorage.org/files/067/9e8/972/0679e897231b48c99601284d4a8d5abc.png)
Создание отчетов (анализ данных)
Вот мы потихоньку и подобрались к самому интересному и регулярному процессу – это создание отчетов. Так сложилось что инструменты для создания регулярных отчетов и инструменты для быстрого анализа данных в IBM Cognos BI одни и те же (несмотря на то что в одних удобнее проводить быстрый анализ, а в других удобнее формировать регулярные отчеты, все они позволяют сохранять свои результаты в виде отчетов).
Лично я предпочитаю для всех BI задач использовать инструмент IBM Cognos Report Studio. Это наиболее универсальный инструмент, позволяющий строить отчеты фактически любой сложности и в тоже время предоставляет относительно удобные инструменты для быстрого анализа данных.
Предположим, что нам необходимо создать быстрый отчет, содержащий факт продаж в разрезе страны, товарной группы и периодичностью в квартал. Этот достаточно простой отчет можно сделать, выполнив следующие шаги:
- запустить веб приложение IBM Cognos Report Studio
- в окне приветствия нажать кнопку «создать» («create»)
- в списке базовых шаблонов выбрать «перекрестная таблица» («corsstab»)
- разместить элементы данных согласно схеме, представленной ниже
- запустить отчет на выполнение
![image](https://habrastorage.org/files/f3e/53a/c68/f3e53ac68724486fb1d38190e47c2040.png)
После запуска отчета на выполнение, получится примерно такой результат.
![image](https://habrastorage.org/files/860/829/a48/860829a4820b4caca0408e8549e5c550.png)
Глядя на получившийся отчет можно смело сказать, что оформлен он откровенно плохо, числа не отформатированы, экономический смысл откровенно сомнителен и т. д. Но все эти недостатки оформления можно убрать путем задания свойств соответствующих элементов настроек, а чтобы экономический смысл был более интересен, можно, например, сделать план/факт анализ.
Например, чтобы сделать отчет, показанный ниже (на готовых метаданных) я, как специалист с опытом, потратил где-то 20-30 минут.
![image](https://habrastorage.org/files/716/489/d1d/716489d1d71b405cb1ddc2c756423dc3.png)
А чтобы его полностью переоформить в темную цветовую схему, я потратил где-то еще 10 минут.
![image](https://habrastorage.org/files/a18/2ae/377/a182ae3777cd4619b45e31ab9f0b0cca.png)
Заключение
Я надеюсь, что в этой статье читатель смог получить общие сведения о BI системах и принципе их работы. Конечно в рамках небольшой статьи невозможно рассмотреть относительно подробно ни один из затронутых аспектов (например, о том, как правильно сформировать метаданные, можно написать целую книгу), но я думаю, что если вы решите попробовать, то эта статья подскажет с чего начать и какого результата ожидать.
Также я совсем не затронул некоторые интересные механизмы и функции (например, механизм представления реляционного источника данных как многомерного), но это из-за того, что количество необходимого материала (минимум теории и минимум практики) потянет на отдельную статью.
Немного о лицензиях
Если вы решите купить отдельно систему IBM Cognos BI для персонального пользования или для небольшой фирмы, то наверняка цены вас неприятно удивят, но у IBM есть специальная комплексная система IBM Cognos Express, которая рассчитана на небольшие организации, содержит в себе несколько продуктов (включая BI) и стоит значительно дешевле.