Главная » SQL, Базы данных » ПОДГОТОВКА ДАННЫХ ДЛЯ СИСТЕМ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ

0

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

Извлечение данных

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

Очистка данных

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

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

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

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

Преобразование и консолидация данных

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

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

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

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

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

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

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

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

Загрузка данных

Разработчики СУБД придают большое значение повышению эффективности операций загрузки данных. В данном случае операцию загрузки данных разобьем на следующие этапы: а) пересылка преобразованных и консолидированных данных в базу данных поддержки принятия решений; б) проверка согласованности данных (т.е. проверка их целостности); в) построение всех необходимых индексов. Ниже приведены краткие комментарии относительно каждого из этих этапов.

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

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

Обновление данных

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

Банки оперативных данных

Банки  оперативных данных (Operational Data Store  — ODS)  представляют  собой "предметно-ориентированные, интегрированные, изменчивые, т.е.  обновляемые, текущие или почти текущие коллекции данных" [22.20]. Другими словами, банки оперативных данных — это специализированные базы данных.  Термин предметно-ориентированные  означает,  что  рассматриваемые  данные  представляют  некоторую  конкретную предметную область, например информацию о заказчиках, товарах и т.п. Банки оперативных данных могут использоваться для разных целей — как область накопления для физической реорганизации извлеченных оперативных данных, как средство формирования оперативных отчетов, а также как средство поддержки оперативных решений. Кроме того, банки оперативных данных могут служить местом консолидации данных, если оперативные данные поступают из нескольких источников. Поэтому они могут быть предназначены для многих целей.

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

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

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии