Что такое oltp сервер. Системы обработки транзакций OLTP и OLAP - технологий. Стратерия разработки систем

OLTP и OLAP системы

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

Сильно нормализованные модели данных хорошо подходят для OLTP -приложений – On - Line Transaction Processing (OLTP ) – приложений оперативной обработки транзакций. Типичными примерами OLTP -приложений являются системы складского учета, заказов билетов, операционные банковские системы и другие. Основная функция подобных систем заключается в выполнении большого количества коротких транзакций. Сами транзакции являются достаточно простыми, но проблемы состоят в том, что таких транзакций очень много, выполняются они одновременно и при возникновении ошибок транзакция должна откатиться и вернуть систему в состояние, в котором та была до начала транзакции. Практически все запросы к базе данных в OLTP -приложениях состоят из команд вставки, обновления и удаления. Запросы на выборку, в основном, предназначены для предоставления пользователям выборки данных из различного рода справочников. Таким образом, большая часть запросов известна заранее ещё на этапе проектирования системы. Критическим для OLTP -приложений является скорость и надежность выполнения коротких операций обновления данных. Чем выше уровень нормализации данных в OLTP -приложениях, тем оно быстрее и надежней. Отступления от этого правила могут происходить тогда, когда уже на этапе разработки известны некоторые часто возникающие запросы, требующие соединения отношений и от скорости выполнения которых существенно зависит работа приложений.

Другим типом приложений являются OLAP -приложения – On - Line Analitical Processing (OLAP ) – приложения оперативной аналитической обработки данных. Это обобщенный термин, характеризующий принципы построения систем поддержки принятия решений – Decision Support System (DSS ), хранилищ данных – Data Warehouse , систем интеллектуального анализа данных – Data Mining . Такие системы предназначены для нахождения зависимостей между данными, для проведения динамического анализа по принципу «что если…» и тому подобных задач. OLAP -приложения оперируют с большими массивами данных, накопленными на предприятии или взятыми из других источников. Такие системы характеризуются следующими признаками:

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

Базы данных OLAP -приложений обычно представлены в виде одного или нескольких гиперкубов, измерения которого представляют собой справочные данные, а в ячейках самого гиперкуба хранятся значения этих данных. Физически гиперкуб может быть построен на основе специальной многомерной модели данных – Multidimensional OLAP (MOLAP ) или представлен средствами реляционной модели данных – Relational OLAP (ROLAP ).

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

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

Характеристика

OLTP

OLAP

Назначение системы

Регистрация, оперативный поиск и обработка транзакций, регламентированный анализ

Работа с историческими данными, аналитическая обработка, прогнозирование, моделирование

Хранимые данные

Оперативные, детализированные

Охватывающие большой период времени, агрегированные

Тип данных

Структурированные

Разнотипные

"Возраст" данных

Текущие (несколько месяцев)

Исторические (за годы) и прогнозируемые

Частота обновления данных

Высокая, небольшими "порциями"

Малая, большими "порциями"

Уровень агрегации данных

Детализированные данные

В основном - агрегированные данные

Преобладающие операции

Ввод данных, поиск, обновление

Анализ данных

Способ использования данных

Предсказуемый

Непредсказуемый

На уровне транзакции

На уровне всей базы данных

Вид деятельности

Оперативная, тактическая

Аналитическая, стратегическая

Приоритеты

Гибкость
Автономность пользователя

Большое количество работников исполнительного звена

Относительно малое количество работников руководящего звена

Сравнение OLTP и OLAP

Характеристика

OLTP

OLAP

Характер запросов

Много простых транзакций

Сложные транзакции

Хранимые данные

Оперативные, детализи-рованные

Охватывающие большой период времени, агреги-рованные

Вид деятельности

Оперативная, тактическая

Аналитическая, страте-гическая

Тип данных

Структурированные

Разнотипные

Системная характеристика

Учетная система (OLTP)

OLAP

Взаимодействие с пользователем

На уровне транзакции

На уровне всей базы данных

Данные, используемые при обращении пользователя к системе

Отдельные записи

Группы записей

Время отклика

Секунды

От нескольких секунд до нескольких минут

Использование аппаратных ресурсов

Стабильное

Динамическое

Характер данных

Главным образом первичные (самый низкий уровень детализации)

В основном производные (сводные значения)

Характер доступа к базе данных

Предопределенные или статические пути доступа и отношения данных

Неопределенные или динамические пути доступа и отношения данных

Изменчивость данных

Высокая (данные обновляются с каждой транзакцией)

Низкая (во время запроса данные обновляются редко)

Приоритеты

Высокая производительность Высокая доступность

Гибкость
Автономность пользователя

OLAP-системы

OLAP (англ. online analytical processing, аналитическая обработка в реальном времени) - технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу. Реализации технологии OLAP являются компонентами программных решений класса Business Intelligence.

Основоположник термина OLAP - Эдгар Кодд, предложил в 1993 году «12 законов аналитической обработки в реальном времени».

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

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

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

Преимущества OLAP-систем

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

Разработка каждого отчёта требует работы программиста.



Отчёты формируются очень медленно (зачастую несколько часов), замедляя при этом работу всей информационной системы.

Данные, получаемые от различных структурных элементов компании не унифицированы и часто противоречивы.

OLAP-системы, самой идеологией своего построения предназначены для анализа больших объёмов информации, позволяют преодолеть ограничения традиционных информационных систем.

Создание OLAP-системы на предприятии позволит:

· Интегрировать данные различных информационных систем, создав единую версию правды

· Проектировать новые отчеты несколькими щелчками мыши без участия программистов.

· В реальном времени анализировать данные по любым категориям и показателям бизнеса на любом уровне детализации.

Производить мониторинг и прогнозирование ключевых показателей бизнеса

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

Итоги внедрения OLAP-системы

Руководство получает полное ясное видение ситуации и единый механизм учёта, контроля и анализа.

За счёт автоматизации внутренних бизнес-процессов и повышения производительности сотрудников, уменьшается потребность в человеческих ресурсах.

Действие OLAP

Причина использования OLAP для обработки запросов - это скорость. Реляционные БД хранят сущности в отдельных таблицах, которые обычно хорошо нормализованы. Эта структура удобна для операционных БД (системы OLTP), но сложные многотабличные запросы в ней выполняются относительно медленно.

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

