Концепция хранилища данных. Технология проектирования хранилищ данных

15.04.2019

Стремление объединить в одной архитектуре СППР возможности OLTP-систем исистем анализа,привело к появлению концепции х ра н и л ищ д а н ны х (ХД).

Концепция ХД так или иначе обсуждалась специалистами в области инфор-

мационных систем достаточно давно. Первые статьи,посвященные именно ХД,появились

в 1988 г., их авторами были Б. Девлин и П. Мэрфи. В 1992 г. У. Инмон подробно описалданную концепцию в своей монографии "Построение хранилищ данных" ("Building the Data Warehouse", second edition - QED Publishing Group, 1996).

В основе концепции ХД лежит идея разделения данных, используемых для

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

В своей работе Инмон дал следующее определение ХД.

Х ра ни л и щ е д а н н ы х -предметно-ориентированный,интегрированный,

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

Рассмотрим свойства ХД более подробно.

П р ед м е т н ая о ри е н т а ци я. Это фундаментальное отличие ХД от ОИД.

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

Предметная ориентация позволяет также хранить в ХД только те данные, которые

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

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

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

При реализации в СППР концепции ХД данные из разных ОИД копируются вединое хранилище. Собранные данные приводятся к единому формату, согласовываются и обобщаются.Аналитические запросы адресуются к ХД (рис. 1).

Такая модель неизбежно приводит к дублированию информации в ОИД и в ХД.

Однако Инмон в своей работе утверждает, что избыточность данных, хранящихся в

СППР, не превышает 1 %! Это можно объяснить следующими причинами.

При загрузке информации из ОИД в ХД данные фильтруются. Многие из них непопадают в ХД, поскольку лишены смысла с точки зрения использования в процедураханализа.

Информация в ОИД носит, как правило, оперативный характер, и данные, потеряв

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

Во время загрузки в ХД данные очищаются (удаляется ненужная информация), и

после такой обработки они занимают гораздо меньший объем.

Подсистем а ввода(OLTP)

П о д с и с т е м

Аналитические запросы

П о д с и с т е м

О п е р а т о

Подсистем а ввода(OLTP)

а анализа

Р и с у н о к 7. Структура СППР с физическим ХД

Избыточность информации можно свести к нулю, используя виртуальное ХД. Вданном случае в отличие от классического (физического) ХД данные из ОИД некопируются в единое хранилище. Они извлекаются, преобразуются и интегрируютсянепосредственнопри выполнении аналитических запросов в оперативной памятикомпьютера. Фактически такие запросы напрямую адресуются к ОИД (рис. 2). Основнымидостоинствами виртуального ХД являются:

минимизация объема памяти, занимаемой на носителе информацией; р а б о т а с т ек у щ и м и, д е т а л изи р о в а нн ы м и д а нн ы м и.

Подсистем а ввода(OLTP)

Подсистем а ввода(OLTP)

Подсистем а ввода

Подсистема храненияинформации

Аналитические запросы

