Поделиться через


Фильтрование вложенной таблицы в модели интеллектуального анализа данных (учебник по интеллектуальному анализу данных — средний уровень)

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

Службы SQL Server 2008 Службы Analysis Services обеспечивают возможность фильтрации данных, используемых в модели интеллектуального анализа данных, чтобы не нужно было настраивать новое представление источника данных при каждом переходе к новым данным. В учебнике по интеллектуальному анализу данных (начальный уровень) описывалась фильтрация данных из плоской таблицы путем применения условий к таблице вариантов. В этой задаче создается фильтр для применения к вложенной таблице.

Фильтры для вложенных таблиц и таблиц вариантов

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

В этой задаче сначала создается копия модели Association, а затем к новой связанной модели добавляются атрибуты IncomeGroup и Region, чтобы можно было выполнить фильтрацию по этим атрибутам в таблице вариантов.

Создание и изменение копии модели «Взаимосвязь»

  1. На вкладке Модели интеллектуального анализа данных в среде Business Intelligence Development Studio щелкните правой кнопкой мыши модель Взаимосвязь и выберите пунктНовая модель интеллектуального анализа данных.

  2. В поле Имя модели интеллектуального анализа данных введите Фильтруемые взаимосвязи. В поле Имя алгоритма введите Правила взаимосвязи Microsoft. Нажмите кнопку ОК.

  3. В столбце модели Association Filtered щелкните строку IncomeGroup и измените значение с Пропустить на Ввод.

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

Добавление фильтра в модель интеллектуального анализа данных

  1. На вкладке Модели интеллектуального анализа данных щелкните правой кнопкой мыши модель Association Filtered и выберите команду Настроить фильтр моделей.

  2. В диалоговом окне Фильтр модели щелкните верхнюю строку сетки в текстовом поле Столбец структуры интеллектуального анализа данных.

  3. В текстовом поле Столбец структуры интеллектуального анализа данных выберите значение IncomeGroup.

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

  4. Щелкните текстовое поле Оператор и выберите оператор = из списка.

  5. Щелкните текстовое поле Значение и введите High в поле.

  6. Щелкните следующую строку сетки.

  7. Щелкните текстовое поле AND/OR в следующей строке сетки и выберите условие OR.

  8. В текстовом поле Столбец структуры интеллектуального анализа данных выберите значение IncomeGroup. В текстовом поле Значение введите Moderate.

    Созданное условие фильтра автоматически добавляется в текстовое поле Выражение и выглядит следующим образом:

    [IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate'

  9. Щелкните следующую строку сетки и оставьте используемый по умолчанию оператор AND.

  10. В поле Оператор оставьте используемое по умолчанию значение Содержит. Щелкните текстовое поле Значение.

  11. В диалоговом окне Фильтр выберите в первой строке поля Столбец структуры интеллектуального анализа данных значение Модель.

  12. В поле Оператор выберите значение IS NOT NULL. Оставьте текстовое поле Значение пустым. Нажмите кнопку ОК.

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

    [IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate' AND EXISTS (SELECT * FROM [vAssocSeqLineItems] WHERE [Model] <> NULL)

  13. Нажмите кнопку ОК.  

Включение детализации и обработка отфильтрованной модели

  1. На вкладке Модели интеллектуального анализа данных щелкните правой кнопкой мыши модель Фильтруемые взаимосвязи и выберите пункт Свойства.

  2. Измените значение свойства AllowDrillThrough на True.

  3. Щелкните правой кнопкой мыши модель интеллектуального анализа данных Фильтруемые взаимосвязи и выберите пункт Обработка модели.

  4. Нажмите кнопку Да в окне сообщения об ошибке для развертывания новой модели в базе данных служб Службы Analysis Services.

  5. В диалоговом окне Обработка структуры интеллектуального анализа данных нажмите кнопку Выполнить.

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

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

Примечания

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

 [IncomeGroup] = 'High' AND
  EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] = 'Water Bottle' ) 

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

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

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