Сложно представить анализ данных без технологии OLAP (On-Line Analytical Processing). Хотя существуют разные мнения по поводу того, стоит ли считать OLAP технологией или идеологией. Ведь OLAP можно представить и как сложный многомерный куб, и как обычные перекрёстные таблицы (кросс-таблицы). Все это можно назвать оперативной аналитической обработкой данных. Традиционно OLAP принято считать технологией для упорядочения больших объемов данных с целью проведения статистического анализа.
Часто OLAP системы называют кубами. Как мы знаем куб имеет три измерения: длину, ширину и высоту. Поэтому куб – трехмерная фигура. Также и с данными. Например, данные по количеству проданных товаров каждым менеджером компании можно представить в виде матрицы (кросс-таблицы). Это двумерный набор данных – в заголовках строк – наименование товара, в заголовках колонок – имена менеджеров.
Но если мы добавим еще одно измерение, например, месяцы, то этот набор данных станет трехмерным. А можно добавить еще и годы. То есть количество измерений совсем не ограничивается двумя-тремя. Название куб не должно вводить вас в заблуждение, оно служит лишь для того, чтобы было сразу понятно – речь идет о многомерном хранилище данных. Таким образом, OLAP куб на практике может иметь несколько десятков измерений – это очень сложная конструкция, которую сложно представить в голове. Но именно такой многомерный куб и позволяет собрать все данные воедино и быстро получить нужную информацию для анализа.
Для работы с кубами применяют срезы – то есть выборку только определенных, нужных вам измерений. Удобство работы с кубами в том, что вы можете мгновенно добавить необходимые измерения в свой срез, ведь куб уже построен, и вы берете из него лишь нужное.
На волне востребованности OLAP-систем компания Fast Reports выпустила свою – FastCube. Так как конечным итогом работы аналитика становится отчет, всякая OLAP-система должна уметь их генерировать. Это можно отнести к сильным сторонам FastCube, ведь она использует популярный и быстрый генератор отчетов FastReport VCL для платформ VCL и LCL (FastCube VCL), FastReport.Net – для платформы .Net и Mono (FastCube .Net), FastReport FMX – для платформы FMX (FastCube FMX).
В отличие от готовых «коробочных» продуктов, FastCube представляет собой набор библиотек для целевой платформы. Это позволяет включать в собственные приложения OLAP компонент. Такое решение более гибкое, хоть и требует навыки программирования для создания своего приложения. Все же, для тех, кого бы устроило какое-либо стандартное решение без создания собственного приложения, есть демонстрационное приложение в поставке. Оно представляет собой интерфейс для работы с кубом и срезами и содержит все стандартные инструменты FastCube. Возможно, большинству будет достаточно и этого приложения для своей работы. Выглядит это демонстрационное приложение так:
Какие же возможности предоставляет нам FastCube.Рассмотрим их кратко:
1) Очень просто создавать срезы. Главное - указать источник данных: таблица, либо SQL запрос. Затем, вы добавляете в кросс-таблицу нужные поля в измерения, показатели (measures), сортировку, фильтры и прочее.
2) Доступны стандартные статистические операции: сумма, минимальное, максимальное, среднее значение, счетчик, дисперсия. Эти операции используются для фильтрации или выделения данных.
3) Дополнительные функции для фильтрации и условного выделения данных: список уникальных значений, количество уникальных значений, первое встреченное значение.
4) Возможность создавать вычисляемые показатели. Это реализуется с помощью скрипта на одном из доступных языков программирования (Delphi и C++ - для платформы VCL, VB.Net, C# - для .Net)
5) Сортировка по осям (по измерениям и показателям). Можно применить несколько сортировок для каждого измерения.
6) Условное выделение значений ячейки в срезе. Эта очень полезная функция, которая позволит выделить цветом, или значками данные, в зависимости от условия.
7) Гибкие настройки отображения итогов. Можно задавать положение итога (в начале, в конце), делать невидимыми.
8) Возможность создавать вычисляемые фильтры значений при расчете показателей. Реализуется с помощью скрипта.
9) Формат вывода показателей (дата, деньги, текст, число). Можно добавить свой формат.
10) Измерения можно сворачивать как конкретные, так и все целиком.
11) Кросс-таблицу можно транспонировать – поворачивать, менять строки и столбцы местами.
12) Показатели могут отображаться как процент.
13) Возможность строить графики с помощью TeeChart.
14) Возможность просматривать и экспортировать детализацию ячейки, то есть записи из исходной таблицы, откуда берутся данные для ячейки.
15) Доступен экспорт среза в один из форматов: HTML, DBF, CSV, XML, Open Document Spreadsheet, Excel, Excel 2007.
16) Можно сохранять куб и схему.
17) Возможность скопировать диапазон значений из кросс-таблицы в буфер.
18) Дата автоматически разбивается на дату и время. Так что есть возможность выводить их раздельно.
19) Срез может быть преобразован в отчет FastReport. А это означает, что могут быть использованы средства генератора отчета для вывода, экспорта и печати этого отчета, что расширяет возможности FastCube.
20) Возможность экспорта куба/данных в XML.
21) Настройки куба можно задавать программно или с интерфейса.
22) Возможность создания готовых шаблонов (схем) для сводных таблиц. Есть возможность запрета изменения схемы пользователем.
Рассмотренные возможности продукта говорят нам, что помимо стандартных возможностей по созданию срезов куба, сортировки и фильтрации, предусмотрены расширенные средства анализа данных. В частности, это инструмент условного выделения данных. В зависимости от условия ячейки могут подсвечиваться цветом, в ячейку могут добавляться иконки или градиент. Эти графические указатели помогают быстро оценить какие из значений попадают в заданный диапазон, или превышают его.
Не маловажной является возможность экспорта среза. Это можно произвести как штатными средствами FastCube, так и через генератор отчетов. Во втором случае список возможных форматов экспорта значительно больше.
Нужно отметить, что куб можно подключать к базам данных как с помощью стандартных компонентов ADO и BDE, так и с помощью любые других источников данных посредством TDataSet.
В заключение можно сказать, что FastCube обеспечивает быструю загрузку и обработку больших объемов данных. Хоть FastCube и подразумевает создание собственного приложения на основе компонентов, конечное использование куба пользователем не требует специфических знаний программиста.