Подсистем а анализа(OLAP,

О п е р а т о

В и р т у а л ьн о е

Р и с у н о к 8. С т р у к т у ра С ПП Р с в и р т у а л ь н ы м Х Д

Однако такой подход обладает многими недостатками.

Время обработки запросов к виртуальному ХД значительно превышает соот-

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

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

Выполнение сложных аналитических запросов над ОИД требует значительных ресурсов компьютеров. Это приводит к снижению быстродействия OLTP-систем, чтонедопустимо,т.к.время выполнения операций в таких системах часто весьма критично.

Различные ОИД могут поддерживать разные форматы и кодировки данных. Часто

на один и тот же вопрос может быть получено несколько вариантов ответа. Это можетбыть связано с:

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

В таком случае цель - формирование единого непротиворечивого взгляда наобъект управления - может быть не достигнута.

Главным же недостатком виртуального хранилища следует признать практическую

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

Несмотря на преимущества физического ХД перед виртуальным, необходимо

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

Остановимся на основных проблемах создания ХД:

необходимость интеграции данных из неоднородных источников в рас-

пределенной среде;

потребность в эффективном хранении и обработке очень больших объемов информации; необходимость наличия многоуровневых справочников метаданных; О

повышенные требования к безопасности данных. Рассмотрим эти проблемы более

подробно.

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

По т р е б н о с т ь в э ф ф е к т и в н ом х р а н е ни и и о б р або т к е о че н ь бол ь ш и х об ъ е мов ин ф о р ма ц и и . Свойство неизменности ХД предполагает накопление в нем информации задолгий период времени, что должно поддерживаться постоянным ростом объемовдисковой памяти. Ориентация на выполнение аналитических запросов и связанная с этимденормализация данных приводят к нелинейному росту объемов памяти, занимаемой ХДпри возрастании объема данных. Исследования, проведенные на основе тестового набораTPC-D, показали, что для баз данных объемом в 100 Гбайт требуется память, в 4,87 разабольшая объемом,чем нужно для хранения полезных данных.

Н е об х о д и мо с т ь м н о г оу р ов н е вых с пр аво ч ник ов м е т а д а нн ы х . Длясистеманализа наличие развитых метаданных (данных о данных) и средств их предоставленияконечным пользователям является одним из основных условий успешной реализации ХД.Метаданные необходимы пользователям СППР для понимания структуры информации, наосновании которой принимается решение. Например, прежде чем менеджер корпорациизадаст системе свой вопрос, он должен понять, какая информация имеется, насколько онаактуальна, можно ли ей доверять, сколько времени может занять формирование ответа и т.д. При создании ХД необходимо решать задачи хранения и удобного представленияметаданных пользователям.

Повы ш е ни е т р е бова ни й к б е зо п а с н о с т и д а нн ы х . Собранная вместе и со-

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

данных из оперативных баз данных и внешних источников, защиты данных при ихпередаче по сети и т.п.

Снижения затрат на создание ХД можно добиться, создавая его упрощенный

вариант - витрину данных (Data Mart).

В и т р ин а д а н ны х (В Д ) - это упрощенный вариант ХД, содержащий только тема-

тически объединенные данные.

ВД максимально приближена к конечному пользователю и содержит данные,

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

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

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

Подсистем а ввода(OLTP)

Подсистем а ввода(OLTP)

Подсистема храненияинформации

Аналитические запросы

Аналитические запросы

Подсистем а анализа(OLAP,

П о д с и с т е м

О п е р а т о

Подсистем а ввода(OLTP)

а анализа

Р и с у н о к 9. Структура СППР с самостоятельными ВД

Недостатками автономных ВД являются:

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

следовательно - отсутствие единой картины.

В последнее время все более популярной становится идея совместить ХД и ВД в

одной системе. В этом случае ХД используется в качестве единственного источникаинтегрированных данных для всех ВД (рис. 4).

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

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

Достоинствами такого подхода являются:

простота создания и наполнения ВД, поскольку наполнение происходит из единого стандартизованного надежного источника очищенных данных - из ХД; простота расширения СППР за счет добавления новых ВД; с ни ж е ни е н а г р у з к и н а о с н о в н о е Х Д.

Подсистем а ввода(OLTP)

Подсистема храненияинформации

Аналитические запросы

П о д с и с т е м

О п е р а т о

Подсистем а ввода(OLTP)

Подсистем а ввода(OLTP)

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

ХД запросы

ВД

а анализа

Подсистем а анализа(OLAP,

Р и с у н о к 10. Структура СППР с ХД и ВД

К недостаткам относятся:

избыточность (данные хранятся как в ХД, так и в ВД); дополнительные затраты на разработку СППР с ХД и ВД.

Подводя итог анализу путей реализации СППР с использованием концепции ХД,можно выделить следующие архитектуры таких систем:

СППР с физическим (классическим) ХД (см. рис. 1); СППР с виртуальным ХД (см. рис. 2); СППР с ВД (см. рис. 3); СППР с физическим ХД и с ВД (рис. 4).

В случае архитектур с физическим ХД и/или ВД необходимо уделить внимание

вопросам организации (архитектуры) ХД и переносу данных из ОИД вХД.

Читайте также:
  1. Bonpoс 19 Сплавы на основе алюминия и магния. Свойства и области применения.
  2. Абсолютное ггидростатическоеидростатическое давление и его свойства
  3. Альдегиды, гомологический ряд, строение, функциональная группа. Химические свойства альдегидов. Получение альдегидов в медицине.
  4. Аммиак (порядок использования, свойства, клиническая картина поражения людей и сельскохозяйственных животных, первая медицинская помощь, защита).
  5. Анализ внешней среды и ее влияние на разработку управленческого решения. Свойства внешней среды.
  6. Анализ использования чистой прибыли проводится с использованием метода вертикального и горизонтального анализа, для чего показатели группируются в таблицу, подобную таблице 20.
  7. Анализ риска, уровень риска, оценка риска на основе доступных данных.
  8. Аналитический сигнал. Свойства сопряженных по Гильберту сигналов.

Хранилище данных (ХД) – предметно-ориентированный, интегрированный, неизменчивый, поддерживающий хронологию набор данных, организованный для целей под­держки принятия решений.

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

В СППР (система поддержки принятия решений) эти два типа данных называются соответственно оперативными источниками данных(ОИД) и хранилищем данных.

Витрина данных(ВД) – это упрощенный вариант ХД, содержащий только тематически объединенные данные.

Свойства хранилищ данных:

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

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

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

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



Можно выделить следующие архитектуры СППР с использованием ХД:

1) СППР с физическим (классическим) ХД. Такая модель неизбежно приводит к дублированию информации в ОИД и в ХД. Однако избыточность данных, хранящихся в СППР, не превышает 1 %.

Это можно объяснить следующими причинами:

При загрузке информации из ОИД в ХД данные фильтруются. Многие из них не попадают в ХД, поскольку лишены смысла с точки зрения использования в процедурах анализа.

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

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



2) СППР с виртуальным ХД. Избыточность в данном варианте СППР сведена к нулю. В данном случае в отличие от классического (физического) ХД данные из ОИД не копируются в единое хранилище. Они извлекаются, преобразуются и интегрируются непосредственно при выполнении аналитических запросов в оперативной памяти компьютера. Фактически такие запросы напрямую адресуются к ОИД. Основными достоинствами виртуального ХД являются: минимизация объема памяти, занимаемой на носителе информацией; работа с текущими, детализированными данными.

Недостатки данного подхода:

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

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

Выполнение сложных аналитических запросов над ОИД требует значительных ресурсов компьютеров.

Различные ОИД могут поддерживать разные форматы и кодировки данных. Часто на один и тот же вопрос может быть получено несколько вариантов ответа. Это может быть связано с:

– несинхронностью моментов обновления данных в разных ОИД;

– отличиями в описании одинаковых объектов и событий предметной области;

– ошибками при вводе;

– утерей фрагментов архивов и т. д.

В таком случае цель – формирование единого непротиворечивого взгляда на объект управления – может быть не достигнута.

Главный недостаток виртуального ХД - практическая невозможность получения данных за долгий период времени. При отсутствии физического хранилища доступны только те данные, которые на момент запроса есть в ОИД.

3) СППР с ВД. Достоинствами такого подхода являются:

