Проблемы в попытках создания единых систем информационного обеспечения подразделений МВД России вызваны теми же причинами, которые приводят к незавершенным проектам построения хранилищ данных крупных коммерческих организаций. Почему бы для снижения финансовых затрат при построении хранилищ данных не воспользоваться рекомендациями известных специалистов?
При создании информационной среды в любом ведомстве стремятся к построению единой системы. К примеру, единая система информационного обеспечения всех подразделений МВД решает множество проблем — от совместимости при обмене информацией до уменьшения стоимости обучения работе новых сотрудников. На практике, однако, до сих пор используется множество различных систем хранения и анализа данных даже в рамках одной структуры, независимо от решаемой задачи — будь то борьба с организованной преступностью или борьба с незаконным оборотом наркотиков. Наиболее распространены следующие информационно-аналитические системы: CronosPlus (www.cronos.ru), Binar, FaceManager, Flint, «Досье» (www.goal.ru/products/persona.html), НЕВОД (www.linter.ru/nevod_rus.php), «Портрет» (www.portret.tomsk.ru), «Легенда», «Сова» и т.п. Часто на местах можно встретить энтузиастов, которые стремятся что-то улучшить, самостоятельно пытаясь сделать приложения и спроектировать свои базы. И только потратив массу времени, путем проб и ошибок они приходят к пониманию того, что собой должна представлять их система. Но зачем изобретать велосипед, строя хранилища данных, когда можно воспользоваться лучшей мировой практикой?
Хранилища в коммерческих организациях
Обычно при построении хранилищ данных применяются два подхода — «по Биллу Инмону» и «по Ральфу Кимбаллу» [1]. Согласно парадигме Инмона, хранилище данных представляет собой единый источник информации, хранимой в третьей нормальной форме для всей корпоративной системы бизнес-анализа, при этом предприятие имеет одно хранилище данных, на базе которого строятся все витрины. Хранилище данных по Кимбаллу — это конгломерат всех витрин данных предприятия, а информация всегда хранится в параметрической модели (dimensional model) (ее еще иногда называют «моделью измерений»). На практике большинство существующих хранилищ данных ближе к парадигме Кимбалла — хранилища начинали строить по инициативе отдельных департаментов, и изначально, по сути, они были витринами данных, не охватывая предметную область всей корпорации. По мере развития эти витрины данных эволюционировали в хранилища данных [1]. В этой связи можно считать, что путь Инмона революционен, поскольку предполагает, что все информационные системы будут уничтожены и на их месте будет построено что-то единое для всей территориально-распределенной структуры.
Сегодня предприятия вкладывают большие средства в построение хранилищ, однако отчеты о победах на фронте внедрения единых информационных систем — лишь капля в море незавершенных проектов по созданию единых согласованных источников данных; по мнению аналитиков Gartner, в 2007 году более половины проектов по созданию хранилищ данных потерпят неудачу. В различных источниках можно найти множество правильных советов, как не сорвать план по построению единого хранилища данных масштаба предприятия, однако обратим внимание на подход Кимбалла к решению этой проблемы.
По словам самого Кимбалла, его позиция совпадает с тем, к чему приходят люди, которые не читали его книг, но долго занимались созданием хранилищ данных. Действительно, наиболее простой путь — делать витрины данных по мере необходимости и на основе тех источников, которые требуются на текущий момент. За последнее десятилетие в этой отрасли уже сложились свои стандарты и так называемые «лучшие практики». Обычно это толстые книги, где по шагам описано, что и как надо сделать, что не забыть, как поступить в том или ином случае [2, 3]. Более того, ряд предприятий, уже использующих хранилища данных, заказывают работы по переписыванию своих информационных систем — не с целью ускорить их функционирование, а для достижения их соответствия «лучшим практикам» за счет включения более совершенных средств очистки, таблиц сопоставления ключей в исходной базе и ключей в хранилище, подробного документирования вплоть до схем алгоритмов хранимых процедур и т.д.
Хранилища для государственных структур
В государственных структурах, например в МВД РФ (конкретнее — для подразделения ОБНОН, в котором требуется объединение информации из различных источников), несмотря на попытки создания единых территориально-распределенных систем информационного обеспечения, в подразделениях ведомства пользуются привычными упомянутыми ранее унаследованными информационно-аналитическими системами, предоставляющими примерно одинаковые функции:
-
описание типа информации (физические лица, юридические лица, адреса и т.д.) с указанием реквизитов (город, улица, дом и т.д.);
-
ввод данных;
-
построение и выполнение нерегламентированных (ad hoc) запросов без программирования;
-
представление сформированной семантической сети в виде диаграммы.
С помощью этих систем ведется накопление не только актуальных, но и исторических данных, например, один и тот же человек за свою жизнь может сменить несколько фамилий, несколько паспортов, несколько мест жительства и каждое такое изменение отражается в виде добавления нового значения, допустим, атрибута МЕСТО ЖИТЕЛЬСТВА у объекта типа ФИЗИЧЕСКОЕ ЛИЦО. Другими словами, между объектом и значением атрибута реализовано отношение «многие ко многим» (рис. 1).
Самой распространенной задачей информационного обеспечения подразделений МВД является анализ информации, содержащейся в различных базах данных. Например, часто необходимо объединить данные из базы городских телефонов с данными из изъятой записной книжки или подключить оперативные данные, полученные в результате прослушивания. Попробуем построить хранилище данных для этого примера, пользуясь рекомендациями Кимбалла.
Все данные в хранилище представлены параметрической моделью — каждая запись из таблицы фактов ссылается на записи в таблицах измерений (схема «звезда»). Если фактом считать звонок с одного телефона на другой, то измерениями будут номер телефона исходящего звонка, номер телефона входящего звонка, время начала разговора и т.д. Дополнительной информацией о каждом номере телефона является ФИО физического лица, за которым закреплен данный номер.
Согласно Кимбаллу, далее нужно выгрузить данные из каждого источника и после необходимых преобразований поместить их в область хранения. Эти действия обычно по расписанию выполняются процедурами ETL (Extraction, Transformation, Loading — «извлечение, преобразование, загрузка»). Чаще всего данные выгружаются в файл, но не все, а только те, которые добавились или изменились со времени последней выгрузки. При этом выполняются следующие преобразования:
-
очистка, включающая в себя корректировку ошибок ввода, разрешение конфликтов доменов данных (например, название города не соответствует почтовому индексу), восстановление пропущенных элементов данных, приведение к стандартному формату;
-
удаление ненужной или избыточной для хранилища данных информации;
-
объединение данных из разных источников либо по значениям ключей, либо по сложным правилам (правила могут содержать, например, таблицы соответствий каких-то текстовых значений кодам, полученным из базы источника);
-
создание суррогатных ключей для каждой записи таблицы измерений, чтобы избежать зависимости от ключей в базе источника;
-
формирование агрегированных данных для увеличения скорости выполнения типовых запросов.
После отработки ETL-процедур проверяется качество загруженных данных путем выполнения запросов, формирующих отчеты, наиболее полно охватывающих все возможные ситуации. За проверкой качества следует публикация, или передача данных из области хранения на целевой сервер, к которому будут обращаться аналитики (поэтому при публикации нужно известить аналитиков об обновлении или изменении). Для некоторых систем важен также и обратный поток информации — из области хранения в источник. К такой информации могут относиться, например, очищенные измерения.
В ходе выполнения ETL-процедур Кимбалл советует позаботиться об аудите и сохранить отметки о том, откуда поступили те или иные данные, что за операции были осуществлены. Отдельные действия должны быть предприняты по защите от несанкционированного доступа, резервному копированию и восстановлению.
Некоторые из перечисленных преобразований уже реализованы в системах учета, используемых в структурах МВД (имеются встроенные средства загрузки данных, ряд средств очистки и т.д.), поэтому для быстрого достижения результата (построения витрины данных, объединяющей несколько источников) можно воспользоваться имеющейся в подразделениях информационно-аналитической системой в качестве «области хранения» (data staging area). Если информационно-аналитическая система выступает в качестве источника данных и в качестве области хранения (рис. 4), то выгрузка содержимого всех таблиц в файл .csv неудобна, так как это может привести к потере логической целостности. Лучше воспользоваться средствами информационно-аналитической системы — выгрузить все новые, а также изменившиеся документы в файл формата .xml.
В случае успешной идентификации двух объектов и их объединения в один объект происходит удаление второго и перенаправление атрибутов (рис. 5) и связей на первый объект.
Заключение
При создании хранилища данных необходимо постоянно помнить, для чего оно нужно. Попробуйте ответить на такие вопросы: какая задача имеет наивысший приоритет; как измерить качество выполнения основной задачи; какая информация используется для принятия решений сейчас и где ее брать; есть ли информация, которая сейчас недоступна, но может помочь; какие отчеты требуются; какие есть возможности по значительному улучшению работы подразделения, если будет улучшен доступ к информации? Ответив на эти вопросы, можно будет понять, нужно ли вообще создавать хранилище данных, и если да, то какое именно. К сожалению, сегодня в государственных ведомствах независимо от используемой информационно-аналитической системы создаются витрины данных без учета лучшей мировой практики, и к тем же выводам приходится идти самостоятельно. Необходимое эффективное хранилище данных можно создать гораздо быстрее, если воспользоваться рекомендациями авторитетных специалистов.
Литература
-
Bill Inmon vs. Ralph Kimball, www.1keydata.com/datawarehousing/inmon-kimball.html
-
Ralph Kimball, Laura Reeves, Margy Ross, Warren Thornthwaite, The Data warehouse toolkit: expert methods for designing, developing, and deploying data warehouses. Wiley Computer Publishing, 1998.
-
Ralph Kimball, Margy Ross, The data warehouse toolkit: the complete guide to dimensional modeling. — 2nd ed. Wiley Computer Publishing, 2002.
Виктор Борисов (vict@relex.ru) — зав. отделом НПП «Релэкс» (Воронеж).
«Релэкс» и МВД
Компания «Релэкс» разрабатывает СУБД ЛИНТЕР, которая является единственной на сегодняшний день сертифицированной на наивысший класс защиты данных БД. Компания занимается разработкой приложений для государственных структур, в том числе МВД, куда поставляется, в частности, продукт НЕВОД, появившийся в результате сотрудничества с такими подразделениями МВД как ГУБОП, РУБОП, УБОП и ОБНОН. Опыт взаимодействия с представителями этих подразделений показал, что многие из них разрабатывают собственные хранилища данных, а централизованное внедрение ПО постоянно проваливается. Отсюда следует, что в государственных структурах, как и в бизнесе, создание хранилищ согласно парадигме Инмона часто заканчивается неудачей, а более практичная парадигма Кимбалла доказывает свою жизнеспособность. В подразделениях МВД логичнее создавать витрины данных на местах, а затем их интегрировать.