Мельница данных   (15.11.2018)
OLTP и OLAP

OLTP (OnLine Transaction Processing)  - обработка транзакций онлайн.

Задача, которая решается с помощью OLTP-метода называется здесь и дальше "учет". Т.е. это в первую очередь учетные задачи. Характерным элементом управления решенной OLTP-задачи является так называемый "grid" - таблица, состоящая из колонок и строк.

Когда ставится и решается задача постановки учета чего бы то ни было, например, продаж мороженого, пользователь должен увидеть в результате "grid" (таблицу, табличное представление), где каждая строка соответствует одному объекту учета, в данном случае - продаже мороженого, а каждый столбец соответствует атрибуту этого самого элемента учета. В нашем случае, с продажами мороженого это точка, которая продала, сорт, количество, цена, сумма продажи и т.д.

       

 Сорт мороженного 
Точка продаж 
 Кол-во 
 Цена 
Сумма  
 Пломбир
ул. Ленина 
50
20
1000

 Ленинградское

ул. Ленина 
20
18
360
 Эскимо
ул. Ленина 
100
23
2300
 Лакомка
ул. Ленина 
30
25
750
 В стаканчике 
ул. Ленина 
150
12
1800

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

Как правило, у пользователя есть несколько стандартных действий для управления данными в таблице - сортировка, группировка, отбор по колонкам, по дополнительным критериям. Все эти действия предназначены быстрого поиска ошибок в данных. Таким образом поиск ошибок учета осуществляется именно в таблицах. Для исправления ошибок используются следующие методы:

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

2. Исправление может рассматриваться как операция, в этом случае: выделяется один или несколько объектов таблицы, т.е. одна или несколько строчек, вызывается действие (либо кнопкой в панели инструментов, либо через контекстное меню, либо каким-то более экзотическим способом). Будет показана модальная форма ввода значений и параметров. При этом пользователь не сможет продолжить работы с системой пока эта форма не будет закрыта после внесения изменений или без них. Только после закрытия модальной формы действие начинает выполняться.

3. Для Платформы "Мельница Данных" также разработан элемент управления, который называется "инспектор объектов". Он используется для установки одинаковых значений для выбранных в таблице однородных объектов. Также инспектор объектов используется, для удобного просмотра всех аттрибутов объекта, так как зачастую таблица содержит такое большое количество колонок, что работа с ними в таблице.

После поиска ошибок какие-то из объектов таблицы участвуют в дальнейших бизнес-процессах, которые должны быть реализованы, какие-то не участвуют и просто хранятся.

        Для конечного пользователя простой ввод бизнес-данных в систему учета не имеет никакого практического смысла без возможности дальнейшей обработки и формирования отчетности.

Первичные данные, полученные в результате решения OLTP-задачи, должны использоваться для решения бизнес-задач.

OLАP (Online Analisys Processing) - аналитическая обработка в реальном времени.

В результате решения задачи OLAP система может получить следующее:

1. Результаты обработки, готовые к публикации.

2. Информация для дальнейшего принятия управленческих решений.

Данные, полученные в результате решения OLTP-задачи, поступают на вход и рассматриваются в качестве входных данных для задачи OLАP. Такие данные принято называть "Фактами". Факты должны быть предварительно выверены, подготовлены. В зависимости от разработанных стандартов для Системы не все данные могут быть переданы в OLAP-задачу в качестве фактов. Для данных могут использоваться дополнительные признаки, такие как: "Выверено", "Обработано", "Проверено", "Утверждено". Соответственно на вход OLAP-задачи можно направить данные, для которых один, несколько или все признаки (определяется логикой при разработке) имеют значение "Истина". Факты, которые попали на вход OLAP-задачи, составляют таблицу фактов. В таблице фактов выделяются факты, которые являются "мерой" (measure) или "показателем" (index).

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

Далее выверяют измерение анализа - это, как правило, ссылки на справочные таблицы, и по этим справочным таблицам строится список соответствующий измерению (dimension). На основании таблицы фактов и информации о том, что у нас является показателем, что у нас является измерениями, строится так называемый "куб". Структура данных "куба" сложная. Для наглядности, ниже приведен "куб" для нашего простого примера продаж мороженного:

Куб продаж

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

Для хранения описанной информации используется специализированное многомерное хранилище. Платформа "Мельница Данных" аккумулирует такие многомерные хранилища с помощью реляционных структур.  

Второе требование для OLAP задачи - визуализация данных. Табличный вид описанного выше "куба" это сводная таблица, позволяющая группировать измерения, а также показывать факты, то есть значения показателей в ячейках. Для таблицы доступны различные варианты просмотра данных в различных разрезах.

Следующее требование - публикация данных. Здесь нужно отметить, что публикация одного единственного среза данных не несет большого смысла. С точки зрения конечного пользователя, оптимальным вариантом публикации будет являться такой вид на данные, при котором пользователь может "вживую" менять измерения, перетаскивать их и т.д. Такая публикация может быть полезна при принятии управленческих решений руководством предприятия, а также будет удобна для анализа конечными пользователями. Кроме того, для публикации активно используются всевозможные графики, диаграммы, построенные по актуальным данным.

Достаточно востребованным для конечных пользователей является также свойство Системы, называемое Drill Down (проваливание). Данное свойство подразумевает, что пользователь выбрав каким-либо образом значение показателя, имеет возможность посмотреть, каким образом этот показатель был посчитан, на основании чего, и собственно, на основании каких конкретно данных был сформирован этот показатель. Для этого OLАP-системе необходим доступ к первичным данным. Такое требование не является существенной проблемой, так как у хранилище одно и то же и для OLTP-задачи и для OLАP-задачи.