Mds stores что за процесс. «Лечим» Spotlight от постоянной индексации дисков

«Введение Предварительные условия Требования Используемые компоненты Условные обозначения Буферизация сообщения Буферный реестр Процесс MDS Процессы клиента MDS Получите статистику измерения Водяные...»

Введение

Предварительные условия

Требования

Используемые компоненты

Условные обозначения

Буферизация сообщения

Буферный реестр

Процесс MDS

Процессы клиента MDS

Получите статистику измерения

Водяные знаки

Примечания обновления

Примечания обслуживания

Дополнительные сведения

Введение

Этот документ описывает, как можно измерить реестр размещения буферов Message

delivery service (MDS) для удовлетворения всех потребностей в Cisco Intelligent Contact Management (ICM) / Среда предприятия Контактного центра ip (IPCC). Этот документ также предоставляет примечания обновления и обслуживания.

Примечание: Этот документ не применяется к ICM 7.0, потому что было изменено средство управления памятью.

Предварительные условия Требования

Предприятие ICM/IPCC Cisco q Используемые компоненты Сведения, содержащиеся в данном документе, касаются следующих версий программного обеспечения и оборудования:

Версия 4.6.

2, 5.x и 6 ICM Enterprise Cisco. x q Версия 4.6.

2, 5.x и 6 Cisco IPCC Enterprise. x q Сведения, представленные в этом документе, были получены от устройств, работающих в специальной лабораторной среде. Все устройства, описанные в этом документе, были запущены с чистой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.



Условные обозначения Дополнительные сведения об условных обозначениях см. в документе Условные обозначения технических терминов Cisco.

Буферизация сообщения Один Процесс MDS работает на каждой стороне Маршрутизатора ICM Cisco и Периферийного шлюза (PG). Process start Node Manager (NM) Процесс MDS. Процесс MDS предоставляет функцию Переключения сообщений для клиентов на ее стороне системы.

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

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

Процесс MDS внедряет схему управления буферами. Когда сообщение находится в очереди, увеличениях номера полного буфера. Когда клиент читает сообщение, сообщение оставляет очередь и буферные уменьшения номера. Размер очереди составляет 90% доступных буферов в буферном пуле. Верхний порог, который можно настроить, задает максимальное число буферов для выделения сообщениям очереди. Если сообщение, которое присоединяется к очереди, заставляет буферы превышать уровень верхнего порога, Процесс MDS объявляет сбой и останавливается.

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

Буферный реестр Процесс MDS Для Процесса MDS вот путь навигации для максимального реестра выделенного буфера в

Cisco ICM Version 4.6.2:

Например, рисунок 1 отображает ключ реестра для BufferLimit и BufferMaxFree для Процесса MDS на PG1A в версии 5.x и 6 ICM/IPCC Cisco. x.

Рисунок 1? Реестр процесса MDS для BufferLimit и BufferMaxFree Процессы клиента MDS Для клиентов MDS вот путь навигации для максимального реестра выделенного буфера в

Cisco ICM Version 4.6.2:

Вот путь навигации для максимального реестра выделенного буфера в Cisco ICM Version

Например, рисунок 2 отображает ключ реестра для BufferLimit и BufferMaxFree для процесса pgag на PG1A в версии 5.x и 6 ICM/IPCC Cisco. x.

Рис. 2? Реестр процесса клиента MDS для BufferLimit и BufferMaxFree Получите статистику измерения Можно использовать команду dumplog с / аргументом/bin для получения статистики буфера.

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

Вот пример команды dumplog, которую можно выполнить для сбора двух часов данных MDS:

C:\icm\lab60\ra\logfilesdumplog mds /bin /hr 2

Вот частичные выходные данные команды dumplog:

Водяные знаки Первая часть статистики представляет отметку для размещения буферов.

Рис. 3? Статистика буферного пула

Вот являются значения и область некоторых сроков этим отчётом использование:

Выделенные буфера Max представляют количество буферов в использовании (см.

q розовый прямоугольник на рисунке 3).

(Маленький) Freelist Max представляет буферы в использовании, которые выделены от q Маленького Freelist (см. зеленый прямоугольник на рисунке 3).

Freelist Max (Среда) представляет буферы в использовании, которые выделены от q Среднего Freelist (см. голубой прямоугольник на рисунке 3).

(Большой) Freelist Max представляет буферы в использовании, которые выделены от q Большого Freelist (см. черный прямоугольник на рисунке 3).

Этот отчёт представляет изображение размещения буферов в течение прошлого часа.

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

Два Требования к буферу MDS:

–  –  –

Для версии ICM 4.6.2 вот путь навигации для максимального реестра выделенного буфера:

Events from September 20, 2005:11:51:06 ra-mds MDS Process is reporting periodic overall metering statistics. *** Buffer Pool Statistics *** Current / High / Max Allocated Buffers = 374 / 397 / 65536 Current / High / Max Freelist (Small) = 344 / 345 / 400 Current / High / Max Freelist (Medium) = 10 / 10 / 10 Current / High / Max Freelist (Large) = 5 / 5 / 5 Buffer Allocs Small / Medium / Large / Total = 18938158 / 1043172 / 4749 / 19986079 Allocs from Freelist Small / Medium / Large / Total = 18937799 / 1042064 / 4742 / 19984605 Buffer Frees Small / Medium / Large / Total = 22322177 / 1060637 / 5161 / 23387975 Frees to Freelist Small / Medium / Large / Total = 18938143 / 1042074 / 4747 / 19984964 Dups = 3401911 *** Synchronizer Statistics *** Total messages ordered = 4292869 MDS duplicates = 308 DMP duplicates = 0 Local low priority input msgs / bytes = 1119811 / 107490676 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 12 / 3136 Local high priority input msgs / bytes = 848853 / 24508284 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 2 / 148 Local medium priority input msgs / bytes = 61373 / 3017131 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 7 / 11480 Remote low priority input msgs / bytes = 131595 / 9598544 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 15 / 2472 Remote high priority input msgs / bytes = 6236914 / 65565092 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 8 / 228 Remote medium priority input msgs / bytes = 318 / 52698 Current input queue msgs / bytes =0/0 Highest input queue msgs / bytes = 3 / 7476 Remote low priority output msgs / bytes = 1118701 / 107385640 Current output queue msgs / bytes = 0 / 0 Highest output queue msgs / bytes = 8 / 3136 Remote high priority output msgs / bytes = 4301262 / 93354648 Current output queue msgs / bytes = 0 / 0 Highest output queue msgs / bytes = 7 / 204 Remote medium priority output msgs / bytes = 61289 / 3012988 Current output queue msgs / bytes = 0 / 0 Highest output queue msgs / bytes = 5 / 7476 Current local low priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 16 / 3168 Current local high priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current local medium priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 7 / 11524 Current remote low priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current remote high priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current remote medium priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current low priority timed delivery queue msgs / bytes = 0 / 0 Highest msgs / bytes = 336 / 32736 Current high priority timed delivery queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current medium priority timed delivery queue msgs / bytes = 0 / 0 Highest msgs / bytes = 32 / 24416 Clock rate fast / slow / normal = 0 / 0 / 0 Output waits / notifies = 2641679 / 2642109 *** State Transfer Statistics *** Attempts / Successful completions = 11 / 11 Bytes received / transmitted = 383710 / 118572711:51:06 ra-mds MDS Process is reporting periodic per-client summary meters.

*** Client 128 Statistics *** Connects / Disconnects = 0 / 0 Messages / Bytes received from client = 0 / 0 Messages / Bytes sent to client = 0 / 0 Current output queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0....11:51:06 ra-mds MDS Process is reporting periodic per-client summary meters. *** Client 70 Statistics *** Connects / Disconnects = 0 / 0 Messages / Bytes received from client = 0 / 0 Messages / Bytes sent to client = 0 / 0 Current output queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0..

Вот ключи:

BufferLimitBufferLimit определяет максимальный выделенный буфер (см. стрелку на q рисунке 1 и рисунке 2).

BufferMaxFreeBufferMaxFree представляет выделенный freelist максимума (см. стрелку B q на рисунке 1 и рисунке 2).

Наиболее важная информация в статистике измерения является значением Высоких Выделенных буферов (см. рисунок 3). Цель должна поддержать значение между 65% и 75% Максимальных Выделенных буферов. В течение любого времени в течение выбранного периода, если номер становится выше, чем 75%, необходимо удвоить значение в BufferLimit.

Примечание: Значение всегда является питанием два.

Сообщение об ошибках размещения буферов

Когда буферный пул пуст, выходы процесса. Файл журнала отображает это сообщение:

Events from September 20, 2005:11:51:06 ra-mds MDS Process is reporting periodic overall metering statistics. *** Buffer Pool Statistics *** Current / High / Max Allocated Buffers = 374 / 397 / 65536 Current / High / Max Freelist (Small) = 344 / 345 / 400 Current / High / Max Freelist (Medium) = 10 / 10 / 10 Current / High / Max Freelist (Large) = 5 / 5 / 5 Buffer Allocs Small / Medium / Large / Total = 18938158 / 1043172 / 4749 / 19986079 Allocs from Freelist Small / Medium / Large / Total = 18937799 / 1042064 / 4742 / 19984605 Buffer Frees Small / Medium / Large / Total = 22322177 / 1060637 / 5161 / 23387975 Frees to Freelist Small / Medium / Large / Total = 18938143 / 1042074 / 4747 / 19984964 Dups = 3401911 *** Synchronizer Statistics *** Total messages ordered = 4292869 MDS duplicates = 308 DMP duplicates = 0 Local low priority input msgs / bytes = 1119811 / 107490676 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 12 / 3136 Local high priority input msgs / bytes = 848853 / 24508284 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 2 / 148 Local medium priority input msgs / bytes = 61373 / 3017131 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 7 / 11480 Remote low priority input msgs / bytes = 131595 / 9598544 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 15 / 2472 Remote high priority input msgs / bytes = 6236914 / 65565092 Current input queue msgs / bytes = 0 / 0 Highest input queue msgs / bytes = 8 / 228 Remote medium priority input msgs / bytes = 318 / 52698 Current input queue msgs / bytes =0/0 Highest input queue msgs / bytes = 3 / 7476 Remote low priority output msgs / bytes = 1118701 / 107385640 Current output queue msgs / bytes = 0 / 0 Highest output queue msgs / bytes = 8 / 3136 Remote high priority output msgs / bytes = 4301262 / 93354648 Current output queue msgs / bytes = 0 / 0 Highest output queue msgs / bytes = 7 / 204 Remote medium priority output msgs / bytes = 61289 / 3012988 Current output queue msgs / bytes = 0 / 0 Highest output queue msgs / bytes = 5 / 7476 Current local low priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 16 / 3168 Current local high priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current local medium priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 7 / 11524 Current remote low priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current remote high priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current remote medium priority ordering queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current low priority timed delivery queue msgs / bytes = 0 / 0 Highest msgs / bytes = 336 / 32736 Current high priority timed delivery queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0 Current medium priority timed delivery queue msgs / bytes = 0 / 0 Highest msgs / bytes = 32 / 24416 Clock rate fast / slow / normal = 0 / 0 / 0 Output waits / notifies = 2641679 / 2642109 *** State Transfer Statistics *** Attempts / Successful completions = 11 / 11 Bytes received / transmitted = 383710 / 118572711:51:06 ra-mds MDS Process is reporting periodic per-client summary meters.

*** Client 128 Statistics *** Connects / Disconnects = 0 / 0 Messages / Bytes received from client = 0 / 0 Messages / Bytes sent to client = 0 / 0 Current output queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0....11:51:06 ra-mds MDS Process is reporting periodic per-client summary meters. *** Client 70 Statistics *** Connects / Disconnects = 0 / 0 Messages / Bytes received from client = 0 / 0 Messages / Bytes sent to client = 0 / 0 Current output queue msgs / bytes = 0 / 0 Highest msgs / bytes = 0 / 0..

Примечание: xxxx представляет количество буферов. Например, 1024, 2048, 4096 и т.д.

Используйте Служебную программу Dumplog для просмотра файла журнала.

Исчерпанный буферный пул: Пример 1 Этот журнал предоставляет пример процесса lgr MDS, который исчерпал буфер (см. стрелку на рисунке 4).

Рис. 4? Dumplog процесса LGR MDS Разверните текущий BufferLimit для решения проблемы. Однако необходимо тогда контролировать процесс, чтобы гарантировать, что не возвращается ошибка.

Исчерпанный буферный пул: Случай 2 В некоторых случаях сообщение об ошибках появляется, но расширение текущего BufferLimit не решает проблему. Это сообщение об ошибках является просто признаком.

Например, серия журналов сохранены, прежде чем Процесс MDS останавливается. Эти журналы представляют отчет с количеством буферов, выделенных среди клиентов MDS.

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

Рис. 5? Dumplog Процесса MDS Пример на рисунке 5 указывает, что существует 4085 сообщений, помещенных в очередь для процесса Open peripheral controller (OPC), и у всех других клиентов нет выделенных буферов. Данный пример демонстрирует, что процесс OPC является причиной проблемы, а не максимальным размером размещения буферов.

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

Перед выполнением обновления от 4.6.2 до 5.0 или 6.0 Cisco рекомендует вам удвоить BufferLimit и параметры настройки BufferMaxFree (см. рисунок 1). Когда вы обновляете от 5.0 до 6.0, вы не должны удваивать параметры настройки BufferLimit при удвоении параметров настройки, когда вы обновили от 4.6.2 до 5.0. Если вы не уверены в том, увеличили ли вы значение BufferLimit во время предыдущего обновления, проверьте, что статистические данные использования буфера, выделенные в, Получают Статистику Измерения, чтобы определить, необходимо ли увеличить буферы.

Примечание: Утечка памяти не является беспокойством, потому что буферы, заданные BufferLimit (кроме тех в списках свободной памяти), не предварительно выделены. Кроме того, буферы освобождены к системной куче в конечном счете. Однако очень большой BufferLimit (по сравнению с ОЗУ доступной системы) может замаскировать базовую перегрузку связи и замедлить всю систему. В некоторых ситуациях лучшее решение состоит в том, чтобы утверждать процесс, поскольку BufferLimit достигнут, и полагайтесь на дизайн отказоустойчивости системы для переключений при отказе учитывая возможные ограничения ресурса. сфере деятельности, обеспечение осознания мотивов выбора профессии педагога-психолога; формирование обобщенного образа педагога-психолога-профессионала, установки на профессиональн...» транскрипции и полимеразной цепной реакции (ОТ-ПЦР) ОТ-ГЕПАТОГЕН-С КОЛИЧЕСТВЕННЫЙ Регистрационное удостоверение № ФСР 2008/03508 ВНИМАНИЕ!...»

«НАРОДНАЯ УКРАИНСКАЯ АКАДЕМИЯ ПРОГРАММА И МЕТОДИЧЕСКИЕ РЕКОМЕНДАЦИИ ПО ПРОХОЖДЕНИЮ ОЗНАКОМИТЕЛЬНОЙ ПСИХОЛОГО-ПЕДАГОГИЧЕСКОЙ ПРАКТИКИ Для студентов I курса факультета "Социальный менеджмент" Изд...»

«1. Краткое содержание программы Программа включает сведения о порядке проведения вступительного экзамена в аспирантуру по направлению подготовки 44.06.01 Образование и педагогические науки. Направленность "Теория и методика обучения и воспитания (иностранный язык)" Настоящая программа соответствует требованиям, предъявляемым к выпускникам...»

«Дети группы риска и работа с ними в условиях дошкольного учреждения Неполная семья это не только семья разведнных родителей, но и семья, потерявшая кормильца, семья матери – одиночки, а также женщины, которая решилась взять на воспитание...»
Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам , мы в течении 1-2 рабочих дней удалим его.

(MDS) в MS SQL Server 2012. До недавнего времени я был знаком с этим продуктом, входящим в состав MS SQL Server 2012 (Business Intelligence and Enterprise editions), только в теории и ждал удачного случая, чтобы проверить его на практике, и вот такой случай представился.

Вводные данные

Мой клиент использует BI-решение на базе Microsoft SQL Server 2012 Business Intelligence Edition. Центром этой BI-системы является хранилище данных (Data Warehouse), которое наполняется с помощью SSIS-пакетов из транзакционных систем (OLTP). Хранилище данных, в свою очередь, служит источником для многомерной модели данных (Multidimensional Data Model). На основе многомерной модели данных аналитики заказчика формируют отчетность в Excel, используя сводные таблицы (Pivot Tables). Поскольку источников данных много, и пользователи транзакционных систем управляют справочниками хаотично, заказчик обозначил потребность в решении, которое позволяло бы создать в хранилище данных иерархии для некоторых измерений, которые были бы удобны для целей аналитического анализа. Так, например, информация об организационной структуре компании, хранящаяся в измерении «Подразделения» (таблица dbo.dimDivisions), импортируемая из OLTP-систем, удобна для оперативных отчетов, формируемых в OLTP-системах, но не подходит для целей анализа в BI-системе.

Требования бизнеса

Формальные требования бизнес-заказчика можно кратко описать следующим образом:
  • Разработать инструмент, позволяющий управлять данными о подразделениях компании для целей аналитической отчетности.
  • Использовать новые данные о подразделения в существующем BI-решений.
  • Изменения не должны повлиять на работу OLTP-систем.

Предварительная оценка и выбор решения

На основании имеющихся вводных данных и бизнес-требований заказчику было предложено следующее решение:
  • Добавить в хранилище данных дополнительное измерение для хранения данных об орг. структуре для целей аналитической отчетности.
  • Обеспечить связь между записями нового измерения и измерения «Сотрудники».
  • Изменить многомерную модель данных с учетом изменения структуры хранилища данных.
  • Выполнить настройку Master Data Services. Под настройкой понимается создание возможности ввода и редактирования данных о сотрудниках и подразделениях вручную, а так же настройка, необходимая для импорта/экспорта данных в/из MSD.
  • Обеспечить автоматический импорт данных о новых сотрудниках из хранилища данных в Master Data Services.
  • Обеспечить автоматический экспорт данных о подразделениях и принадлежности сотрудников к подразделениям сотрудниках из Master Data Services в хранилище данных.

Реализация решения

Доработка хранилища данных
Итак, поехали по-порядку. Сначала создадим в хранилище данных новое измерение «Произвольные подразделения» (dbo.dimDerivedDivisions) и свяжем его с измерением «Сотрудники» (dbo.dimEmploees). SQL-скрипт для этой задачи выглядит следующим образом:

Создадим новое измерение "Произвольные подразделения" CREATE TABLE dbo.dimDerivedDivisions (id int NOT NULL primary key identity(1, 1), parentId int NULL, sourceCode int NOT NULL, sourceParentCode int NULL, name nvarchar(100) NOT NULL DEFAULT ("N/A"), lineageDate datetime DEFAULT GETDATE(), lineageSource nvarchar(255) NOT NULL DEFAULT ("")); --Определим внешний ключ для parentId, ссылающийся на dbo.dimDerivedDivisions(id) для обеспечения иерархии родитель-потомок ALTER TABLE dbo.dimDerivedDivisions ADD CONSTRAINT fk_dbo_dimDerivedDivisions_dbo_dimDerivedDivisions FOREIGN KEY (parentId) REFERENCES dbo.dimDerivedDivisions(id); --В новое измерение добавим значение по умолчанию, на которое будут ссылаться не распределенные сотрудники SET IDENTITY_INSERT dbo.dimDerivedDivisions ON; INSERT INTO dbo.dimDerivedDivisions (id, parentId, sourceCode, sourceParentCode, name, lineageDate, lineageSource) SELECT 0, NULL, 0, NULL, "N/A", GETDATE(), "Запись введена вручную" WHERE NOT EXISTS (SELECT id FROM dbo.dimDerivedDivisions WHERE id = 0); SET IDENTITY_INSERT dbo.dimDerivedDivisions OFF; --Добавим новую колонку в измерение "Сотрудники" ALTER TABLE dbo.dimEmployees ADD derivedDivisionId int NOT NULL DEFAULT(0); --Определим внешний ключ, ссылающийся на dbo.dimDerivedDivisions(id) ALTER TABLE dbo.dimEmployees ADD CONSTRAINT fk_dbo_dimEmployees_dbo_dimDerivedDivisions FOREIGN KEY (derivedDivisionId) REFERENCES dbo.dimDerivedDivisions(id);

Доработка многомерной модели данных
Теперь добавим новое измерение в многомерную модель данных. Для этого откроем проект многомерной модели данных в SQL Server Data Tools и добавим новую таблицу dbo.dimDerivedDivisions в Data Source View. Результат выглядит следующим образом:

Чтобы не уходить далеко от темы, кратко опишу процесс доработки многомерной модели. В многомерной модели данных создаем новое измерение «Произвольные подразделения», настраиваем связь нового измерения с существующими таблицами фактов через измерение «Сотрудники», деплоим и процессим куб:

Настройка Master Data Services
Теперь все структуры данных для подготовки аналитической отчетности в разрезе нового измерения «Произвольные измерения» готовы, приступаем к самому главному - к настройке Master Data Services. Для этого в браузере переходим по ссылке, которую дал нам SQL Server Administrator, и попадаем в web-интерфейс MDS, который выглядит следующим образом:

Я не буду описывать здесь установку Master Data Services, так как это рутинная задача подробно описана на msdn.microsoft.com . Сосредоточимся лучше на реальной практике использования MDS.

Итак, первое, что нам необходимо сделать - это создать модель. Моделью в MDS называется логический контейнер, который содержит в себе сущности определенной бизнес-области. В нашем случае уместно создать модель «Сотрудники», содержащую сущности «Сотрудники» и «Подразделения». Для создания модели перейдем в web-интерфейсе Master Data Services в Administrative Tasks по ссылке System Administration. В открывшемся окне введем название модели Employees и нажмем кнопку Save model:

При установленном флажке Create entity with same name as model автоматически вместе с моделью будет создана одноименная сущность Employees. Далее создадим еще одну сущность «Подразделения» (Divisions), для этого выберем модель Employees и перейдем в меню Manage - Entities:

Нажмем на кнопку Add entity:

В открывшемся диалоге заполним параметры новой сущности и нажмем кнопку Save entity. Обратите внимание, что при создании сущности «Подразделения» был установлен флажок Enable explicit hierarchies and collections (это означает, что для сущности появится возможность создания иерархии), и ниже укажем название иерархии Divisions. Явная иерархия (Explicit Hierarchy) - это иерархия, члены которой могут быть организованы любым образом, т.е. на каждом уровне иерархии может быть любое любое количество членов и следующих уровней вложенности:

После того, как сущности созданы, необходимо настроить атрибуты сущностей. Для сущности «Сотрудники» (Employees) добавим атрибут «Подразделение» (Division). Выберем сущность Employees и нажмем кнопку Edit selected entity:

В открывшейся форме редактирования сущности нажмем на кнопку Add leaf attribute для того, чтобы добавить атрибут «Подразделение» конечного элемента сущности «Сотрудники»:

В открывшейся форме добавления атрибута, заполним наименование атрибута и установим переключатель типа атрибута в положение Domain-based. Это означает, что значения данного атрибута будут принадлежать определенной сущности, и ниже укажем какой именно, в нашем случае это сущность «Подразделения» (Divisions). В конце нажимаем кнопку Save attribute:

Ручной ввод данных в Master Data Services
Итак, модель «Сотрудники» (Employees) и сущности «Сотрудники» (Employees) и «Подразделения» (Divisions) готовы, теперь необходимо наполнить их данными. Сущность «Подразделения» (Divisions) пользователи будут заполнять вручную. Для демонстрации этого процесса перейдем на главную страницу web-интерфейса Master Data Services, в подразделе Information Worker Tasks выберем модель Employees и перейдем по ссылке Explorer:

Выберем иерархию «Подразделения» (Divisions):

Выберем тип элементов, которыми мы хотим управлять. Сначала создадим несколько групповых элементов (Consolidated Member):

Нажмем кнопку Add, введем наименование подразделения-группы «Отдел продаж» и нажмем кнопку OK:

Аналогично добавим другие подразделения и, таким образом, создадим структуру подразделений, изображенную на следующем рисунке:

Обратите внимание, жирным шрифтом выделены подразделения-группы, а нежирным - конечные элементы. На одном уровне иерархии могут быть как те, так и другие типы элементов.

Импорт данных в Master Data Services
Теперь необходимо импортировать данные о сотрудниках в Master Data Servises из существующего хранилища данных (для дальнейшего сопоставления сотрудников и подразделений, и экспорта этих данных обратно в хранилище). Для загрузки данных в MDS в SQL базе данных, обеспечивающей работу Master Data Servises, существуют специальные промежуточные таблицы (Staging Tables), в которые мы можем вставить данные SQL-запросом или создать специальный SSIS-пакет, который будет импортировать новые записи о сотрудниках из хранилища данных во временные таблицы для их дальнейшей обработки в Master Data Servises. Откроем SSMS и найдем временные таблицы в базе данных Master Data Servises. Вот они:

В качестве примера импортируем произвольные 10 записей о сотрудниках из хранилища данных в промежуточную таблицу базы данных Master Data Services. Для этого выполним следующий SQL-запрос:

INSERT INTO . (, , , , ) SELECT TOP 10 1, 0, N"Employees_Leaf_Batch00001", E.id, E.name FROM .. E;

Вернемся в web-интерфейс Master Data Services и на главной странице перейдем по ссылке Intergation Management:

В открывшемся окне видим пакет Employees_Leaf_Batch00001, который был только что создан SQL-запросом. Запустим его, нажав на кнопку Start Batches:

После отработки пакета увидим вот такую информацию о статусе, времени начала и окончания выполнения, ошибках:

Управление данными в Master Data Services
Теперь давайте перейдем в режим управления данными и посмотрим, как загрузились записи о сотрудниках из промежуточной таблицы. Для этого перейдем на главную страницу web-интерфейса Master Data Services, в подразделе Information Worker Tasks выберем модель Employees и перейдем по ссылке Explorer. В открывшемся окне видим, что новые данные о сотрудниках были добавлены в Master Data Services и находятся в состоянии Waiting to be validated:

Обратите внимание, что данные о подразделении (Division) у сотрудников не заполнены. Нам необходимо для каждого сотрудника выбрать подразделение, в котором он работает и нажать на кнопку ОК:

Экспорт данных из Master Data Services
После того как данные о подразделениях и принадлежности сотрудников к подразделениям введены, необходимо импортировать их обратно в хранилище данных. Для этого необходимо создать специальные представления (Subscription Views) в MDS. Перейдем на главную страницу web-интерфейса Master Data Services, в подразделе Administrative Tasks перейдем по ссылке Intergation Management:

В открывшемся окне перейдем в меню Create Views и нажмем кнопку Add subscription view:

Заполним параметры представления для сущности «Подразделения» (Divisions) и нажмем кнопку Save:

Аналогичным образом создадим представление для сущности «Сотрудники» (Employees):

Теперь давайте разберемся, что же это за представления и как можно их использовать. На самом деле все довольно просто, представления в MDS есть ни что иное, как привычные нам представления (Views) в SQL базе данных. Откроем SSMS, и убедимся в этом:

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

Выводы

На реализацию данного решения было потрачено около восьми человеко-часов, что, как мне кажется, вполне адекватное время для такой задачи. В описанном решении я не использовал все возможности Master Data Services, например, остались без внимания

Всем здравствуйте! Сегодня хочу рассказать одну неприятную историю которая произошла с моим MacBook. А дело было так, одним зимним вечером я как всегда бродил по просторам интернета и вдруг заметил что мой Мак угрожающе загудел — кулеры начали работать на всю катушку и как следствие очень сильно стал нагреваться корпус.

Bird — что это за птица

Я сразу же залез в мониторинг системы и увидел что 98 % ресурсов ЦП пожирает некий Bird (с англ. птица) теперь задача стояла в том, что бы выяснить какая программа использует этот процесс и чем вызван такой расход ресурсов моего Мак. Но для начала я предположил, что возможно проблема решается принудительным завершением Bird, это помогло буквально на 2 минуты. Следующим шагом была перезагрузка компа — тоже тщетно.

Решение проблемы было найдено на одном из буржуйских сайтов, оказывается работа «птички» связана с , чтобы в этом убедиться я зашёл в настройки > iCloud и убрал галочку с этого пункта затем еще раз перезагрузил макбук и вуаля — мониторинг системы показал 93 % свободных ресурсов.

Все здорово, если бы мне было абсолютно плевать на этот iCloud Drive, но я из числа тех кто очень быстро адаптируется ко всем новым фишкам Apple и в дальнейшем уже не может без них обходиться, а значит следующая проблема заключалась в том как теперь вновь активировать облачное хранилище но уже без всяких там «птиц». Признаться честно я так и не узнал в чем кроется причина, просто через пару часов опять поставил галочку на место и с той поры вроде бы все здорово:). Будем считать, что это плавающий отказ, а если кто-то разобрался в этом нюансе более детально то обязательно пишите в комментариях.

mds, mds_stores, mdworker — «гаденыши» Spotlight

Следующие процессы которые могут доставить неприятные хлопоты носят имя mds_stores, mdworker и mds (все они из одной шайки). На самом деле это очень даже благородные процессы которые отвечают за индексацию данных на Mac, то есть, как многие уже догадались, напрямую сотрудничают со Spotlight. Но вот иногда эта троица (либо раздельно) может неоправданно сильно нагружать комп оставляя жалкие крохи свободной оперативки и ресурсов процессора.

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

Убил некоторое время на изучение поведения утилиты индексации Spotlight в Mac OS X Lion.

Но сначала немного о проблеме. Spotlight индексирует все подряд (кроме явно запрещенного), что создает нагрузку на процессор и диск. Стал уже классическим вопрос о том, что ценнее – заряд батареи ноутбука и ресурс перезаписи SSD или несомненное удобство Spotlight.

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

Для OS X Snow Leopard в Сети предлагается много разных решений по оптимизации работы процессов MDS /mdworker, но не все они подходят для Lion.

Spotlight в Lion выполнен с явными отличиями, как мне удалось заметить. Соответственно, и рекомендации по приструнению Spotlight должны иметь отличия.

Мне удалось успокоить процессы mdworker двумя следующими пассами (остальные, как мне показалось, заметного влияния не оказали):