Например, все клиенты могут быть сгруппированы по городам или по регионам страны (Запад, Восток, Север и т. д.), таким образом, 50 городов, 8 регионов и 2 страны составят 3 уровня иерархии с 60 членами. Также клиенты могут быть объединены по отношению к продукции; если существуют 250 продуктов по 2 категориям, 3 группы продукции и 3 производственных подразделения, то количество агрегатов составит 16560. При добавлении измерений в схему, количество возможных вариантов быстро достигает десятков миллионов и более.

OLAP-куб содержит в себе базовые данные и информацию об измерениях (агрегатах). Куб потенциально содержит всю информацию, которая может потребоваться для ответов на любые запросы. Из-за громадного количества агрегатов, зачастую полный расчёт происходит только для некоторых измерений, для остальных же производится «по требованию».

Вместе с базовой концепцией существуют три типа OLAP:

OLAP со многими измерениями (Multidimensional OLAP - MOLAP);

реляционный OLAP (Relational OLAP - ROLAP);

гибридный OLAP (Hybrid OLAP - HOLAP).

MOLAP - это классическая форма OLAP, так что её часто называют просто OLAP. Она использует суммирующую БД, специальный вариант процессора пространственных БД и создаёт требуемую пространственную схему данных с сохранением как базовых данных, так и агрегатов.

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

HOLAP использует реляционные таблицы для хранения базовых данных и многомерные таблицы для агрегатов.

Особым случаем ROLAP является ROLAP реального времени (Real-time ROLAP - R-ROLAP). В отличие от ROLAP в R-ROLAP для хранения агрегатов не создаются дополнительные реляционные таблицы, а агрегаты рассчитываются в момент запроса. При этом многомерный запрос к OLAP-системе автоматически преобразуется в SQL-запрос к реляционным данным.

Каждый тип хранения имеет определённые преимущества, хотя есть разногласия в их оценке у разных производителей. MOLAP лучше всего подходит для небольших наборов данных, он быстро рассчитывает агрегаты и возвращает ответы, но при этом генерируются огромные объёмы данных. ROLAP оценивается как более масштабируемое решение, использующее к тому же наименьшее возможное пространство. При этом скорость обработки значительно снижается. HOLAP находится посреди этих двух подходов, он достаточно хорошо масштабируется и быстро обрабатывается. Архитектура R-ROLAP позволяет производить многомерный анализ OLTP-данных в режиме реального времени.

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

Реализации OLAP

Исторически первой многомерной системой управления базами данных, по существу являющейся OLAP-реализацией считается система Express, разработанная в 1970 году компанией IRI (позднее права на продукт были приобретены корпорацией Oracle и превращён в OLAP-опцию для Oracle Database). Термин OLAP ввёл Эдгар Кодд в публикации в журнале Computerworld в 1993 году, в которой он предложил 12 принципов аналитической обработки, по аналогии с 12 правилами для реляционных баз данных, сформулированными им же десятилетием ранее, в качестве референтного продукта, удовлетворяющего предложенным принципам, Кодд указал систему Essbase компании Arbor (поглощённой в 1997 году компанией Hyperion, которую, в свою очередь, в 2007 году купила Oracle). Примечательно, что впоследствии публикация была изъята из архивов Computerworld из-за возможного конфликта интересов, так как Кодд позднее оказывал консультационные услуги для Arbor.

Другие известные OLAP-продукты: Microsoft Analysis Services (ранее называвшиеся OLAP Services, часть SQL Server), SAS OLAP Server, TM1, PowerPlay, SAP BW, MicroStrategy Ingelligence Server, Mondrian, Аналитический комплекс ПРОГНОЗ.

C точки зрения реализации делятся на «физический OLAP» и «виртуальный» (реляционный, англ. Relational OLAP, ROLAP). «Физический», в свою очередь, в зависимости от реализации подразделяется на многомерный (англ. Multidimensional OLAP, MOLAP) и гибридный - (англ. Hybrid OLAP, HOLAP).

В первом случае наличествует программа, на этапе предварительной загрузки данных в OLAP из источников выполняющая предварительный расчёт агрегатов (вычислений по нескольким исходным значениям, например «Итог за месяц»), которые затем сохраняются в специальную многомерную базу данных, обеспечивающую быстрое извлечение и экономичное хранение. Примеры таких продуктов - Microsoft Analysis Services, Oracle OLAP Option, Essbase, SAS OLAP Server, TM1, PowerPlay.

Hybrid OLAP является комбинацией. Сами данные хранятся в реляционной базе данных, а агрегаты - в многомерной.

В ROLAP-реализациях все данные хранятся и обрабатываются реляционных системах управления базами данных, а агрегаты могут не существовать вообще или создаваться по первому запросу в СУБД или кэше аналитического ПО. Примеры таких продуктов - SAP BW, Microstrategy Intelligence Server, Mondrian.

С точки зрения пользователя все варианты выглядят похожими по возможностям. Наибольшее применение OLAP находит в продуктах для финансового планирования, хранилищах данных, решениях класса Business Intelligence.

OLTP-системы (Системы оперативной обработки транзакций)

OLTP (Online Transaction Processing), транзакционная система - обработка транзакций в реальном времени. Способ организации БД, при котором система работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом клиенту требуется от системы минимальное время отклика.

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

Проблема целостности – в обеспечении правильности данных БД в любой момент времени. Она может быть нарушена в след случаях: 1. при вводе и обновлении, когда подаются неверные сведения. 2. когда данным пользуются одновременно несколько userов. 3. при сбоях АПС.

Решение проблем целостности надо рассматривать с программной и организационной точки зрения. Для ПОбл 1. надо ряд организац мероприятий (чтобы следили за вводом), user должен знать правила ввода и ограничения. Для проблем 2-3 – стандартные средства СУБД или спец программные модули. СУБД – 2 основных ограничения целостности: 1. структурные ограничения (задаются функциональными связями и проверяются путем проверки равенства значений БД) 2. ограничения реальных значений. Требуют, чтобы значения поля принадлежали некоторому диапазону, либо это зависимость между значениями некоторых полей. (типы данных и маски ввода). Ограничения могут задаваться АБД в любой момент, но СУБД может не принять ограничение (если много записей ему уже не удовлетворяют), если соответствие есть – записывается в словарь и используется. Ограничения различаются по уровню сложности:

2. ограничения на совокупность атрибутов строки. (должность – разрядные ставки, края – города).

3. ограничения одновременно на множество строк.

Все эти ограничения статистические, но при переходе БД из 1 состояния в другое необходимо удовлетворять ограничениям целостности до начала всех изменений и после окончания всех, а не каждого. Такие ограничения называются отложенными и относительно их вводится понятие транзакций. Транзакция – законченное с точки зрения userа действие над БД. В то же время, это логическая единица работы системы. Транзакция реализует некоторую прикладную функцию, например, перевод денег с одного счета на другой в банковской системе.

Должна обладать 4 свойствами: 1. Атомарность (неделимость): выполняется как одинарная операция доступа к БД, должна выполняться полностью или не выполняться совсем. 2. Согласованность – гарантирует взаимную целостность данных после окончания обработки транзакций. 3. Изолированность (каждая транзакция может изменять данное, которое временно находится в несогласованном состоянии). При этом доступ других транзакций к этим данным запрещен, пока транзакция не завершится. 4. долговечности – если транзакция выполнена успешно, то изменения не будут потеряны. Результатом выполнения транзакции может быть её фиксация (действие по фиксации изменений в БД) или откат (отмена транзакции и возврат БД в состояние до начала её). Механизм фиксации и откат основан на использовании журнала транзакций, где сохраняется состояние ДО (в нескольких итерациях) и ПОСЛЕ. Некоторые диалекты SQL включают операторы промежуточной фиксации (откат от точки к точке).

Мониторы обработки транзакций (Transaction Processing Monitor - TPM)- это программные системы (относят к посредническому или промежуточному программному обеспечению), решающие задачу эффективного управления информационно-вычислительными ресурсами в распределенной системе. Они представляют собой гибкую, открытую среду для разработки и управления мобильными приложениями, ориентированными на оперативную обработку распределенных транзакций. В числе важнейших характеристик TPM - масштабируемость, поддержка функциональной полноты и целостности приложений, достижение максимальной производительности при обработке данных при невысоких стоимостных показателях, поддержка целостности данных в гетерогенной среде. TPM опираются на трехзвенную модель "клиент-сервер"

На современном рынке мониторов транзакций основными "действующими лицами" являются такие системы, как ACMS (DEC), CICS (IBM), TOP END (NCR), TUXEDO Sytem (Novell).

Началось все с одной истории, которая три года назад случилась в моей профессиональной карьере, когда я работал в Киргизии, в компании, которая представляла собой сеть розничных магазинов. Тогда у меня произошел разговор с моим директором по IT, который сказал: «Денис, у нас одна из важных, критичных операций - это проведение документа «Чек» на кассах. Как мы можем максимально ускорить этот процесс, распараллелить его, при этом получая оперативные остатки?»

Сразу скажу, что у нас на тот момент использовалась платформа 8.1 и автоматические блокировки. И я тогда ему ответил, что да, мы можем перейти на управляемые блокировки и распараллелить этот процесс на уровне номенклатуры. На что он мне задал естественный вопрос: «а что произойдет, если у нас на нескольких кассах одновременно будет проводиться одна и та же номенклатура?» Тогда я на этот вопрос какого-то внятного ответа дать не смог, но надеюсь, сейчас у меня это получится.

Тренды развития аппаратного обеспечения

Если мы посмотрим на развитие индустрии IT за последние несколько лет , мы увидим определенные тренды в аппаратном обеспечении :

  • Первый тренд касается памяти. Ни для кого не новость, что память со временем дешевеет, и на данный момент мы уже можем получить достаточно большой объем памяти за сравнительно небольшие деньги .
  • Второй тренд - по процессорам. Всем известно соответствие роста производительности, потребляемой мощности и выделяемой температуры процессоров по закону Мура. В определенный момент это соответствие на уровне одного ядра закончилось (сейчас у нас одно ядро уже долгое время не может выполнять одну простую операцию быстрее, чем раньше), но оно продолжилось на уровне многих ядер (многоядерных процессоров). Поэтому все наши надежды и помыслы идут в область параллельных вычислений, и мы , как разработчики и архитекторы СУБД, для повышения производительности наших приложений должны планировать в них параллельность работы .

Тренды развития бизнес-приложений

А что в это время происходит на уровне бизнеса ? Мы наблюдаем: все большее количество пользователей , которые используют все большее количество устройств , на которых выполняется все большее количество программ , и все это в свою очередь генерирует все большее количество данных .

При этом большинство из этих процессов поддерживаются облаками .

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

Облака и мобильность всегда были связаны между собой, и именно от взаимодействия этих двух сущностей мы в будущем сможем получать какие-то прорывы. Такое взаимодействие привело к появлению известной на Западе стратегии: Mobile-First - Cloud-First (изначально мобильное и изначально облачное).

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

Соответственно, возникает потребность в специальных технологиях . И, если касаться конкретно In-memory OLTP, то это - всего лишь одна из многих технологий, призванных на данный момент обеспечить дальнейшее развитие IT-индустрии.

Технология In-memory OLTP

Почему появилась технология In-memory OLTP? И почему она важна?

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

Соответственно, In- memory OLTP - это: высокопроизводительный механизм , который отвечает современному аппаратному обеспечению и максимально оптимизирован для работы с памятью .

И, что самое важное, In-memory OLTP - это не какой-то отдельный продукт (не какая-то отдельная лицензия, за которую нужно платить). Начиная с SQL Server 2014 In-memory OLTP - это часть ядра этого продукта, которая доступна в рамках редакции Enterprise .

Здесь вы видите три основных компонента, которые представляют собой технологию In- memory OLTP . Именно они позволяют ей осуществить такой прорывной эффект:

  • Первое - это четкая установка на то, что все данные находятся в памяти .
  • Второе, что немаловажно: эти данные располагаются в специально разработанных, свободных от блокировок структурах данных .
  • И третье - это нативная, родная компиляция. Она представляет собой хранимые процедуры, содержащие бизнес-логику, которые скомпилированы в машинный код в памяти SQL-сервера.

Сравнение инфраструктуры взаимодействия (традиционной схемы и In-Memory OLTP)

Если мы посмотрим традиционную схему взаимодействия клиента и СУБД , то тут все очевидно:

  • У нас есть клиент со своими клиентскими вызовами ,
  • Есть сервер 1С:Предприятие , который вмещает всю бизнес-логику .
  • И есть сервер СУБД . Он в традиционной схеме используется в основном для манипуляции с данными (а конкретно - для четырех операций: выборка, накопление, изменение и удаление).

В случае применения схемы In- Memory OLTP в рамках платформы 1С, схема чуть-чуть меняется:

  • Остаются те же клиенты со своими клиентскими вызовами .
  • Но в данном случае сервер 1С:Предприятие немного трансформируется . В целом полностью остаются все его функции и назначение, но теперь нельзя сказать, что он полностью контролирует всю существующую бизнес-логику. Здесь я его назвал слоем программного сервера. Почему?
    • Потому что появляется дополнительное внешнее прямое соединение к СУБД , с помощью которого осуществляется вызов хранимых процедур , о которых я говорил ранее.
    • Сущность этих хранимых процедур теперь состоит в том, чтобы производить операции с данными в соответствии с той бизнес-логикой , которую вы заложили на уровне СУБД.

