Хранилища данных

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

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

Наиболее упорным и удачливым сторонником технологии хранилищ данных оказался Билл Инмон, который за активное продвижение этой концепции был удостоен почетного титула "отца — основателя хранилищ данных".

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

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

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

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

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

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

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

После того как данные записаны в хранилище (т.е. выполнена операция вставки) они никогда из него не удаляются, оно постоянно растет. Кроме того эти данные не модифицируются (т.е. не выполняются операции типа Update).

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

На рис. 18.1 представлен пример интеграции данных на основе двух источников.

Рис.18.1 Организация хранилища данных

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

Компонент трансляции/загрузки данных – программное средство, обеспечивающее:

1) объединение (интеграцию) данных, извлеченных из разных источников,

2) преобразование форматов извлеченных данных в форматы, используемые хранилищем,

3) загрузку извлеченных интегрированных данных в хранилище в соответствии со схемой данного хранилища.

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

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

Существует три основных способа сбора информации в хранилище данных.

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

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

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

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

 

3. Информация в хранилище обновляется непосредственно в ответ на операцию (или группу операций) модификации содержимого одного или нескольких источников.

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

19. Медиаторы

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

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

Рис. 19.1. Организация медиатора

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: