Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции БД 2011.docx
Скачиваний:
24
Добавлен:
03.12.2018
Размер:
1.87 Mб
Скачать
    1. Модуль 4. Информационные хранилища

      1. Понятие информационных хранилищ, компоненты

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

Приведем определение хранилища данных.

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

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

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

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

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

Общая схема взаимодействия информационного хранилища и баз данных приводится на рис. 14.5.

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

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

  • средства извлечения данных из баз данных;

  • средства управления данными хранилища (система управления базой данных хранилища);

  • средства анализа данных хранилища (используется OLAP-технология):

  • средства доставки данных;

  • средства визуализации результатов обработки для конечных пользователей.

Для работы соответствующих программных средств необходимо описание структуры содержимого информационного хранилища (метаописание).

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

Рассмотрим в качестве примера возможности СУБД Microsoft SQL Server 2008 для организации хранилищ данных.

Microsoft SQL Server 2008 содержит в своем составе средства извлечения, преобразования и загрузки данных (SQL Server 2008 Integration Services), способные интегрировать данные из различных источников, проверять данные на допустимость и преобразовывать перед загрузкой в хранилище. Эти средства также способствуют перемещению данных, поддерживают текстовый анализ и нечеткий поиск. Нужно отметить также среду визуальной разработки (Business Intelligence Development Studio) для создания многомерных кубов, отчетов, пакетов извлечения, преобразования и загрузки данных.

Существенной особенностью хранилищ данных является их очень большой объем. Microsoft SQL Server 2008 как средство управления данными хранилища позволяет работать с большими объемами данных, причем для сокращения времени обработки предусмотрена поддержка параллельных вычислений (путем разделения таблиц и индексов на секции о обеспечение параллельной обработки секций). В системе предусмотрена возможность сжатия данных (таблиц), что позволяет уменьшить физический размер таблиц и существенно сокращает время обмена между оперативной и внешней памятью.

В качестве средств анализа данных хранилища используется SQL Server 2008 Analysis Services, применяемый для построения многомерных кубов (многомерных моделей данных).

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

В качестве средств представления аналитических данных пользователям предлагается использовать средство генерации отчетов SQL Server 2008 Reporting Services.

Таким образом, Microsoft SQL Server 2008 является эффективным средством реализации хранилищ данных на основе реляционных баз данных.

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

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

В основе концепции хранилища данных лежат две основные идеи:

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

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

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

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

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

Свойства информационных хранилищ:

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

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

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

Минимизация избыточности информации. Поскольку информация в Хранилище загружается из БД, возникает вопрос, не ведет ли это к чрезмерной избыточности данных? На самом деле избыточность минимальна (около 1%), что объясняется следующими причинами:

    • при загрузке информации из БД в Хранилище данные фильтруются;

    • информация в БД носит, как правило, оперативный характер, и данные, потеряв актуальность, удаляются;

    • в Информационном хранилище хранится некая итоговая информация, которая в базах данных БД вообще отсутствует;

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

Основные компоненты информационного хранилища:

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

  • Транзакционные БД и внешние источники информации. Базы данных исторически предназначались для эффективной обработки структур данных в относительно небольшом числе четко определенных транзакций.

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

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

  • Информационное хранилище. Представляет собой ядро всей системы - один или несколько серверов БД.

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

  • Уровень информационного доступа. Обеспечивает непосредственное общение пользователя с данным Хранилища посредством стандартных систем манипулирования, анализа и предоставления данных типа MS Excel, FoxPro и др.

  • Уровень управления (администрирования). Отслеживает выполнение процедур, необходимых для обновления информационного хранилища или поддержания его состояния.

Проблемы интеграции данных в Хранилище:

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

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

Повышение требований к безопасности данных. Собранная вместе согласованная информация об истории развития корпорации, ее успехах и неудачах, о взаимоотношениях с поставщиками и заказчиками, об истории и состоянии рынка дает возможность анализа прошлой и текущей деятельности корпорации и построения прогнозов для будущего. Эта информация настолько ценна для корпорации, что нельзя допустить возможности ее утечки (на самом деле, если хранилище данных одной корпорации попадет в руки аналитиков другой корпорации, то все аналитические прогнозы первой корпорации сразу станут неверными). В системах, основанных на хранилищах данных, оказывается недостаточной защита данных в стиле языка SQL, которую обеспечивают обычные коммерческие СУБД (этот уровень защиты соответствует классу C2 в соответствии с классификацией Оранжевой Книги Министерства обороны США).

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

Потребность в эффективном хранении и обработке очень больших объемов информации. Уже сейчас известны примеры хранилищ данных, содержащих терабайты информации. По данным консалтинговой компании Meta Group, около половины корпораций, использующих или планирующих использовать хранилища данных, предполагает довести их объем до сотен гигабайт. Проблемой таких больших хранилищ является то, что накладные расходы на внешнюю память возрастают нелинейно при возрастании объема хранилища. Исследования, проведенные на основе тестового набора TPC-D, показали, что для баз данных объемом в 100 гигабайт потребуется внешняя память объемом в 4.87 раза большая, чем нужно собственно для полезных данных. При дальнейшем росте баз данных этот коэффициент увеличивается