Яркий пример того, как физический слой «протек» на слой логический.

Основное преимущество In-Memory OLTP

Здесь на слайде перечислены некоторые основные характеристики технологии In-Memory OLTP. Более подробно об этом можно прочитать в интернете (в основном, на сайте Microsoft, а также в большом количестве блогов западных разработчиков). Здесь же я хочу уточнить один нюанс, о котором я еще не говорил: в In-memory OLTP появился совершенно новый мультиверсионный оптимистичный контроль параллельного выполнения . В его рамках полностью отсутствует какое-либо понятие блокировок при работе с данными . При его работе конфликты между различными потоками редки, но если они и случаются, то быстро решаются, и не нужно очень долго ждать, как в случае использования стандартного блокировочного механизма.

Тестовый сценарий для проверки работы технологии In-Memory OLTP в рамках платформы 1С

Анализируя те возможности, которые дает технология In-memory OLTP, я решил реализовать достаточно простой тестовый сценарий для проверки работы этой технологии в рамках платформы 1С. Демонстрационная среда , которая у меня получилась в результате, выглядела следующим образом :

  • Я взял очень простую конфигурацию с одним регистром накопления , в котором учитывались остатки по номенклатуре в разрезе количества.
  • Также в этой конфигурации было два документа - Приход и Расход , в которых была реализована следующая бизнес-логика:
    • Документ Приход обеспечивал поддержку минимального остатка.
    • А при проведении документа Расход контролировалось отсутствие нулевых остатков.
  • Для того чтобы сымитировать конкурентную многопоточную нагрузку при проведении этих документов, я использовал стандартный подход с фоновыми процессами , которых для проведения документа Расход было подавляющее большинство.
  • Также следует отметить, что я в своей демонстрационной сети использовал две виртуальные машины :
    • Одну - для сервера 1С:Предприятие ,
    • А другую - для SQL-сервера .

Но обе виртуальные машины находились в рамках одного хоста виртуализации .

Первый замер - базовый показатель

После того, как эта схема была реализована, я провел контрольный замер базовых показателей для стандартного, традиционного проведения документов средствами 1С с использованием управляемых блокировок. Что я получил в результате первого замера?

На слайде подчеркнуто значение того показателя, который я получил: 120 документов в секунду при 64 фоновых процессах - это тот базовый показатель, который у меня был.

SQL-сервера . - процессоры отдыхают, работают только управляемые блокировки .

Второй замер - миграция в In-Memory только таблиц

Следующим шагом я решил сделать миграцию структур, в которых хранились стандартные данные, в In- memory-таблицы . И после того, как я их мигрировал, я запустил свой стандартный тест. В нем происходило все то же самое: средствами платформы 1С проводились документы, но только теперь они уже хранились в In-Memory-таблицах (сама платформа об этом не знала).

Результат получился в районе 150 документов в секунду , следовательно, небольшой рост все-таки произошел, но незначительный, и в некоторых системах вы можете даже и не увидеть этого увеличения. В целом, в данном случае нагрузка на процессоры никак не поменялась , поэтому я их здесь даже не привожу.

Хочу добавить к этому, что если кто пытался реализовать эту же задачу, то обычно она вызывает проблемы - чуть позже я расскажу, как эти проблемы решаются.

Третий замер - миграция в In-Memory и таблиц, и бизнес-логики

На третьем шаге помимо того, что была полностью реализована миграция структур данных в In- memory-таблицы, также была полностью смигрирована и та бизнес-логика , которая была нужна для проведения документов - все действия, необходимые для:

  • Формирования документов и их табличных частей;
  • Их записи;
  • Формирования движений документов;
  • И изменения текущих остатков.

В итоге был получен результат 250 документов в секунду . По сути, по отношению к базовому показателю 120 и 250 - это выигрыш чуть больше, чем в два раза.

Тут можно немного посмеяться и сказать, что мы же можем взять железо в два раза мощнее и получить примерно тот же результат. Но все объясняется, если посмотреть на загрузку процессоров в этом случае:

  • Сервер 1С:Предприятия полностью загружен ;
  • В то время как сервер SQL занят только на треть .

Мне удалось выяснить, что данная нагрузка на сервер 1С:Предприятие показывала, что он просто не успевал сгенерировать это количество документов на лету, а также не успевал их отдавать на проведение SQL-серверу, чтобы полностью его загрузить.

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

Четвертый замер - передача 15 документов для проведения за один вызов

Четвертый замер я сделал в надежде на то, что удастся все-таки за один сетевой вызов отдавать на SQL-сервер побольше работы. Для этого бизнес-логика была переписана таким образом, чтобы за один вызов отдавать на проведение сразу 15 документов . В результате скорость выросла до 550 документов в секунду .

При этом, как видно на графиках, сервер 1С:Предприятие был все так же полностью загружен, а SQL-сервер продолжал «отдыхать» .

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

Пятый замер - запуск подготовленной нагрузки на стороне SQL Server

Следующим шагом я решил сгенерировать всю нагрузку предварительно . Эта нагрузка выглядела в виде 64 сформированных файлов SQL-скриптов на 700 мегабайт . Я перенес их на SQL-сервер , и с помощью известной утилиты OStress, которой можно «скормить» эти файлы, чтобы запустить параллельную нагрузку, получил следующий результат.

  • По загрузке процессора - получившееся время отработки поместилось в стандартное окошко диспетчера задач: есть начало нагрузки, потом полностью все процессоры почти
  • В результате нагрузки было создано 112 тысяч документов, при этом полностью сохранялись все те процессы, которые были при проведении документов «Расход»: контролировались все остатки, выполнялись все действия.
  • Нагрузка заняла 53 с лишним секунды .
  • Если сделать определенные вычисления, получится, что среднее время проведения одного документа составило менее половины миллисекунды ,
  • а средняя скорость проведения документов составила больше 2000 документов в секунду .

Когда я первый раз получил этот результат - не мог поверить. Просто представьте себе, какие объемы вам теперь доступны, вы теперь можете мыслить в совсем других категориях. И теперь я могу ответить своему бывшему директору по IT, как мы можем ускорить проведение документов «Чек» на кассах. И даже если при этом у нас будут какие-то конфликты, блокировки, сам процесс теперь пройдет очень быстро.

Методология миграции

Если же вернуться к методологии миграции в In- Memory OLTP , то надо отметить, что она подходит не для всех случаев. Ее надо использовать только для некоторых узких мест вашей системы, где важен гарантированно быстрый доступ к данным. Поэтому прежде, чем внедрять эту технологию, нужно провести тщательный анализ :

  • Например, если сравнить стеки выполнения (традиционный и In-Memory OLTP), то на уровне сетевого взаимодействия ничего не поменялось . Поэтому, если ваша программа (ваше приложение) очень «разговорчивое», обменивается с сервером СУБД очень большим количеством сообщений, то вам технология In-Memory совсем не поможет - здесь нет никаких улучшений.
  • Также, если мы посмотрим на уровень журнала регистрации базы данных , то тут тоже особо ничего не поменялось . Хотя размер журнала регистрации при операциях In-memory OLTP сокращается, минимальная задержка транзакций при записи в этот журнал остается той же.
  • Основную выгоду вы сможете получить только на уровне выполнения запросов и доступа к данным .

Преимущество технологии In- memory OLTP не в том , что данные располагаются в памяти. Хотя технология и называется In-memory, выигрыш происходит не от этого - ускорение происходит за счет того, что меняется инфраструктура самой базы данных :

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

И, если мы посмотрим на стандартную систему, то в случае добавления в нее большого количества потоков, они со временем начинают друг другу мешать, тем самым пропускная способность вашей системы уменьшается. В то же время при использовании технологии In-memory OLTP система при увеличении количества пользователей продолжает масштабироваться, поскольку нет блокировок (используются новые структуры данных, которые их лишены), а также применяются быстрые, предварительно скомпилированные хранимые процедуры.

Что можно сказать по поводу самого процесса миграции в In- memory ? Он в целом состоит из двух шагов , которые поочередно повторяются:

  • Первый шаг - это миграция структур данных .
  • И второй шаг - это миграция вашей критичной .

Решение проблемы записи в In-Memory из 1С

При работе из 1С с мигрированными на сторону СУБД структурами данных возможны некоторые трудности. Например, если при смигрированных таблицах в рамках платформы 1С кто-либо попытается осуществить какую-то запись в таблицы либо в документы (Приход или Расход), вы увидите стандартное сообщение об ошибке, которое в целом говорит о каких-то проблемах в уровнях изоляции .

С чем связана такая ошибка? Стандартная схема выполнения поддерживает пять уровней изоляции, а механизм In-memory OLTP - только три уровня. При этом платформа 1С по умолчанию использует уровень изоляции ReadCommited, которому как раз нет соответствия в механизме In- Memory OLTP . Соответственно, возникает проблема согласованности между этими уровнями изоляции.

Пытаясь решить эту задачу, я потратил очень много времени. И поиск решения даже завел меня в реверс-инжиниринг («обратный инжиниринг»), мне казалось, что придется динамически перехватывать запросы, которые идут от платформы к СУБД, и изменять их текст на лету для того, чтобы они стали соответствовать синтаксису In-Memory. Но оказалось, что решение находится на поверхности - оно тривиальное и простое.

В самом SQL Server 2014, в котором как раз и появилась технология In-Memory, есть такое свойство базы данных , как is_ memory_ optimized_ elevate_ to_ snapshot_ on . По умолчанию, оно неактивно, выключено - это можно проверить запросом, который показан на слайде.

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

При этом вы поднимете уровень изоляции, который СУБД использует по умолчанию, и он как раз будет соответствовать уровню изоляции Snapshot, по умолчанию использующийся для таблиц In-Memory. Таким образом, проведя небольшие манипуляции на стороне СУБД, у вас в In-Memory-таблицы будут записываться любые документы и любые данные.

Общая схема миграции бизнес-логики на сторону СУБД

Что же можно сказать по поводу общей схемы миграции самой бизнес-логики на сторону СУБД ?

Она включает в себя два объекта :

  • Во-первых, это та скомпилированная процедура , которая будет выполнять непосредственную работу.
  • И над ней обертка, которая реализует так называемую RetryLogic (логику перезапуска ). Почему? Потому что нет никакой гарантии того, что ваша хранимая процедура выполнится. В процессе ее выполнения может произойти какой-то конфликт, поэтому необходимо сделать так, чтобы в результате конкретного сетевого вызова эта процедура , реализующая вашу бизнес-логику, обязательно выполнилась до конца .

Вот примерная схема реализация «обертки» . Здесь AddOutcome - это внешний StandardT-SQL-(обертка). Внутри цикла располагается процедура, уже непосредственно скомпилированная в машинные коды. Видно блок TRY (Retry). Соответственно, если возникает конфликт, то происходит исключение, в котором вы, как разработчик, закладываете какой-то период ожидания, чтобы конфликтующая транзакция успела выполниться, а затем, соответственно, выполнится ваша.

Заключение

Ну и в заключение можно сказать, что миграция в таблицы In- Memory OLTPприменительно к 1С потребует задействовать :

  • Большое количество интеллектуальных и финансовых ресурсов ,
  • Подключение большого количества специалистов .
  • Ну и самый основной вопрос - это то, что поддержка технологии In- Memory OLTP на данный момент в платформе отсутствует , и в этом плане можно только смотреть в сторону фирмы 1С. По крайней мере, я надеюсь, что они хорошо отреагируют на появление возможности использования этой технологии в рамках платформы.

*****************

Приглашаем вас на новую конференцию .

Принимая во внимание все перечисленное, сравнение между различными MDDпродуктами можно проводить только по самым обобщенным категориям. В более дешевом секторе рынка присутствуют лишь однопользовательские и предназначенные для небольших локальных сетей средства просмотра многомерных данных. Хотя они обладают довольно высоким уровнем функциональных возможностей и удобны в использовании, эти системы ограниченны по своему масштабу. и им недостает средств, необходимых для реализации OLAPобработки в широком смысле. В данную категорию попадают такие продукты, как PowerPlay корпорации Cognos, PaBlo фирмы Andyne и Mercury компании Business Objects. Дорогой же сектор рынка представлен системами Acumate ES фирмы Kenan Technologies, Express корпорации Oracle, Gentium компании Planning Sciences и Holos фирмы

Holistic Systems. Они настолько разнятся по своим возможностям, что любую из них можно смело выделять в отдельную категорию. И наконец, MDD-системы в чистом виде: Essbase корпорации Arbor Software, LightShip Server фирмы Pilot Software и TM/1 компании Sinper .

Второй класс OLAP-средств -реляционные OLAP-системы (ROLAP). Здесь для хранения данных используются старые реляционные СУБД, а между БД и клиентским интерфейсом организуется определяемый администратором системы слой метаданных. Через этот промежуточный слой клиентский компонент может взаимодействовать с реляционной БД как с многомерной. Подобно средствам первого класса, ROLAP-системы хорошо приспособлены для работы с крупными информационными хранилищами, требуют значительных затрат обслуживания специалистами информационных подразделений и предусматривают работу в многопользовательском режиме. Среди продуктов этого типа - IQ/Vision корпорации IQ Software, DSS/Server и DSS/Agent фирмы MicroStrategy и DecisionSuite компании Information Advantage.

ROLAP-средства реализуют функции поддержки принятия решений в надстройке над реляционным процессором БД.

Такие программные продукты должны отвечать ряду требований,

в частности:

- иметь мощный оптимизированный для OLAP генератор SQLвыражений, позволяющий применять многопроходные SQL-операторы SELECT и/или коррелированные подзапросы;

- обладать достаточно развитыми средствами для проведения нетривиальной обработки, обеспечивающей ранжирование, сравнительный анализ и вычисление процентных соотношений в рамках класса;

Генерирвать SQL-выражения, оптимизированные для целевой реляционной СУБД, включая поддержку доступных в ней расширений этого языка;

- предоставлять механизмы описания модели данных с помощью метаданных и давать возможность использовать эти метаданные для построения запросов в реальном масштабе времени;

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

Третий, сравнительно новый тип OLAP-средств -инструменты генерации запросов и отчетов для настольных ПК , дополненные

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

компания Brio Technology со своей системой Brio Query Enterprise, Business Objects с одноименным продуктом и Cognos с PowerPlay.

В настоящее время увеличивается число Web-совместимых продуктов OLAP.

Важным является вопрос приспосабливания OLAP к остальному ПО. Хотя поставщики OLAP начинают предлагать некоторые способы взаимодействия с SQL-СУБД и другими инструментами, но однако, пользователи и аналитики предупреждают, что уровень интеграции может быть различным и, вероятно, потребует значительного объема кодирования, включая написание запросов на языке SQL. Более того, для интеграции OLAP с остальным программным обеспечением предприятия не существует промышленного стандарта.

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

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

OLTP-системы , являясь высокоэффективным средством реализации оперативной обработки, оказались мало пригодны для задач аналитической обработки. Это вызвано следующим:

1. средствами традиционных OLTP-систем можно построить аналитический отчет и даже прогноз любой сложности, но заранее регламентированный. Любой шаг в сторону, любое нерегламентированное требование конечного пользователя, как правило, требует знаний о структуре данных и достаточно высокой квалификации программиста;

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

3. в отличие от транзакционных, в аналитических системах не требуются и, соответственно, не предусматриваются развитые средства обеспечения целостности данных, их резервирования и восстановления. Это позволяет не только упростить сами средства реализации, но и снизить внутренние накладные расходы и, следовательно, повысить производительность при выборке данных.

Круг задач, эффективно решаемых каждой из систем, определим на основе сравнительных характеристик OLTP- и OLAP-систем (табл. 8).

Таблица 8

Круг задач решаемых OLTP- и OLAP-системами

Характеристика

Частота обновления

Высокая частота,

Малая частота, большие "порции"

небольшие "порции"

Источники данных

В основном, внутренние

По отношению к аналитической

системе, в основном,

Возраст данных

Текущие (несколько

Исторически (за годы) и

прогнозируемые

Уровень агрегации

Детализированные данные

В основном

агрегированные данные

Возможности

Регламентированные

Последовательность

аналитических

интерактивных очетов,

операций

динамическое изменение уровней

агрегаций и срезов данных

Назначение

Фиксация, оперативный

Работа с историческими

поиск и обработка данных,

данными, аналитическая

регламентированная

обработка, прогнозирование,

аналитическая обработка

моделирование

Таблица 9

Сравнение OLTP и OLAP

характеристика

Преобладающие

Ввод данных, поиск

Анализ данных

операции

Характер запросов

Сложные транзакции

транзакций

Хранимые данные

Оперативные,

охватывающие

детализированные

агрегированные

Вид деятельности

Оперативная,

Аналитическая,

тактическая

стратегическая

Тип данных

Структурированные

Разнотипные

3.7. Подходы к выбору экономических информационных систем

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

1. Насколько технологии бизнеса в фирме отличаются от традиционных.

Если отличия весьма серьезны и пути изменения этих технологий в направлении стандартизации видятся неприемлемыми или чрезмерно затратными, покупка и адаптация готовой ЭИС российского производства либо неприменима вовсе, либо может оказаться

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

2. Как часто потребуется вносить значительные изменения во внедряемую информационную систему.

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

3. Какие суммы готова вложить фирма в автоматизацию.

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

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

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

Разработка ЭИС своими средствами и заказ разработки ЭИС сторонней организации-разработчику наиболее привлекательны для редкого или нетипичного ведения "делового хозяйства". При этом конкретный выбор стоит делать на основании информации о финансовом состоянии фирмы, наличии надежной фирмы разработчика или интегратора и возможности установить с ней длительные партнерские отношения и других факторов.

Более подробный анализ достоинств и недостатков методов автоматизации представлен в таблице.

Таблица 10

Достоинства и недостатки методов автоматизации

Достоинства подхода

Недостатки подхода

Ориентация

российские

Проблема

инвестиций

адаптация

законы, "особенности" бизнеса,

первоначальные

готовой ЭИС

бухгалтерского учета

абсолютные

величины

российского

оказаться

невелики,

дальнейшие

производства

Доступность

разработчиков

обучение,

поддержки

обслуживание

развитие

сопровождения, что в варианте

информационной

с зарубежным продуктом либо

быть весьма значительными). В

имеет куда меньше масштабы,

условиях

нестабильности

обходится

экономики

несовершенства

дороже (возможно в десятки и

законодательства,

сотни раз). Рабочий день одного

гарантии

стабильности

квалифицированного

производителя

программного

специалиста

настройке

обеспечения (ПО) на протяжении

адаптации систем такого класса

всего срока эксплуатации ПО.

западная фирма вполне может

оценить очень дорого.

1.2.Покупка и

Наибольшим

начальные

адаптация

подобного

является

готовой ЭИС

огромная

мощность

Весьма значительные

затраты на

зарубежного

потенциал западных продуктов

внедрение

продукта,

обучение

производства

и комплексов автоматизации.

персонала и связанные с этим

Обычно они состоят из ряда

изменения

комплектуются

коснуться

аппаратного

зависимости

обеспечения фирмы.

потребителя (хотя существует и

В связи со многими чисто

целый ряд систем, которые по

российскими факторами (большая

причинам

динамичность

модульными

являются;

обстановки,

системам

свойственна

человеческого

большая закрытость и большая

другое) величина риска подобного

трудность

эксплуатации

рода вложений очень высока.

внедрении).

Основной

проблемой

является

необходимость

переориентации

технических

аспектов деятельности фирмы под

то, как это представляли себе

разработчики продукта, что в

наших условиях возможно очень

редко, даже если эти технологии

признаны

общепринятыми.

Отсутствие

некоторых

продуктах

типичных

российского

пользователя

компонент,

недостаточная

локализация

затруднить

значительно

эффективность его применения.

Стратегии

и критерии выбора

западной

информационной

достаточно

непросты,

главными из требований, которые

могут быть предъявлены системе

подобного

являются:

функциональная

открытость,

модульность,

масштабируемость, способность к

работе в распределенной среде,

настраиваемость

поставки в исходных текстах),

ценовая политика производителя

продукта и его представителей в

2.Разработка

Этот подход в большинстве

Большое (причем подчас трудно

случаев применим лишь в двух

прогнозируемое) время разработки

собственным

вариантах: для достаточно

и, во многих случаях, большая

крупной фирмы, способной

величина затрат.

квалифицированных

разработчиков ПО и в том

случае, если комплекс

автоматизации не очень велик и

может быть разработан

достаточно ограниченными

ресурсами.

Обычно этот вариант

автоматизации используется в

том случае, когда ни один из

существующих коммерческих

продуктов не удовлетворяет

руководство предприятия, либо

если бизнес настолько

динамичен, что перенастройка

готового продукта окажется

дороже или менее

эффективной, чем своего.

Достоинства:

ориентированный

конкретную фирму

комплекс

автоматизации,

покрывающий

требуемый

качество,

эффективность и оперативность

"поддержки" (никто не знает

всех особенностей бизнеса

фирме лучше

ее собственных

сотрудников).

3.Разработка

Этот вариант перекликается с

Однако тут возникают проблемы,

предыдущим, но отличается от

сходные первым вариантом

совместно с

него следующим: фирме не

автоматизации, но обычно этими

проблемами легче управлять из-за

разработчико

программистов с одной

более тесных контактов

стороны, и она получает

потребителя информационной

ориентированный чисто на нее

системы и фирмы-разработчика

продукт - с другой.

(или интегратора).

В случае наличия у фирмы-

разработчика технологического

"конструктора" (ядра

информационной системы,

достаточно легко развиваемого

и адаптируемого под

меняющиеся условия) такой

вариант автоматизации может

оказаться дешевле и

эффективнее второго подхода и

динамичнее и технологичнее

Выбор автоматизированной системы для предприятия должен проводиться не по принципу, какая ЭИС лучше, а какая хуже. Здесь необходимо определить в какой степени определенная ЭИС подходит для работы в конкретном предприятии при заданных условиях. Разработка сравнительных критериев представленных на рынке ЭИС нецелесообразна без учета конкретных условий, таких как: экономическое состояние предприятия, уровень подготовки служащих, ранее сделанные инвестиции в программное и техническое обеспечение и т.д. В связи с этим возникает необходимость в определении рациональной с точки зрения технико-экономических показателей, структуры ЭИС, предполагающей возможность гибкой перенастройки техники и программного обеспечения в случае изменения структуры предприятия при реинжиниринге бизнес-процессов.

Внедрение качественной ЭИС является одним из важнейших элементов рыночного успеха предприятия и условием ее динамичного развития.

3.8. Критерии выбора ЭИС

При выборе ЭИС необходимо учитывать следующие критерии:

репутация фирмы, репутация системы, стаж пребывания фирмы на рынке, число продаж.

сколько работающих систем в России. Имеются ли внедрения на родственных предприятиях? Потребовалась ли помощь внешних консультантов?

терминология и качество русификации западной системы.

качество локализации западной системы. Есть области производства, где действуют стандарты - юридические и фактические. Например - методы бухгалтерского учета, бухгалтерская и налоговая отчетность. В конструкторской и технологической подготовке производства у отечественных предприятий повсеместно приняты стандарты ЕСКД и ЕСТД. На западных предприятиях принята предметно замкнутая организация производства, а для отечественных - более привычна технологическая специализация. На западе безцеховая структура управления, в России - цеховая. Все эти моменты должны быть отработаны при локализации. Желательно, чтобы система отрабатывала такие российские реалии как бартер, цепочки зачетов, предоплату, оплата в неденежной форме, неотфактурованные поставки и т.д.

какая российская команда стоит за западной системой. Кто ее русифицировал, кто внедряет? Знают ли они производство? Какое у них образование? Какой опыт? Какая за ними “история успехов”? Какой их подход к внедрению?

разумная цена . Покупая систему, необходимо помнить, что на весь цикл - покупка, внедрение, сопровождение, развитие - придется затратить в 3 - 10 раз больше денег, чем стоимость программных средств. Чем сложнее и дороже система, тем больше коэффициент. Если придется привлекать западных консультантов, это будет стоить минимум в 1000 $ в день, причем заранее неясно, то ли они будут учить работать с их системой, то ли сотрудники предприятия за эти деньги будут их знакомить с волнующими особенностями российской экономики,

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

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

гибкость. Система будет внедряться полтора-три года и будет работать пять - десять лет. За это время предприятие изменится. Изменится продукция, оргструктура, организация управления, бизнес - процессы, роли и полномочия управленцев. Система управления должна меняться вместе с производством. Значит система должна позволять легко менять АРМы и меню, формировать отчеты и справки, делать произвольные выборки информации в удобном представлении, менять бизнес - процессы и алгоритмы путем параметрической настройки и так далее. Обычная проблема с западными системами - не понятно, для какого пользователя экраны для ввода информации. Вроде бы для технолога, но при чем тут нормативы планирования? Вроде бы для кладовщика, но при чем тут цены и длительность цикла? Вроде бы для бухгалтера, но для какого раздела учета? В этом случае придется разбивать экраны, убирать лишние реквизиты, добавлять нужные, менять названия полей, менять их расположение на экране, менять значность, добавлять поля в базу данных, менять HELP. Позволит ли это делать система и какой ценой? Система должна также легко интегрироваться с другими модулями, например, с российскими программами расчета зарплаты или управления персоналом (не очевидно, что удастся использовать соответствующие западные аналоги) или с уже существующими старыми разработками, которые нельзя отключить (из-за специфики, уникальности и т.п.). Системы европейского производства обычно более гибки, чем американские, - они изначально ориентированы на учет национальных особенностей разных стран Европейского сообщества,

