Андрей Колесов
В конце Января Microsoft выпустила новый продукт - MS SQL Server Reporting Services, что стало важным шагом на пути формирования ее собственной законченной платформы Business Intelligence (BI).
Еще три-четыре года назад в обзорах BI-продуктов корпорация практически не упоминалась среди заметных игроков этого рынка. Однако по мере повышения спроса заказчиков на BI-средства Microsoft неуклонно наращивала свою активность в этом направлении. Правда, до недавнего времени наибольшую известность на BI-рынке имели клиентские приложения Microsoft, представленные сегодня семейством MS Office System 2003. В первую очередь это Excel (многофункциональные электронные таблицы), Data Analyzer (специализированный OLAP-клиент) и MapPoint (геоинформационная система). Но сейчас основные усилия компания вкладывает в развитие своих серверных технологий, имея целью построение законченной платформы для создания BI-решений корпоративного уровня. Эта работа ведется вокруг одного из ключевых серверных продуктов MS SQL Server 2000, в составе которого в течение последних лет появились:
- Analysis Services - службы OLAP для создания предварительно построенных кубов с целью быстрого интерактивного анализа;
- Data Transformation Services - инструменты для извлечения, преобразования и загрузки данных между операционными системами и системами бизнес-анализа;
- Accelerator for BI - система быстрой разработки для построения и развертывания аналитических приложений;
- специальные средства выявления статистических закономерностей (data mining) в больших объемах исходных данных.
Теперь к этому списку добавился комплекс Reporting Services, который хотя и использует базу данных SQL Server, но может работать с данными из различных источников, включая интерфейсы ODBC и OLE DB. Его основой служат два основных Web-приложения, реализованных в виде Web-сервисов: Report Server и Report Manager (рис. 1).
Рис. 1. Report Server и Report Manager реализованы в виде Web-служб
|
Типы отчетов
Reporting Services обеспечивает работу с традиционными и интерактивными (Web) отчетами. В первом случае поддерживаются следующие основные типы отчетов:
- табличный - фиксированное количество столбцов;
- матричный - количество столбцов зависит от результата запроса;
- графический - данные представлены графически;
- свободная форма - данные на странице организованы в произвольном виде.
При создании отчетов можно комбинировать различные формы в одном и том же отчете. Механизм генерации отчетов обеспечивает фильтрацию после выполнения запроса к базе данных, сортировку, группировку и широкий набор функций агрегаций: сумма, среднее, минимум, максимум, а также промежуточные значения.
Интерактивность в Reporting Services поддерживается следующими возможностями:
- параметризованные отчеты отфильтровывают информацию для обеспечения только тех данных, которые предназначены для этого конкретного пользователя;
- пользователь может самостоятельно показывать и убирать скрытые элементы отчета (drill-down); гиперссылки, встроенные в отчеты, направляют читателей на Web-страницы;
- связи drill-through открывают один отчет из другого, например детализированный отчет из суммарного. Первоначальный отчет обычно передает параметры в детализированный;
- закладки направляют пользователей в другую область текущего отчета;
- карты документа на HTML-странице отчета появляются как таблица содержания рядом с отчетом. При выборе пользователем элемента этой таблицы обозреватель переведет его в соответствующее место отчета.
Для повышения производительности труда и предоставления пользователям только нужной им информации Reporting Services предлагает несколько способов персонализации отчетов:
- безопасность на уровне базы данных помогает контролировать доступ пользователей к информации. Для того чтобы реализовать эту возможность, отчет должен запускаться с пользовательскими параметрами регистрации;
- поддержка параметризованных запросов позволяет брать только необходимую информацию из источника данных;
- фильтрация данных внутри отчета представляет собой метод, когда запрос возвращает все данные, но только информация, релевантная конкретному пользователю, включается в его версию отчета;
- создание связных отчетов, которые ссылаются на исходный, но имеют разные свойства, разрешения и/или параметры. Например, связный отчет может отфильтровывать данные для создания более специализированных версий исходного отчета.
Создание отчетов
Reporting Services включает графическую оболочку для создания отчетов - Report Designer (рис. 2), которая использует интегрированную среду разработки Visual Studio .NET и позволяет обойтись без написания кода.
Рис. 2. Report Designer предлагает возможности графического проектирования отчета |
С помощью Report Designer можно настраивать источники данных и конструирования запросов, добавлять в отчет так называемые регионы данных и поля, определять разметку отчета и включать в него интерактивные средства. Report Wizard облегчает создание отчета. Отчет с загруженными в него данными можно просмотреть предварительно, а как только он будет готов, Report Designer опубликует его на сервере отчетов посредством Reporting Services SOAP API.
Reporting Services для формирования отчета использует отраслевой XML-стандарт - Report Definition Language (RDL), который помимо удобства передачи данных обеспечивает совместимость с различными инструментами третьих фирм.
Исходные данные могут извлекаться из широкого спектра источников, в том числе реляционных, иерархических и многомерных БД. Напрямую поддерживаются MS SQL Server 2000 и SQL Server 7.0, Oracle, OLE DB-совместимые источники данных, включая Analysis Services, а также ODBC. Возможно подключение и других источников данных через открытый набор API на базе .NET.
Управление отчетами
Report Manager управляет всем жизненным циклом отчетов. В нем реализована возможность создания и выполнения скриптов, что позволяет администраторам автоматизировать пакетные операции на серверах.
Для контроля доступа к отчетам на сервере и разграничения административного доступа Reporting Services использует модель безопасности, основанную на ролях. Она отделяет задачи администрирования, обычно выполняемые ИТ-персоналом, от задач формирования контента отчетов. Предусмотрены следующие предопределенные роли: обозреватель, менеджер контента, издатель, системный администратор, системный пользователь, а также "мои отчеты" (построение отчетов для персонального использования).
Чтобы удовлетворить потребности крупномасштабных организаций, решение управления отчетами должно совмещать оперативный доступ к информации, высокую производительность и эффективное использование ресурсов. С учетом этого Reporting Services имеет гибкие настройки для обработки отчетов.
- Запуск отчетов по требованию и по расписанию. Администраторы сервера отчетов могут контролировать время формирования отчетов, что особенно важно при обработке больших объемов данных. Отчеты могут быть запущены по требованию, по расписанию, а также в обоих вариантах.
- Кэширование отчетов. Reporting Services отделяет базовую обработку отчета (получение и размещение данных) от преобразования отчета в указанный формат. Перед преобразованием и доставкой сервер создает отчеты в промежуточном формате, которые кэшируются автоматически.
- Снимки отчета в заданный момент времени. Каждый такой снимок сохраняется отдельно в промежуточном формате. Администраторы могут запланировать создание снимка с заданным интервалом; пользователи, запрашивающие этот отчет в дальнейшем, будут получать его из снимка, даже если базовые данные были изменены.
- Связные отчеты. Связный отчет использует то же самое определение отчета, что и исходный, но может иметь совершенно другие свойства, разрешения и параметры. Например, администратор может создать связный отчет с параметрами фильтрации данных, которые возвращаются исходным отчетом.
- Хронология отчета. Одной из встроенных возможностей управления отчетами Reporting Services является автоматическое сохранение записей снимков и хронологии отчета. Администраторы могут контролировать поддерживаемую хронологию, а также количество версий отчета в хронологии.
Доставка и преобразование отчетов
Reporting Services позволяет осуществлять доступ к отчетам именно в то время и в том месте, когда и где они нужны. Поддерживаются два основных метода доставки:
- доставка по требованию, когда пользователи динамически запрашивают отчеты из сервера;
- запланированная или управляемая событиями доставка, когда подписчики принимают отчеты автоматически при обновлении данных или по специальному расписанию.
За отчетами по требованию пользователи обращаются к серверу отчетов через обозреватель. Доставка отчетов по расписанию управляется через подписку, в которой помимо прочего указывается необходимый формат отчета и тип доставки. Например, один пользователь хочет видеть HTML-версию отчета, в то время как другому он нужен в виде Excel-вложения в почтовом сообщении.
Получать отчеты через подписку можно тремя путями:
- администратор сервера отчетов включает пользователей в подписку на данный отчет;
- пользователи динамически подписываются на отчет и при этом могут персонализировать канал и формат доставки;
- внешний источник данных динамически генерирует список получателей отчета в режиме реального времени (подписка, управляемая данными).
Пользователи могут создавать и собственные персональные подписки, виды необходимых отчетов и предпочтительные пути их получения. Все это регулируется моделью безопасности, поэтому подписываться можно только на те отчеты, к которым у пользователя есть доступ.
Во многих крупных организациях потенциальные получатели отчета могут часто меняться в соответствии с принадлежностью к определенному отделу или по территориальному признаку. В этом случае вместо ручного обновления подписки ИТ-персоналом можно использовать подписку, управляемую данными. Список получателей отчета создается динамически при включении подписки с использованием внешних источников данных, например базы данных сотрудников.
Поскольку преобразование отчета отделено от первоначальной обработки данных, один и тот же отчет может быть преобразован для разных пользователей в разные форматы: HTML, HTML With Office Web Components, Multipart HTML, Excel, Image, PDF.
Расширения и программные интерфейсы
Reporting Services создан таким образом, чтобы обеспечить возможность интеграции в инструменты и приложения независимых разработчиков. В Reporting Services Web-службы XML предоставляют единую точку входа ко всей функциональности сервера отчетов и могут действовать как коммуникационный интерфейс между сервером и клиентскими приложениями. Они используют SOAP поверх HTTP, что позволяет разработчикам создавать свои собственные инструменты для любой части жизненного цикла отчетов - от управления до выполнения.
Сервер отчетов Reporting Services доступен через параметризованные URL- запросы, поэтому разработчики могут внедрять гиперссылки на отчеты. Microsoft поставляет набор API, которые можно использовать для расширения возможностей Reporting Services. С их помощью разработчики могут вставлять свои функции в продукт, не дожидаясь, когда Microsoft добавит эти возможности в следующих версиях.