1. Перестройка Spotlight индекса. Это поможет тем, кто “Льва” накатывал поверх “Лепёрда”. Способов вызвать полную переиндексацию я знаю два, но рекомендую ту, что предлагает сам Apple: открываете “системные настройки” -> Spotlight, затем закладку “конфиденциальность” и в список “секретных материалов” вносите ваш встроенный жесткий диск (или все, если их несколько). Через несколько секунд можно нажать “минус”, чтобы откатить произведенное действие. Результатом будет полная перестройка индекса вашего диска. Процесс это не быстрый. Сигналом о том, что процесс начался – точка, появившаяся в центре пиктограммы Spotlight (верхний правый угол экрана). Если нажать мышью на пиктограмму в этот момент, вам Spotlight еще и прогресс покажет, и оставшееся время индексации.

На SSD у меня ~70Gb данных переиндексировались за ~15 минут. На HDD это может занять пару часов, будьте терпеливы. Лучше при этом ноут не трогать, чтобы все закончилось скорее.

Поговаривают, этот способ конвертации данных в новый формат “Льва” заметно быстрее, нежели ждать постепенной перестройки старого индекса Spotlight в новый.

2. К сожалению, п.1 может не оказать желаемого результата и mdworker продолжить насилие над компьютером. В этом случае посмотрите внимательно на другие накопительные ресурсы, подключенные к вашему компьютеру. Это могут быть внешние дисковые накопители, Time Capsule, сетевые диски и другие компьютеры. Скорее всего, в них и дело.

У меня дома есть центральный сервер, к которому все домашние компьютеры подключаются по проводам или wifi. Так вот. Мне удалось застать mdworker за работой по индексации данных на подключенных сетевых ресурсах этого сервера. А данных там о-го-го.

Тогда я произвел следующие действия: подключил к макбуку все сетевые ресурсы и физические внешние диски, открыл настройки Spotlight и добавил в “конфиденциальность” весь этот технопарк. Через несколько минут работа mdworker-ов сдулась. А этих процессов у меня одновременно пахало по несколько штук.

При отключении сетевого ресурса, его наименование исчезает из вкладки “конфиденциальность”. Но пусть вас это не пугает, при новом подключении ресурс вновь появится на прежнем месте. Да и могло ли быть иначе, когда речь идет о конфиденциальности?

Так я победил любознательность Spotlight.

Проблема решена, но исключительно на уровне моего опыта. Не факт, что он подойдет и вам, но чем лев не шутит, попробуйте…

Некоторое время назад к нам начали обращаться с вопросами о том, как заставить вентиляторы MacBook работать чуть тише. Иногда пользователи жаловались на то, что система явно начинала жадно использовать процессорные мощности, а вслед за этим начинали сильнее крутиться кулеры, дабы охладить сам процессор. Почему так происходило – загадка. Да и далеко не у всех возникала такая проблема. Однако, потерзав немного поисковики, можно было понять суть проблемы, а главное – решить ее. Если у вас, казалось бы, без причины крутятся вентиляторы в вашем MacBook, возможно, эта статья вам поможет.

Итак, первое, что нужно было понять – почему начинает греться процессор, а потом начинают крутиться вентиляторы. Самый простой способ это узнать – заглянуть в Мониторинг системы. Именно там, отсортировав процессы, можно было вычленить два из них: MDS и mds_stores, что потребляли CPU больше обычного. Оба эти процесса отвечают за работу Spotlight. Что ж, значит нужно отключить Spotlight полностью, дабы узнать, действительно ли из-за него могут возникать наши проблемы. Для этого нужно ввести в Терминале следующую команду:

sudo mdutil -a -i on

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

Но тут мы встречаемся с другой проблемой: запуск приложений. Основные мои программы, которые я использую наиболее часто, помещены в Док – так их запускать гораздо быстрее и удобнее. Но те, которые используются чуть реже, я запускаю непосредственно из Spotlight. Думаю, так делают многие: простая комбинация клавиш Control + Space и открывается строчка поиска Spotlight, в которой достаточно ввести пару букв названия нужного приложения и нажать Enter для подтверждения его запуска. Такое нехитрое действие экономит время и избавляет от поиска необходимого приложения в Launchpad. Однако при выключенном Spotlight все удобство сводится к нулю.

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

sudo rm -rf /.Spotlight-V100/*

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

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

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

А ВЫ сталкивались с подобными проблемами? Возможно, это решение помогло вам? Делитесь своим опытом в комментариях!