архитектура. Желательна трехзвенная - сервер базы данных, сервер приложений, клиент - клиент-серверная архитектура с возможностью использования “тупых терминалов”. Клиент может быть “толстым” или “тонким”,

техническая платформа. За время жизни системы сменится не одно поколение технических средств. Привязанность к определенной платформе опасна. Система должна уметь мигрировать с платформы на платформу,

 OLTP и OLAP системы В предыдущем подразделе отмечалось, что для адекватного представления предметной области, простоты разработки и поддержания базы данных отношения должны быть приведены к третьей нормальной форме (существуют формы нормализации и более высоких порядков, но на практике они используются достаточно редко), то есть быть сильно нормализованными. Однако слабо нормализованные отношения также имеют свои достоинства, основным из которых является то, что если к базе данных обращаться в основном только с запросами, а модификации и добавление данных проводить очень редко, то их выборка производится значительно быстрее. Это объясняется тем, что в слабо нормализованных отношениях уже как бы произведено их соединение и на это не тратится процессорное время. Выделяют два класса систем, для которых в большей степени подходят сильно и слабо нормализованные отношения. Сильно нормализованные модели данных хорошо подходят для OLTP-приложений - On-Line Transaction Processing (OLTP) - приложений оперативной обработки транзакций. Типичными примерами OLTP-приложений являются системы складского учета, заказов билетов, операционные банковские системы и другие. Основная функция подобных систем заключается в выполнении большого количества коротких транзакций. Сами транзакции являются достаточно простыми, но проблемы состоят в том, что таких транзакций очень много, выполняются они одновременно и при возникновении ошибок транзакция должна откатиться и вернуть систему в состояние, в котором та была до начала транзакции. Практически все запросы к базе данных в OLTP-приложениях состоят из команд вставки, обновления и удаления. Запросы на выборку, в основном, предназначены для предоставления пользователям выборки данных из различного рода справочников. Таким образом, большая часть запросов известна заранее ещё на этапе проектирования системы. Критическим для OLTP-приложений является скорость и надежность выполнения коротких операций обновления данных. Чем выше уровень нормализации данных в OLTP-приложениях, тем оно быстрее и надежней. Отступления от этого правила могут происходить тогда, когда уже на этапе разработки известны некоторые часто возникающие запросы, требующие соединения отношений и от скорости выполнения которых существенно зависит работа приложений. Другим типом приложений являются OLAP-приложения - On-Line Analitical Processing (OLAP) - приложения оперативной аналитической обработки данных. Это обобщенный термин, характеризующий принципы построения систем поддержки принятия решений - Decision Support System (DSS), хранилищ данных - Data Warehouse, систем интеллектуального анализа данных - Data Mining. Такие системы предназначены для нахождения зависимостей между данными, для проведения динамического анализа по принципу "что если..." и тому подобных задач. OLAP-приложения оперируют с большими массивами данных, накопленными на предприятии или взятыми из других источников. Такие системы характеризуются следующими признаками: * добавление в систему новых данных происходит относительно редко крупными блоками, например, один раз в месяц или квартал; * данные, добавленные в систему, как правило, никогда не удаляются; * перед загрузкой данные проходят различные подготовительные процедуры, связанные с приведением их к определенным форматам и тому подобное; * запросы к системе являются нерегламентированными и достаточно сложными; * скорость выполнения запросов важна, но не критична. Базы данных OLAP-приложений обычно представлены в виде одного или нескольких гиперкубов, измерения которого представляют собой справочные данные, а в ячейках самого гиперкуба хранятся значения этих данных. Физически гиперкуб может быть построен на основе специальной многомерной модели данных - Multidimensional OLAP (MOLAP) или представлен средствами реляционной модели данных - Relational OLAP (ROLAP). В системах OLAP, использующих реляционную модель данных, данные целесообразно хранить в виде слабо нормализованных отношений, содержащих заранее вычисленные основные итоговые данные. Избыточность данных и связанные с ней проблемы здесь не страшны, так как их обновление происходит достаточно редко и вместе с обновлением данных осуществляется пересчет итогов. Характеристики и круг задач, эффективно решаемых каждой технологией, поясняется следующей сравнительной таблицей: ХарактеристикаOLTPOLAPНазначение системыРегистрация, оперативный поиск и обработка транзакций, регламентированный анализРабота с историческими данными, аналитическая обработка, прогнозирование, моделирование Хранимые данныеОперативные, детализированныеОхватывающие большой период времени, агрегированныеТип данныхСтруктурированныеРазнотипные"Возраст" данныхТекущие (несколько месяцев)Исторические (за годы) и прогнозируемыеЧастота обновления данныхВысокая, небольшими "порциями"Малая, большими "порциями"Уровень агрегации данныхДетализированные данныеВ основном - агрегированные данныеПреобладающие операцииВвод данных, поиск, обновлениеАнализ данныхСпособ использования данныхПредсказуемыйНепредсказуемыйВзаимодействие с пользователем На уровне транзакции На уровне всей базы данных Вид деятельностиОперативная, тактическаяАналитическая, стратегическаяПриоритетыВысокая производительность Высокая доступностьГибкость Автономность пользователяКатегория пользователейБольшое количество работников исполнительного звенаОтносительно малое количество работников руководящего звена Сравнение OLTP и OLAP Характеристика OLTP OLAPХарактер запросовМного простых транзакцийСложные транзакцииХранимые данныеОперативные, детализи-рованныеОхватывающие большой период времени, агреги-рованныеВид деятельностиОперативная, тактическаяАналитическая, страте-гическаяТип данныхСтруктурированныеРазнотипныеСистемная характеристикаУчетная система (OLTP)OLAPВзаимодействие с пользователем На уровне транзакции На уровне всей базы данных Данные, используемые при обращении пользователя к системеОтдельные записиГруппы записейВремя откликаСекундыОт нескольких секунд до нескольких минутИспользование аппаратных ресурсовСтабильноеДинамическоеХарактер данных Главным образом первичные (самый низкий уровень детализации)В основном производные (сводные значения)Характер доступа к базе данныхПредопределенные или статические пути доступа и отношения данных Неопределенные или динамические пути доступа и отношения данных Изменчивость данныхВысокая (данные обновляются с каждой транзакцией)Низкая (во время запроса данные обновляются редко)Приоритеты Высокая производительность Высокая доступностьГибкость Автономность пользователя




Top