Главная » Microsoft SQL Server, Базы данных » Хранилища данных, его параметры и методы

0

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

?               Уровень куба. Начните с установки параметров хранилища данных на уровне куба, чтобы все дочерние объекты (измерения, группы мер и разделы) имели значения по умолчанию. Чтобы открыть диалоговое окно Cube Storage Settings, выделите куб в конструкторе кубов, а затем щелкните на эллипсе в его свойстве Proactive Caching.

?               Уровень группы мер. Эти параметры устанавливают в том случае, когда значения по умолчанию, установленные в кубе, не подходят для данной группы мер. Диалоговое окно параметров Measure Group Storage Settings открывается либо путем щелчка на эллипсе в параметре Proactive Caching группы мер, либо путем выбора ссылки Storage Settings в представлении разделов, когда не выделен ни один конкретный раздел.

?               Уровень объекта (конкретного раздела или измерения). Параметры хранилища устанавливаются для одного конкретного объекта. Диалоговое окно параметров Dimension Storage Settings открывается путем щелчка на эллипсе в параметре Proactive Caching измерения в конструкторе измерений, а окно Partition Storage Settings — путем выбора соответствующего раздела и щелчка на ссылке Storage Settings в представлении разделов. Диалоговое окно Parition Storage Settings также является первой страницей мастера проектирования агрегаций.

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

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

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

Упреждающее кэширование управляется множеством параметров диалогового окна Storage Options, однако все они предназначены для одной и той же базовой процедуры. Служба анализа уведомляется каждый раз, когда в данных источника выполняются какие- либо изменения, затем выжидается пауза в обновлениях, после чего выполняется перестройка кэша (раздела). Если новое уведомление об обновлении данных поступило до завершения процесса перестройки, то перестройка начинается с начала. Если процесс перестройки занимает время, большее установленного предела, то кэш возвращается в состояние ROLAP до завершения перестройки.

Параметры, управляющие процессом перестройки, доступны во вкладке General диалогового окна Storage Options (предварительно установите в ней флажок Enable Proactive Caching, чтобы разрешить обновления).

?               Silence Interval. Этот параметр определяет продолжительность отсутствия уведомлений после последнего обновления, когда запускается процесс перестройки. Приемлемое значение этой настройки зависит от профиля использования таблицы; этот период времени должен быть достаточно длинным, чтобы убедиться в окончательном завершении работы пакета обновлений.

?               Silence Override Interval. По истечении заданного в этом параметре интервала времени начинается перестройка, независимо от наличия интервала простоя, установленного в параметре Silence Interval.

?               Latency. Этот параметр определяет промежуток времени, прошедший после получения первого уведомления об обновлении, по истечении которого запросы преобразуются в ROLAP. Данный параметр гарантирует, что данные, возвращаемые службой анализа, не отстанут от реального положения вещей в источнике данных более чем на установленное время. Естественно, это может привести к существенной дополнительной нагрузке на сервер и базу данных в период использования запросов ROLAP, в зависимости от объема и сложности запросов, поступивших в данный период.

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

?               Bring online immediately. Установка этого флажка позволяет сделать новый куб доступным для запросов ROLAP сразу же после создания, не дожидаясь завершения процесса построения MOLAP. Это позволит повысить доступность за счет увеличения нагрузки на реляционные базы данных и серверы, которым придется обрабатывать запросы ROLAP.

?               Enable ROLAP aggregations. Создает представления для поддержки агрегаций ROLAP.

?               Apply storage settings to dimension. Этот параметр доступен только на уровне кубов и групп мер. Установка этого флажка позволяет применить те же настройки хранилища ко всем измерениям, связанным с данным кубом или группой мер.

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

Уведомления SQL Server

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

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

Уведомления, инициируемые клиентом

Уведомления, инициируемые клиентом, позволяют приложениям, изменяющим таблицы данных, непосредственно уведомлять службу анализа о таких событиях. При этом приложение отправляет на сервер команду NotifyTableChange с указанием измененной таблицы. Во всем остальном обработка таких уведомлений выполняется так же, как и обработка обычных уведомлений SQL Server.

Уведомления опроса

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

Механизм опроса работает с помощью запуска запросов, возвращающих некоторые метки из таблицы источника; он отмечает, когда эти метки изменились. Например, если исходная таблица factSales использует постоянно увеличивающийся первичный ключ Sales ID, для опроса можно использовать следующий запрос:

SELECT МАХ(SalesID) FROM factSales

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

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

SELECT * FROM factSales

WHERE SalesID > COALESCE(?,-1) AND SalesID <= ?

Функция COALESCE вставлена на случай обработки пустой таблицы, когда данные ранее не обрабатывались. Для включения дифференциальных обновлений установите флажок Enable Incremental Updates и введите запрос обработки и отслеживаемую таблицу для каждого запроса опроса.

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

По теме:

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