Архитектуры хранения

Сегодня можно выделить одну традиционную - Direct Attached Storage (DAS) и две уже уверенно входящие в жизнь архитектуры хранения данных - Network Attach Storage (NAS) и Storage Area Network (SAN).

Direct Attached Storage (DAS). Технология DAS подразумевает прямое (непосредственное) подключение накопителей к серверу или к ПК. При этом накопители (жесткие диски, ленточные накопители) могут быть как внутренними, так и внешними. Простейший случай DAS-системы - это один диск внутри сервера или ПК. Кроме того, к DAS-системе можно отнести и организацию внутреннего RAID-массива дисков с использованием RAID-контроллера.

Стоит отметить, что, несмотря на формальную возможность использования термина «DAS-системы» по отношению к одиночному диску или к внутреннему массиву дисков, под DAS-системой принято понимать внешнюю стойку или корзину с дисками, которую можно рассматривать как автономную СХД. Кроме независимого питания, автономные DAS-системы имеют специализированный контроллер (процессор) для управления массивом накопителей. К примеру, в качестве такого контроллера может выступать RAID-контроллер с возможностью организации RAID-массивов различных уровней.

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

В качестве интерфейсов для подключения накопителей (внутренних или внешних) в технологии DAS могут выступать интерфейсы SCSI (Small Computer Systems Interface), SATA, PATA и Fibre Channel. Если интерфейсы SCSI, SATA и PATA применяются преимущественно для подключения внутренних накопителей, то интерфейс Fibre Channel служит исключительно для подключения внешних накопителей и автономных СХД. Преимущество интерфейса Fibre Channel здесь заключается в том, что он не имеет жесткого ограничения по длине и может использоваться в том случае, когда сервер или ПК, подключаемый к DAS-системе, находится от нее на значительном расстоянии. Интерфейсы SCSI и SATA также могут применяться для подключения внешних СХД (в этом случае интерфейс SATA называют eSATA), однако они имеют строгое ограничение по максимальной длине кабеля, соединяющего DAS-систему и подключаемый сервер.

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

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

Network Attached Storage (NAS). NAS-системы - это сетевые системы хранения данных, непосредственно подключаемые к сети точно так же, как и сетевой принт-сервер, маршрутизатор или любое другое сетевое устройство. Фактически NAS-системы представляют собой эволюцию файл-серверов. Для того чтобы понять разницу между традиционным файл-сервером и NAS-устройством, вспомним, что традиционный файл-сервер представляет собой выделенный компьютер (сервер), на котором хранится информация, доступная пользователям сети. Для хранения информации могут использоваться жесткие диски, устанавливаемые в сервер (как правило, они располагаются в специальных корзинах), либо подключенные к серверу DAS-устройства. Администрирование файл-сервера реализуется с помощью серверной операционной системы. Такой подход к организации систем хранения данных в настоящее время является наиболее популярным в сегменте небольших локальных сетей, но имеет один существенный недостаток. Дело в том, что универсальный сервер - отнюдь не дешевое решение.

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

В сравнении с традиционными файловыми серверами, NAS-устройства являются более производительными и менее дорогими. В настоящее время практически все NAS-устройства ориентированы на использование в сетях Ethernet (Fast Ethernet, Gigabit Ethernet) на основе протоколов TCP/IP. Доступ к устройствам NAS осуществляется с помощью специальных протоколов доступа к файлам. Наиболее распространенными протоколами файлового доступа являются протоколы CIFS, NFS и DAFS.

Storage Area Network (SAN). SAN - это специализированная сетевая инфраструктура для хранения данных (сеть хранения данных). Эти сети интегрируются в виде отдельных специализированных подсетей в состав локальной (LAN) или глобальной (WAN) сети.

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

Для построения сетей SAN используется либо стандарт Fibre Channel (FC), либо стандарт iSCSI.

Что выбрать — DAS, NAS или SAN?. До сих пор во всем мире, а тем более в России все еще господствует DAS. Такая ситуация, скорее всего, сохранится в сегментах рынка домашних компьютеров, малого бизнеса и больших машин (mainframes). Нишу средних и крупных предприятий постепенно займут SAN- и NAS-системы, причем в комбинированном использовании

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

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

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

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

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

По сведениям IDC, за последние десять лет из 40% американских компаний, полностью лишившихся своих данных в результате пренебрежительного отношения к технологиям их хранения, только 10% смогли вернуться к бизнесу и только 4% (!) из них выжили в течение последующих трех лет.

Хранилища данных отличаются от баз данных или систем оперативной обработки транзакций (OLTP-систем) своим назначением и устройством:

  • хранилище содержит данные, позволяющие проводить анализ деловых операций;

  • хранилища обычно представляют собой системы, доступные только для чтения;

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

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

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

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