Проектирование ВД для ответов на определенный круг вопросов;

Быстрое внедрение автономных ВД и получение отдачи;

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

Недостатками автономных ВД являются:

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

Отсутствие консолидированности данных на уровне предметной области, а, следовательно – отсутствие единой картины.

4) СППР с ХД и ВД. В последнее время все более популярной становится идея совместить ХД и ВД в одной системе. В этом случае ХД используется в качестве единственного источника интегрированных данных для всех ВД.

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

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

Достоинствами такого подхода являются:

Простота создания и наполнения ВД, поскольку наполнение происходит из единого стандартизованного надежного источника очищенных данных – из ХД;

Простота расширения СППР за счет добавления новых ВД;

Снижение нагрузки на основное ХД.

К недостаткам относятся:

Избыточность (данные хранятся как в ХД, так и в ВД);

Дополнительные затраты на разработку СППР с ХД и ВД.

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

Введение

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

Для менеджеров и аналитиков в свою очередь требовались системы, которые бы позволяли:

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

Ответом на возникшую потребность стало появление новой технологии организации баз данных – технологии хранилищ данных.

Определение и типовые архитектуры ХД

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

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

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

Виртуальное хранилище данных – это система, представляющая интерфейсы и методы доступа к регистрирующей системе, которые эмулируют работу с данными в этой системе, как с хранилищем данных. Виртуальное хранилище данных можно организовать, создав ряд представлений (view) в базе данных, либо применив специальные средства доступа, например продукты класса Desktop OLAP, к которым относится, например, BusinessObjects, Brio Enterprise и другие .

Главными достоинствами такого подхода являются:

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

Производительности;

Трансформации данных;

Интеграции данных с другими источниками;

Отсутствия истории;

Чистоты данных;

Зависимость от доступности основной БД;

Зависимость от структуры основной БД.

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

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

Проектирование структуры реляционного хранилища данных

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

К числу мало освещенных тем можно отнести проблему представления иерархий. В качестве примера измерения, широко применяющегося при анализе деятельности предприятия и имеющего иерархическую структуру, можно привести справочник статей затрат. Рассмотрим модель мест возникновения затрат (МВЗ), представленную на рис 2.

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

Parent ID

1

Предприятие

2

Управление

3

Инфраструктура

4

Производство

5
6

Сервисные услуги

7

Месторождение A

8

Месторождение B

Таблица 1.

Однако в простоте этого решения скрывается и основной его недостаток. К сожалению, стандартный SQL не поддерживает рекурсивные указатели, поэтому для представления деревьев в ХД используют другие методы.

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

При такой нумерации узлов каждый родитель содержит потомков, левая и правая граница которых лежит в интервале между левой и правой границей родителя. Аналогично все родители потомка имеют левую границу, которая меньше левой границы потомка и правую, большую правой границы потомка. Следовательно, сумму затрат для конкретного МВЗ и всех его составляющих можно получить одним запросом. Например, для получения затрат по инфраструктуре можно выполнить следующий SQL-запрос:

select sum(fact_table.cost)
from fact_table, dimension_table D1, dimension_table D2
where fact_table.dimension_id = D2.id
and D2.left >= D1.left
and D2.right <= D1.right
and D1.name = "Инфраструктура"

Для простоты работы с таким справочником кроме полей left, right стоит добавить еще два поля: "Level" – уровень узла в дереве, "Is_leaf" – флаг, показывающий является ли узел листом в дереве или нет. Таким образом, мы получаем таблицу "dimension_table" (см. таблицу 2), которая позволяет хранить дерево любой глубины вложенности и размерности и позволяет выбирать потомков и родителей с помощью одного запроса.

1

Предприятие

2

Управление

3

Инфраструктура

4

Производство

5
6

Сервисные услуги

7

Месторождение A

8

Месторождение B

Таблица 2. Представление иерархий с помощью левой и правой границ

Другой способ, описанный Ральфом Кимбаллом , основан на введении вспомогательной таблицы ("helper-table"), через которую осуществляется связь таблицы фактов с таблицей измерения. Эта вспомогательная таблица отражает иерархическую структуру измерения и подчиняется следующему закону: вспомогательная таблица содержит весь набор пар "родитель-потомок", причем потомок может не быть непосредственным потомком родителя. Структура такой таблицы и ее содержимое показано в таблице 3.

Parent ID

Child ID

Distance

1
1
1
1
1
1
1
1
2 2 0 Y
3 3 0 N
3 5 1 N
3 6 1 N
4 4 0 N
4 7 1 N
4 8 1 N
5 5 0 Y
6 6 0 Y
7 7 0 Y
8 8 0 Y

Таблица 3. Структура и содержание вспомогательной таблицы.

Теперь связывая таблицу фактов (см. рис. 4) с идентификатором ребенка во вспомогательной таблице, а таблицу измерений с идентификатором родителя, мы можем вычислять сумму затрат для каждого МВЗ и всех его составляющих одним запросом, как и в предыдущем случае. При этом, добавляя ограничения на поля "Distance" и "Is Leaf", мы можем легко считать затраты для любого уровня в иерархии.

select sum(fact_table.cost)
from fact_table, dimension_table, helper_table
where fact_table.dimension_id = helper_table.child_id
and dimension_table.dimension_id = helper_table.parent_id
and dimension_table.name = "Инфраструктура"
and helper_table.distance = 1

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

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

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

Рассмотрим его более подробно (см. рис. 5). Таблица "dimension_actual" представляет собой таблицу измерений с первичным ключом dimension_id, содержащей корректные атрибуты измерения на сегодняшний день. С ней связана через внешний ключ dimension_id историческая таблица "dimension_history", в которой находится история изменения записей, определяемая датами начала/окончания действия записи (поля date_start, date_end). Актуальная на сегодняшний день запись также присутствует в ней с открытой датой окончания действия. Таблица фактов "fact_table" связана с таблицей измерений через вспомогательную таблицу "helper_table", которая отражает иерархическую структуру измерения.

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

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

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

