Главная » Microsoft SQL Server, Базы данных » Целостность данных и Служба анализа

0

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

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

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

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

Л      Ключевым достоинством OLAP в целом и модели UDM в частности является со-

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

Обработка пустых значений

Режим интерпретации пустых значений зависит от настройки параметра NullProcessing конкретного объекта.

В мерах этот параметр является частью определения источника и может принимать несколько значений.

?               ZeroOrBlank. В числовых данных пустые значения преобразуются в нули, а в символьных — в пробелы.

?               Automatic. То же, что и ZeroOrBlank.

?               Error. Сервер инициирует ошибку и отвергает запись.

?               Preserve. Сохраняет пустые значения без изменения.

Для обоснованного выбора значения этого параметра лучше всего посмотреть, как должно вычисляться среднее значение в данной мере. Если в усреднении лучше использовать только непустые значения, то лучше установить значение Preserve. В противном случае значение NullOrZero обеспечит усреднение, рассматривающее пустые значения как нулевые.

В измерениях параметр Null Processing может принимать и дополнительное значение.

?               UnknownMember. Пустое значение интерпретируется как неизвестный член.

В измерениях параметр Null Processing используется в нескольких контекстах.

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

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

?               Каждая ячейка в представлении Dimension Usage, связанная с группой мер или измерением обычным отношением, содержит во вкладке Advanced диалогового окна Measure Group Bindings параметр NullProcessing. Этот параметр используется, когда связанный столбец в таблице фактов оказывается пустым.

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

В отношениях измерений используемое по умолчанию значение Automatic на практике довольно опасно. Если в ключевом столбце встретилось пустое значение, то оно будет преобразовано в нуль, что может оказаться допустимым ключом в большинстве измерений, в результате чего этому члену будут соответствовать пустые записи. Оптимальное решение предполагает присвоение этому параметру значения UnknownMember, если ожидается наличие пустых значений, или Error, если не ожидается. В качестве альтернативы можно создать член измерения для нулевого значения и присвоить ему имя “Invalid”, что будет соответствовать режиму автоматической обработки пустых значений.

Параметр UnknownMember

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

?               None. Неизвестный член отключен в измерении, и любая попытка присвоить ему значение завершится ошибкой. Это значение принято по умолчанию.

?               Visible. Неизвестный член включен и доступен для запросов.

?               Hidden. Неизвестный член включен, однако напрямую не доступен для запросов. В то же время уровень измерения (All) будет содержать вклад неизвестного члена, а функция MDX UnknownMember может обеспечить к нему прямой доступ.

По умолчанию неизвестный член имеет имя Unknown; его можно изменить, установив значение параметра UnknownMemberName измерения.

Конфигурирование ошибок

При возникновении ошибок целостности данных и некоторых других параметр ErrorConfiguration определяет, как эти ошибки будут обработаны. Изначально для этого параметра установлено значение (default), однако если его изменить в списке на (custom), то станут доступны восемь параметров. Параметр ErrorConfiguration присутствует во множестве объектов, однако обычно его устанавливают только в измерениях и группах мер.

Параметры конфигурирования обработки ошибок описаны ниже.

?               KeyDuplicate. Это событие генерируется, когда при построении измерения встречаются дубликаты ключей. По умолчанию параметр имеет значение IgnoreError (игнорировать ошибку), однако доступны и другие значения: ReportAndContinue (создать отчет и продолжить) и ReportAndStop (создать отчет и остановить выполнение). Установка параметра в значение IgnoreError приведет к вставке в измерение всех значений атрибутов; при этом служба анализа случайным образом выберет то из них, которое будет ассоциировано с ключом. Например, если таблица измерения товаров содержит две строки товаров с идентификатором 73, один с названием Apple, а другой — Orange, то и первый и второй появятся как члены атрибута названия товара, но только один из этих атрибутов будет ассоциироваться с данным товаром в транзакциях. И наоборот, если в обеих строках именем будет Apple, то в измерении имени товаров будет присутствовать только один атрибут Apple, и пользователь куба даже не заметит, что произошло дублирование записей в исходной таблице.

?               KeyErrorAction. Это событие генерируется, когда возникает ошибка KeyNot Found, т.е. когда в ассоциированной таблице не найдено ключевое значение. В группах мер такое случается, когда таблица фактов содержит ключ измерения, который не может быть найден в таблице измерений. Этот параметр может принимать значения ConvertToUnknown (преобразовать в неизвестный член; принято по умолчанию) и DiscardRecord (отвергнуть запись).

?               KeyErrorLimit. Количество ошибок ключа, допустимых до инициирования действия, указанного в параметре KeyErrorLimitAction. По умолчанию установлено значение 0; это значит, что действие будет выполнено после первой же ошибки ключа. Установка значения -1 не ограничивает число допустимых ошибок.

?               KewErrorLimitAction. Действие, инициируемое при превышении количеством ошибок ключа значения, заданного в параметре KeyErrorLimit. По умолчанию обработка прекращается (значение StopProcessing). Можно также использовать значение StopLogging, при котором обработка продолжается, но регистрация ошибок в журнале прекращается.

?               KeyErrorLogFile. Имя файла, в который будут заноситься ошибки ключа.

?               KeyNotFound. Этот параметр определяет, как ошибки отсутствия ключа взаимодействуют с параметром KeyErrorLimit. По умолчанию используется значение ReportAndContinue, которое включает эти ошибки в общий подсчет. Значение ReportAndStop позволяет занести ошибку в журнал и немедленно завершить обработку, независимо от настройки параметров KeyErrorLimit и KeyErrorAction. Значение IgnoreError может оказаться полезным, когда ожидается наличие множества ошибок отсутствия ключа; это допускает отображение на неизвестный член, проверяя относительно параметра KeyErorLimit только другие ошибки.

?               NullKeyConvertedToUnknown. Концепция этого параметра идентична KeyNotFound,

но все пустые ключи преобразуются в неизвестный член (значением параметра

NullProcessing должно быть UnknownMember) вместо генерации ошибки KeyNotFound. По умолчанию принято значение IgnoreError.

?               NullKeyNotAllowed. Концепция этого параметра идентична KeyNotFound, однако пустые ключи не допускаются (параметр NullProcessing принимает значение Error) вместо генерации ошибки KeyNotFound. По умолчанию принято значение ReportAndContinue.

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

Пакеты обновлений

Выход пакетов обновлений SP1 и SP2 внес некоторые коррективы в работу службы анализа.

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

?               Проект AdventureWorks Analysis Services был обновлен. Если ранее вы уже развертывали его в экземпляре SQL Server, то теперь вы должны его повторно развернуть, чтобы увидеть все изменения.

?               Версия Microsoft Office 2007 требует установки SQL Server 2005 Analysis Services SP2 для поддержки всех своих функций бизнес-аналитики. Если установить версию службы анализа без пакета обновлений SP2, то все средства Microsoft Office, ориентированные на этот пакет, будут отключены.

?               Если пользовательская иерархия не определена как естественная, на экран выводится предупреждение.

?               Функции MDX Drilldown имеют новый аргумент, позволяющий задавать прохождение только заданных кортежей.

?               В метод MDX CREATE добавлено новое свойство SCOPE_ISOLATION. Это свойство позволяет разрешать вычисления, определенные запросами, в пределах сессий перед вычислением куба, а не после него.

?               Добавлена поддержка множества вложенных таблиц.

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

?               Добавлена ограниченная поддержка обозревателей раскрытия данных моделями локального раскрытия.

?               Перераспределение элементов управления обозревателей раскрытия данных теперь зависит от ADOMD.NET.

Резюме

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

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

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

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