Фильтрование вложенной таблицы в модели интеллектуального анализа данных (учебник по интеллектуальному анализу данных — средний уровень)
После создания и изучения модели принимается решение сосредоточить внимание на подмножестве данных о клиентах. Например, можно выполнить анализ только тех потребительских корзин, которые содержат конкретный элемент, или проанализировать демографические данных клиентов, которые ничего не купили в течение определенного периода времени.
Службы SQL Server 2008Analysis Services обеспечивают возможность фильтровать данные, используемые в модели интеллектуального анализа данных, чтобы не нужно было настраивать новое представление источника данных для использования других данных. В учебнике по интеллектуальному анализу данных (начальный уровень) рассматривалось, как фильтровать данные из плоской таблицы путем применения условий к таблице вариантов. В этой задаче создается фильтр для применения к вложенной таблице.
Фильтры для вложенных таблиц и таблиц вариантов
Если представление источника данных содержит таблицу вариантов и вложенную таблицу (подобно представлению источника данных, которое используется в модели взаимосвязей), фильтр можно использовать на основании значений из таблицы вариантов, наличия или отсутствия определенного значения во вложенной таблице либо сочетания тех и других.
В этой задаче сначала создается копия модели взаимосвязей, а затем к новой связанной модели добавляются атрибуты IncomeGroup и Region, чтобы можно было выполнить фильтрация по этим атрибутам в таблице вариантов.
Создание и изменение копии модели «Взаимосвязь»
На вкладке Модели интеллектуального анализа данных в среде Business Intelligence Development Studio щелкните правой кнопкой мыши модель Взаимосвязь и выберите пунктНовая модель интеллектуального анализа данных.
В поле Имя модели интеллектуального анализа данных введите Фильтруемые взаимосвязи. В поле Имя алгоритма введите Правила взаимосвязи Microsoft. Нажмите кнопку ОК.
В столбце модели «Фильтруемые взаимосвязи» щелкните строку IncomeGroup и вместо значения Пропустить выберите Вход.
После этого следует создать фильтр для таблицы вариантов в новой модели взаимосвязей. Этот фильтр передаст модели только тех заказчиков, которые находятся в целевом регионе или имеют определенный уровень дохода. Затем нужно добавить второй набор условий фильтра, чтобы указать, что модель использует только клиентов, в чьих корзинах заказов содержался по крайней мере один элемент.
Добавление фильтра в модель интеллектуального анализа данных
На вкладке Модели интеллектуального анализа данных щелкните правой кнопкой мыши модель «Фильтруемые взаимосвязи» и выберите команду Установить фильтр модели.
В диалоговом окне Фильтр модели щелкните верхнюю строку сетки в текстовом поле Столбец структуры интеллектуального анализа данных.
В текстовом поле Столбец структуры интеллектуального анализа данных выберите IncomeGroup.
Значок слева от текстового поля изменится, указывая, что выбранным элементом является столбец.
Щелкните текстовое поле Оператор и выберите оператор = из списка.
Щелкните текстовое поле Значение и введите High в поле.
Щелкните следующую строку сетки.
Щелкните текстовое поле AND/OR в следующей строке сетки и выберите условие OR.
В текстовом поле Столбец структуры интеллектуального анализа данных выберите IncomeGroup. В текстовом поле Значение введите Moderate.
Созданное условие фильтра автоматически добавляется в текстовое поле Выражение и выглядит следующим образом:
[IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate'
Щелкните следующую строку сетки и оставьте используемый по умолчанию оператор AND.
В поле Оператор оставьте используемое по умолчанию значение Содержит. Щелкните текстовое поле Значение.
В диалоговом окне Фильтр выберите в первой строке поля Столбец структуры интеллектуального анализа данных значение Модель.
В поле Оператор выберите значение IS NOT NULL. Оставьте текстовое поле Значение пустым. Нажмите кнопку ОК.
Условие фильтра в текстовом поле Выражение диалогового окна Фильтр модели автоматически обновляется, чтобы включить новое условие для вложенной таблицы. Законченное выражение выглядит следующим образом:
[IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate' AND EXISTS SELECT * FROM [vAssocSeqLineItems] WHERE [Model] <> NULL).
Нажмите кнопку ОК.
Включение детализации и обработка отфильтрованной модели
На вкладке Модели интеллектуального анализа данных щелкните правой кнопкой мыши модель Фильтруемые взаимосвязи и выберите пункт Свойства.
Измените значение свойства AllowDrillThrough на True.
Щелкните правой кнопкой мыши модель интеллектуального анализа данных Фильтруемые взаимосвязи и выберите пункт Обработка модели.
Нажмите кнопку Да в окне сообщения об ошибке для развертывания новой модели в базе данных служб Analysis Services.
В диалоговом окне Обработка структуры интеллектуального анализа данных нажмите кнопку Выполнить.
После завершения обработки нажмите кнопку Закрыть, чтобы закрыть диалоговое окно Ход обработки, затем снова нажмите кнопку Закрыть, чтобы закрыть диалоговое окно Обработка структуры интеллектуального анализа данных.
Чтобы убедиться в том, что отфильтрованная модель содержит меньше вариантов, чем исходная модель, проверьте значение параметра NODE_SUPPORT в средстве просмотра деревьев содержимого общего вида (Майкрософт).
Примечания
Только что созданный фильтр вложенной таблицы проверяет лишь наличие по крайней мере одной строки во вложенной таблице. Также можно создать условия фильтра для проверки наличия конкретных продуктов. Например, можно создать следующий фильтр:
[IncomeGroup] = 'High' AND
EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] = 'Water Bottle' )
Данная инструкция означает, что клиенты из таблицы вариантов будут ограничены лишь теми клиентами, которые приобрели флягу для воды. Количество атрибутов вложенной таблицы потенциально может быть неограниченным, поэтому службы Analysis Services не предоставляют список возможных значений для выбора. Вместо этого необходимо вводить точное значение.
Можно нажать кнопку Изменить запрос, чтобы вручную изменить критерий фильтра. Однако если какая-либо часть критерия фильтра изменяется вручную, сетка становится недоступной и работать с выражением фильтра в дальнейшем можно только в режиме изменения текста. Чтобы снова перейти в режим изменения с помощью сетки, необходимо очистить критерий фильтра и начать сначала.
Кроме того, следует учесть, что во вложенной таблице не может использоваться оператор LIKE.
Следующая задача занятия
Прогноз взаимосвязей (учебник по интеллектуальному анализу данных — средний уровень)