Заключение

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

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

ЛИТЕРАТУРА

1.

Joerg Reinschmidt, Allison Francoise. Business Intelligence Certification Guide. IBM Red books;

2.

Inmon W. Building the Data Warehouse. – New York: John Willey & Sons, 1992;

3.

Спирли, Эрик. Корпоративные хранилища данных. Планирование, разработка, реализация. Том. 1: Пер. с англ. – М.: Издательский дом "Вильямс", 2001;

4.

Joe Celko. Trees in SQL: Intelligent Enterprise, October 20, 2000;

5.

Дональд Э. Кнут. Искусство программирования, том 1. Основные алгоритмы, 3-е изд.: – М. : Издательский дом "Вильямс", 2000.;

6.

Ralph Kimball. Help for Hierarchies: DBMS September 1998;

7.

Ralph Kimball. Slowly Changing Dimensions: DBMS April 1996;

8.

Статистический словарь: М. "Финансы и статистика", 1989;

9.

Дюк В, Самойленко А, Data mining: учебный курс. – СПб: Питер, 2001;

10.

Erhard Rahm, Hong Hai Do: Data Cleaning: Problems and Current Approaches. IEEE Data Engineering Bulletin 23(4): 3-13 (2000);

11.

Ralph Kimball: The Data Warehouse Toolkit: Practical Techniques for Building Dimensional Data Warehouses. John Wiley 1996;

12.

Maria Sueli Almeida, Missao Ishikawa, Joerg Reinschmidt, Torsten Roeber, Getting Started with Data Warehouse and Business Intelligence. IBM Red books;

13.

Nigel Pendse, OLAP Architectures: The OLAP Report, http://www.olapreport.com/Architectures.htm#top.

В соответствии с определением Е. Инмона, ХД- это предметно-ориентированный, интегрированный, неизменчивый, поддерживающий хронологию набор данных, организованный для целей поддержки принятия решений.

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

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

Детальные данные разделяют на два класса: измерения и факты. Измерениями называются наборы данных, необходимые для описания событий. Фактами называются данные, отражающие сущность события.

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

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

Общая идея хранилищ данных заключается в разделении БД для OLTP-систем и БД для выполнения анализа и последующем их проектировании с учетом соответствующих требований. Концепция ХД так или иначе обсуждалась специалистами в области информационных систем достаточно давно. Первые статьи, посвященные именно ХД, появились в 1988 г., их авторами были Б. Девлин и П. Мэрфи. В 1992 г. У. Инмон подробно описал данную концепцию в своей монографии "Построение хранилищ данных" ("Building the Data Warehouse", second edition - QED Publishing Group, 1996).



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

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

Ниже дадим общую характеристику основных свойств ХД

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

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

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

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

При реализации в СППР концепции ХД данные из разных ОИД копируются в единое хранилище. Собранные данные приводятся к единому формату, согласовываются и обобщаются. Аналитические запросы адресуются к ХД

Такая модель неизбежно приводит к дублированию информации в ОИД и в ХД.

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

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

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

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

Выполнение сложных аналитических запросов над ОИД требует значительных ресурсов компьютеров. Это приводит к снижению быстродействия OLTP-систем, что недопустимо, т. к. время выполнения операций в таких системах часто весьма критично.

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

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

Несмотря на преимущества физического ХД перед виртуальным, необходимо признать, что его реализация представляет собой достаточно трудоемкий процесс. Остановимся на основных проблемах создания ХД:

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

Потребность в эффективном хранении и обработке очень больших объемов информации;

Необходимость наличия многоуровневых справочников метаданных;

Повышенные требования к безопасности данных.
Рассмотрим эти проблемы более подробно.

Эволюция хранилищ данных

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

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

Получивший наибольшее распространение подход к созданию ХД был предложен Биллом Инмоном. Он определяет ХД так:

Хранилище данных. Предметно-ориентированный, интегрированный, привязанный ко времени и неизменяемый набор данных, предназначенный для поддержки принятия решений.

В приведенном выше определении, указанные характеристики данных рассматриваются следующим образом.

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

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



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

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

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