Интеграция результатов углубленного анализа данных InfoSphere Warehouse с отчетами IBM Cognos : Часть 3. Динамическое выполнение углубленного анализа данных из Cognos

Ассоциативные правила определяют, какие предметы, события или другие объекты крупных наборов данных часто встречаются одновременно. Эти знания можно применить, например, в анализе потребительской корзины для использования потенциала расширенных продаж, рекомендуя товары, которые часто покупают вместе. Анализ на основе ассоциативных правил можно выполнить в InfoSphere Warehouse и экспортировать полученную модель в отчеты Cognos аналогично тому, как мы это делали в предыдущих статьях настоящей серии с кластерными и классификационными моделями. Так как анализ на основе ассоциативных правил представляет собой высоко интерактивную задачу, лучшим решением было бы позволить пользователю вызывать анализ прямо из отчета Cognos, возможно, с указанием дополнительных параметров. Такой подход можно назвать динамическим или спонтанным анализом. В настоящей статье мы покажем, как это делается.

Михаэль Й. Вюрст, старший инженер-программист, IBM  

Михаэль Вюрст (Michael Wurst), Ph.D., работает старшим инженером-программистом в лаборатории IBM Research & Development Lab в Беблингене (Германия). Он имеет степень д-ра философии по вычислительной технике и отвечает за алгоритмы и инструментарий углубленного анализа данных в InfoSphere Warehouse. До прихода в IBM Михаэль был соразработчиком, архитектором и консультантом по программному обеспечению углубленного анализа данных RapidMiner.



18.12.2009

Введение

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

Типичный пример ассоциативных правил можно найти в секторе розничной торговли. Типичное ассоциативное правило: "IF яйца AND молоко THEN сахар", то есть многие покупатели, которые берут яйца и молоко, обычно покупают вместе с ними и сахар. Такие правила можно эффективно выявлять даже в очень крупных наборах данных. InfoSphere Warehouse позволяет легко находить эти правила, как подробно описано в этой статье.

Предыдущая статья этой серии была посвящена тому, как построить свою первую модель углубленного анализа данных в InfoSphere Warehouse, а затем опубликовать результаты с помощью Cognos. Это отлично работает в некоторых сценариях. Однако аналитик часто хочет повлиять на анализ в интерактивном режиме, например, чтобы ограничить число найденных правил. Переходить в InfoSphere Warehouse DesignStudio и обратно в Cognos при каждом изменении параметра не очень удобно. Лучше было бы получить возможность создавать интерактивные отчеты, позволяющие установить параметры в отчете Cognos, автоматически выполнить анализ в фоновом режиме, а затем возвратить результаты в Cognos. В этой статье подробно рассказано, как это сделать.

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


Анализ потребительской корзины и поиск ассоциативных правил

Ассоциативные правила и их применение

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

Обратимся к простому примеру. Таблица, изображенная на рисунке 1, содержит транзакции. В каждую транзакцию входят все товары, купленные клиентом за одно посещение магазина.

Рисунок 1. Пример транзакций
Пример транзакций

Из примера видно, что довольно часто покупают компьютер. В 20% транзакций присутствует комбинация ПК с монитором. В 50% случаев при покупке компьютера и монитора приобретают также и мышь. Если принять это за правило: [ПК, монитор] ->мышь, где [ПК, монитор] - это тело, а мышь - голова правила или цель, тогда число транзакций с телом и головой, деленное на общее число транзакций, называется поддержкой (support) (20%). Эта мера указывает, как часто правило встречается в данных. Однако она не говорит о том, насколько точно соблюдается это правило. Достоверность (confidence) указывает, в какой части транзакций встречается и тело правила, и его голова. Оно дает информацию о точности соблюдения правила. Для анализа ассоциативных правил требуется, чтобы пользователь установил минимальные значения поддержки и достоверности. Затем алгоритм находит точные комбинации элементов и определяет правила, которые удовлетворяют этим критериям.

Существует множество прикладных задач, для решения которых применяется анализ ассоциативных правил. Мы уже упоминали о наиболее известной из них: розничной торговле. Например, ассоциативные правила применяются для такой организации товаров в супермаркете, чтобы продукты, которые часто покупают за одно посещение магазина, располагались близко друг к другу. Гораздо важнее, что эти правила используются для поиска возможностей расширенных продаж в сфере электронной торговли, когда пользователям рекомендуют дополнительные товары, которые могут их заинтересовать. Еще одна область применения — сфера здравоохранения. Ассоциативные правила можно использовать, чтобы выявить проблемы здоровья, которые часто сочетаются друг с другом, и проверять пациентов с определенным диагнозом на другие вероятные для такого диагноза заболевания. Другими областями применения могут быть обнаружение вторжений, анализ Web-логов, модели доступа к базам данных и т.п.

Легкой вариацией ассоциативных правил являются последовательные правила (sequential rules). Эти правила устанавливают не только то, какие объекты встречаются вместе, но и как связаны события, сопровождающие их появление с течением времени. Например, такие правила могут указывать, что те клиенты, которые сначала купили ноутбук, а затем сумку для него, вероятно, в течение шести месяцев приобретут беспроводную мышь. Большая часть этой статьи относится также и к последовательным правилам.

Анализ ассоциативных правил в InfoSphere Warehouse

Как и все прочие операции в InfoSphere Warehouse, анализ ассоциативных правил выполняется путем вызова хранимой процедуры. Поддерживаются различные форматы транзакций, и в следующем разделе мы воспользуемся форматом транзакций, основанным на следующем представлении (рисунок 2).

Рисунок 2. Таблица транзакций
Таблица транзакций

Чтобы выполнить анализ, нужно сообщить алгоритму, в каких столбцах искать сами товары, а какие содержат сведения о том, как они сгруппированы в транзакции. В данном случае товары группируются в соответствии с покупкой каждого клиента, указанной в столбце TRANSID. Чтобы найти ассоциации по всей истории покупок клиента, в качестве идентификатора группы можно использовать также его идентификатор (CUSTOMER_ID). Анализ выполняется с помощью команды SQL IDMMX.BuildRuleModel или оператора Associations в DesignStudio. Нужно указать имя модели, имя таблицы транзакций, столбец группы, минимальные значения поддержки и достоверности, а также максимальную длину правила. Обратите внимание на то, что товары описаны идентификаторами. К ним можно добавить наименования товаров с именем таблицы соответствия, в которой содержатся идентификаторы товаров и их описания. Есть много возможных дополнительных параметров, таких как классификация, вес товара и т.п. Дополнительные подробности можно найти в руководстве по InfoSphere Warehouse.

Модели правил можно визуализировать в DesignStudio, как и модели классификации и кластеризации. Информацию, содержащуюся в этой модели, можно извлечь в таблицу так же, как в случае кластеров. Это делается с помощью команды IDMMX.DM_getRules или оператора Rule Extractor в DesignStudio. Результирующий набор содержит по одному правилу на запись со следующей информацией:

  • голова (head)
  • тело (body)
  • достоверность (confidence)
  • поддержка (support)
  • погрешность (lift)
  • длина (length)

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

Рисунок 3. Таблица правил
Таблица правил

В следующем разделе показано, как передать эту информацию в Cognos, чтобы визуализировать ее.


Вызов процедуры анализа из Cognos

В предыдущей статье вы видели, что хранимые процедуры DB2 можно вызывать из Cognos Reporting, включая их как объекты запроса (Query Subject) в метаданные Cognos. Это приводит к тому, что хранимая процедура выполняется вместе с отчетом, после чего ее можно использовать для извлечения информации из существующей модели углубленного анализа PMML.

В этой статье мы продвинемся еще на один шаг вперед и динамически создадим модель углубленного анализа данных в параметризованной хранимой процедуре с использованием API SQL InfoSphere Warehouse Mining. Затем та же хранимая процедура извлекает информацию из модели и возвращает ее в отчет Cognos.

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

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

Рисунок 4. Комбинированные пользовательские функции для динамического анализа
Комбинированные пользовательские функции для динамического анализа

Такую комбинированную хранимую процедуру можно создать вручную. Однако существует возможность ее визуального создания с помощью InfoSphere Warehouse. Как это делается, станет ясно из следующего пошагового примера.

Использование InfoSphere Warehouse для создания сложных хранимых процедур углубленного анализа

Сначала нужно создать сложную логику углубленного анализа. InfoSphere Warehouse содержит редактор Mining Editor, который позволяет проектировать аналитические потоки (последовательности команд углубленного анализа) в графическом виде. Их можно выполнять в DesignStudio или внедрять в консоль администрирования InfoSphere Warehouse для запуска по расписанию. Но так как все операции углубленного анализа основаны на SQL, из аналитического потока можно сгенерировать также SQL-сценарий (за исключением некоторых операторов, которые не выполняются в базе данных, таких как визуализаторы анализа (Mining Visualizers) и анализ текстов). Операторы углубленного анализа, такие как Association Operator и Rules Extractor (который используется в следующем примере) транслированы в SQL. Команда Generate SQL Code редактора Mining Editor генерирует код SQL DDL, отображающий аналитический поток, и может быть включена в хранимую процедуру путем возвращения таблицы результатов аналитического потока как результата выполнения хранимой процедуры. Пример показывает, как это сделать.

Когда сложная логика углубленного анализа готова, следующая задача - создание, внедрение и тестирование хранимой процедуры SQL. InfoSphere Warehouse DesignStudio содержит перспективу Data с проектом Data Development, который обеспечивает поддержку для создания хранимых процедур Java и SQL, а также определяемых пользователем функций. Мастер создает шаблон хранимой процедуры, который можно развернуть и протестировать непосредственно в DesignStudio.

В следующем примере показано, как создать аналитический поток путем создания ассоциативной модели и извлечения из нее правил. Затем показано, как создать из этого потока код SQL. На следующем шаге используется инструментарий для создания хранимой процедуры кода SQL. Мы добавим к хранимой процедуре входные параметры, которые в дальнейшем могут быть введены в Cognos Report и послужат параметрами созданной аналитической модели. Извлеченные правила ассоциативной модели возвращаются хранимой процедурой и импортируются в Cognos как объекты запроса. Наконец, мы покажем, как создать простой отчет Cognos, отражающий выручку по товарам и допускающий детализацию с обращением к соответствующим ассоциативным правилам для этих товаров.


Передача результатов динамического углубленного анализа данных в Cognos Reports: Пример из сектора розничной торговли

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

Ее можно найти в примерах, прилагаемых к InfoSphere Warehouse. Чтобы импортировать эту таблицу в базу данных:

  • Откройте окно команд DB2.
  • Перейдите в каталог установки InfoSphere Warehouse.
  • Перейдите в подкаталог SQLLIB\samples\dwe\ModelingDB2.
  • Подключитесь к своей рабочей базе данных (в данном примере это база данных DWESAMP: db2 CONNECT TO DWESAMP).
  • Выполните команду db2 -tvf retailImport.db2, чтобы импортировать примеры таблиц в свою пользовательскую схему (в нашем примере она называется IMINER).
  • Создайте также новую схему ASSOC, которая используется в примере, с помощью команды db2 CREATE SCHEMA ASSOC.

Целью анализа является извлечение ассоциативных правил вида:

 Игрушечная машина + карманный фонарик => батарейка (поддержка: 3%, достоверность: 83%)

Данное правило гласит, что в 83% случаев, когда покупают игрушечный автомобиль и карманный фонарик, покупают также и батарейку. Все товары вместе можно найти в 3% всех потребительских корзин (так называемая поддержка).

Вместо того чтобы предварительно вычислять правила, расчет можно вызвать из отчета Cognos. В отчет можно ввести параметры для изменения параметров анализа. В этом примере таблица выручки по товарам позволяет переходить (drill-through) к ассоциативным правилам для конкретных товаров. Можно задать значения минимальной поддержки и максимальной длины правил. Затем правила вычисляются по требованию и возвращаются пользователю в другом отчете. Эти правила можно использовать, например, для рационального размещения товаров в магазине в целях увеличения выручки.

Создание ассоциативных правил в DesignStudio InfoSphere Warehouse

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

Создание проекта Data Warehouse:

В Project Explorer щелкните правой кнопкой мыши и выберите New > Data Warehouse project, как показано на рисунке 5.

Рисунок 5. Создание проекта Data Warehouse
Откройте представление Data Exploration

В следующем окне мастера введите имя проекта, например, "AdvancedAnalytics". Затем нажмите Finish.

Создание пустого аналитического потока:

  • Разверните только что созданный проект.
  • Щелкните правой кнопкой мыши на папке Mining Flow. Выберите New -> Mining Flow.
  • В открывшемся окне мастера наберите AssocFlow в качестве имени аналитического потока.
  • В этом примере мы будем работать с базой данных, поэтому оставьте значение по умолчанию и нажмите Next.
  • Выберите базу данных DWESAMP (или выбранную вами базу данных) и нажмите кнопку Finish.

Создание аналитического потока:

Откроется редактор Mining Flow. На правой панели редактора Mining Flow есть палитра с операторами. С помощью этих операторов можно построить аналитический поток, перетащив их на холст редактора (рисунок 6).

Рисунок 6. Аналитический поток в Design Studio
Аналитический поток в Design Studio

Для создания модели анализа ассоциативных правил и извлечения правил в таблицу базы данных выполните следующие действия:

  • В палитре есть раздел Sources and Targets (источники и цели). Выберите оператор Table Source и перетащите его в редактор.
  • В диалоговом окне выбора таблицы разверните схему IMINER (или схему по умолчанию) и выберите таблицу RETAIL. Затем нажмите Finish.
  • Создайте еще один оператор Table Source с таблицей RETAIL_NAMES.
  • В палитре есть раздел Mining Operators (операторы углубленного анализа). Выберите оператор Associations и перетащите его в окно редактора.
  • Соедините выходной порт таблицы RETAIL с входным портом Associations, а выходной порт таблицы RETAIL_NAME с портом Associations Names.
  • Выберите оператор Associations.
  • На вкладке свойств под редактором аналитического потока выберите левую вкладку Mining Settings (настройки углубленного анализа).
  • В списке выбора столбцов Group выберите TRANSID. Все товары (ITEMID) с одним и тем же идентификатором TRANSID куплены в одной покупательской корзине.
  • Теперь выберите страницу свойств Name Maps и задайте значение "ITEMID" для "Item ID Column" и значение "DESCRIPTION" для "Item Name Column". Оба столбца взяты из таблицы соответствия имен RETAIL_NAMES.
  • Перейдите на страницу Column Properties (свойства столбцов). Установите значение Inactive для параметра "Field Usage Type" (тип используемых полей) для всех столбцов, за исключением столбца ITEMID, который должен быть активным (Active).
  • Справа от поля "Field Usage Type" можно указать таблицу соответствия имен столбцов. Для столбца ITEMID укажите таблицу соответствия Names. Names - это имя входного порта, соединенного с таблицей соответствия имен RETAIL_NAMES.
  • Из палитры Mining Operators выберите оператор Associations Extractor. Перетащите его в редактор и соедините выходной порт Model оператора Associations со входным портом Model оператора Extractor. Оператор Extractor будет извлекать ассоциативные правила из модели PMML, созданной оператором Associations, и передавать их в структуру реляционной таблицы.
  • Наконец, нужно сохранить извлеченные ассоциативные правила в физической таблице. Для этого щелкните правой кнопкой на выходном порте rule экстрактора и выберите Create Suitable Table (создать подходящую таблицу).
  • Присвойте таблице имя RETAIL_RULES и выберите схему по умолчанию в том месте, где находится таблица RETAIL. Нажмите Finish.
  • Теперь оператор таблицы "RETAIL_RULES" должен быть показан в потоке анализа. Чтобы на каждом прогоне получать только текущие правила, установите флажок Delete previous content (удалить предыдущее содержание) в свойствах оператора целевой таблицы.
  • Сохраните аналитический поток.

Теперь аналитический поток готов к исполнению.

Исполнение аналитического потока:

Этот поток создает модель, содержащую ассоциативные правила, и сохраняет ее в виде модели PMML в базе данных. После этого правила извлекаются в таблицу базы данных для последующего доступа к ним из Cognos. На представлении под окном редактора выбрана вкладка Execution Status (статус выполнения), а справа находится выходная таблица последнего оператора, то есть оператора Target Table. В таблице показаны извлеченные правила, каждое с информацией идентификатора, головы и тела, а также статистикой по каждому правилу. Эти ассоциативные правила можно изучить визуально, щелкнув правой кнопкой на операторе Associations и выбрав Open Model.

Внедрение аналитического потока ассоциативных правил как хранимой процедуры DB2

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

Создание новой хранимой процедуры в проекте Data Development:

Чтобы создать проект Data Development, выполните следующие действия:

  • Щелкните правой кнопкой мыши внутри "Data Project Explorer" и выберите New -> Data Development Project. Если проект Data Development не найден, выберите вместо этого Project . . . и поищите в полном списке проектов.
  • Укажите имя Assoc Stored Procedure и нажмите Next.
  • Выберите Use an existing connection (использовать существующее соединение) и базу данных, в которую вы импортировали таблицы. Нажмите Finish.
  • В ответ на вопрос, хотите ли вы переключить перспективу, выберите No.

Чтобы создать хранимую процедуру, выполните следующие действия:

  • Откройте новый проект и щелкните правой кнопкой мыши на папке Stored Procedure (хранимые процедуры). Выберите New" -> Stored Procedure.
  • Установите имя процедуры "ASSOC_PROC" и выберите в качестве языка процедуры SQL. Нажмите Next.
  • На следующем экране мастера примите предложенный оператор SQL и нажмите Next.
  • На экране Parameters определите два входных параметра - support (поддержка) и length (длина). Нажмите Add (добавить), укажите имя support и выберите тип FLOAT. Нажмите OK.
  • Сделайте то же самое для второго параметра "length" с типом "INTEGER".
  • Нажмите Finish.
  • Откроется редактор с телом хранимой процедуры.

Адаптируйте хранимую процедуру для выполнения предварительно определенного аналитического потока:

  1. В теле процедуры определения курсора есть два оператора, которые позволяют возвращать строки таблицы. Адаптируйте первый оператор, продекларировав курсор следующим образом:
    DECLARE cursor1 CURSOR WITH RETURN FOR
    SELECT * FROM IMINER.RETAIL_RULES;

    Курсор возвращает таблицу RETAIL_RULES, содержащую ассоциативные правила. Помните, что IMINER — это схема по умолчанию, принятая в данном примере, и в ваших настройках она может быть другой.
  2. Теперь преобразуем визуальный аналитический поток в операторы SQL, которые можно вставить в тело хранимой процедуры. Переключитесь к редактору AssocFlow, выбрав соответствующую вкладку в поле редактора.
  3. Из меню выберите Mining Flow -> Generate SQL Code.
  4. Откроется другой редактор, содержащий код SQL, соответствующий потоку. Выделите все содержимое редактора и скопируйте его.
  5. Переключитесь на редактор хранимых процедур ASSOC_PROC и перенесите код между декларацией курсора и оператором курсора "OPEN". Сохраните процедуру.
  6. Перейдите в начало редактора хранимых процедур и удалите "CURRENT" из оператора set-schema, а имя схемы замените именем схемы "ASSOC", которую мы создали в самом начале (листинг 1).
    Листинг 1. Замена имени схемы именем схемы ASSOC
    P1: BEGIN 
    	-- Declare cursor 
    	DECLARE cursor1 CURSOR WITH RETURN FOR 
    		SELECT * FROM IMINER.RETAIL_RULES;
    
    SET SCHEMA="ASSOC"; ... ...

    Схема ASSOC используется для внедрения процедуры.

  7. Перейдите к оператору Call IDMMX.BuildRuleModel и адаптируйте его для динамической установки минимальной поддержки и длины правил посредством параметров support и length, просто изменив значения четвертого и шестого параметра, как показано в листинге 2.
    Листинг 2. Адаптация четвертого и шестого параметров
    CALL IDMMX.BuildRuleModel('AssocAnalysis.IM_ASSOC_03', 
    						  'INPUT_03', 
    						  'TRANSID', 
    						  support, 
    						  25.0,
    						  length,
    						  'DM_addNmp(''nameMap'',''NAMEMAP_03'',
    						  ''ITEMID'',''DESCRIPTION''),
    						  DM_setFldNmp(''ITEMID'',''nameMap''),
    						  DM_setFldUsageType(''ITEMID'',1),
    						  DM_setFldUsageType(''STOREID'',2),
    						  DM_setFldUsageType(''CUSTOMER_ID'',2),
    						  DM_setFldUsageType(''ITEMPRICE'',2),
    						  DM_setFldUsageType(''TRANSDATE'',2),
    						  DM_setMaxNumRules(10000),
    						  DM_setAlgorithm(''SIDE'',
    						  ''<NumBins>5</NumBins>'')');
  8. Наконец, перейдите к оператору
    ALTER TABLE "IMINER"."RETAIL_RULES" ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;

    и замените его оператором
    DELETE FROM "IMINER"."RETAIL_RULES";
  9. Сохраните редактор.

Внедрение хранимой процедуры в базу данных:

Чтобы внедрить предварительно созданную хранимую процедуру, выполните следующие действия:

  1. В Data Project Explorer откройте проект Data Development "Assoc Stored Procedure", раскройте папку Stored Procedure и щелкните правой кнопкой мыши на процедуре ASSOC_PROC; выберите Deploy...
  2. В диалоговом окне Deploy Routines измените схему на "ASSOC" и нажмите кнопку Finish.

Теперь хранимая процедура ASSOC_PROC внедрена в схему ASSOC. Это можно проверить, перейдя в папку Stored Procedure внутри схемы с помощью Database Explorer (см. рисунок 7). Хранимая процедура позволяет динамически ссылаться на предварительно созданный аналитический поток с помощью определяемых пользователем свойств.

Рисунок 7. Внедрение хранимой процедуры ASSOC_PROC в Design Studio
Внедрение хранимой процедуры

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

Создание метаданных для последующего построения отчетов с использованием Cognos Framework Manager

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

В следующих пунктах мы покажем, как создать проект Cognos Framework Manager, определив две входные таблицы и ранее созданную хранимую процедуру. Наконец, мы покажем, как опубликовать проект и сделать его доступным для составления отчетов.

Откройте Framework Manager и создайте новый проект:

  • Запустите Cognos Framework Manager.
  • По окончании загрузки щелкните на кнопке Create a new project.
  • В открывшемся диалоге укажите имя AssociationExample и нажмите OK.
  • Выберите в качестве языка English и нажмите OK.
  • Раз вы хотите создать метаданные из базы данных DB2, выберите Data Sources и нажмите Next.
  • На следующем шаге выберите базу данных, которая использовалась на протяжении этого примера, и нажмите Next. Если соединения с базой данных нет, его нужно создать. За информацией о том, как создать это соединение, обратитесь к документации Cognos.
  • Теперь вам предложат выбрать объект данных, который нужно импортировать в качестве метаданных. Разверните свою схему по умолчанию, где находятся таблицы RETAIL и RETAIL_NAMES, раскройте папку Tables и выберите указанные таблицы.
  • Затем разверните схему ASSOC, откройте папку Procedures и выберите внедренную ранее процедуру ASSOC_PROC. Нажмите Next.
  • На этой странице все в порядке, так что нажмите Import, а затем Finish.
Рисунок 8. Cognos 8 Framework Manager
Cognos 8 Framework Manager

После создания проекта в Framework Manager с левой стороны отображается Project Viewer (см. рисунок 8). В Project Viewer можно увидеть вновь созданный проект. Откройте папку с именем вашей базы данных (в данном случае "DWESAMP"), чтобы взглянуть на импортированные таблицы и хранимую процедуру. Теперь определите новое отношение между таблицами RETAIL и RETAIL_NAMES. Это упростит последующее определение отчета.

Чтобы создать отношение, выполните следующие действия:

  • Щелкните правой кнопкой мыши на папке базы данных (в данном случае "DWESAMP"). Выберите Create -> Relationship.
  • Откроется диалоговое окно Relationship Definition (рисунок 9).
  • Слева можно определить один предмет запроса, а справа другой. Выберите слева таблицу RETAIL, а справа таблицу RETAIL_NAMES.
  • Выберите столбцы ITEMID с обеих сторон и соедините их.
  • Установить мощности отношений, как показано на рисунке 9. Нажмите OK.
  • Созданное отношение можно рассмотреть, нажав ссылку Explorer в средней части Framework Manager (рисунок 9).
Рисунок 9. Диалог определения отношений
Диалог определения отношений

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

Чтобы создать аргументы, выполните следующие действия:

  • Дважды щелкните на хранимой процедуре ASSOC_PROC в Project Viewer.
  • Откроется диалоговое окно Query Subject Definition (рисунок 10). В нижней его части вы увидите два аргумента хранимой процедуры. Нажмите кнопку ". . . " в правом конце строки аргумента SUPPORT.
  • В текстовом поле Value диалогового окна Edit Argument наберите # prompt('support')#. Нажмите OK.
  • Сделайте то же самое для аргумента LENGTH (в качестве значения аргумента используйте "# prompt('length')#").
  • Нажмите OK, чтобы подтвердить настройки в диалоге Query Subject Definition.
  • Теперь откроется диалоговое окно Prompt Values. Нужно передать два примера значений параметров, чтобы Framework Manager мог выполнить процедуру и извлечь столбцы результатов. Введите в поле значения длины "2", а в поле значения поддержки "3.0". Заметьте, что теперь выполняется аналитический поток ассоциативных правил, и извлеченные правила возвращаются в Framework Manager.
Рисунок 10. Окно Query Subject Definition с открытым диалогом Edit Argument
Окно Query Subject Definition с открытым диалогом Edit Argument

После импортирования таблиц с хранимой процедурой и корректировки метаданных для этих объектов базы данных можно приступить к созданию пакета для проекта и его публикации в Cognos Content Store. После этого он будет доступен для Cognos Report Studio.

Создание пакета и его публикация:

  • Чтобы сделать доступными только что созданные метаданные, перейдите в Project Viewer и щелкните правой кнопкой на папке Packages. Выберите Create -> Package.
  • В поле имени введите AssociationRulePackage. Нажмите Next.
  • Снова нажмите Next, так как ничего делать не нужно.
  • В следующем диалоге, убедитесь, что DB2 присутствует в списке Available function sets (доступные наборы функций). Нажмите Finish.
  • В следующем диалоговом окне нажмите Yes, чтобы продолжить процесс публикации.
  • В окне Select publish location мастера публикации нажмите Next, так как ничего делать не нужно.
  • Параметры безопасности указывать не нужно. Поэтому нажмите Next.
  • Затем нажмите Finish.
  • Всплывающий диалог сообщит, что вы успешно опубликовали свой пакет; нажмите Finish.

Создание отчета Cognos с использованием результатов динамического анализа ассоциативных правил

Чтобы создать отчет Cognos, воспользуемся инструментом CognosReport Studio, который представляет собой полноценное Web-приложение. Создадим два отчета - один, показывающий выручку, сгруппированную по товарам, а другой — список ассоциативных правил для товаров из таблицы RETAIL. Посмотрите, как создать определение ссылки детализации drill-through из одного отчета в другой. Щелкнув на товаре в таблице выручки, откройте те правила, в голове которых указан выбранный товар. Это позволяет проанализировать, какие сопутствующие товары увеличивают выручку от выбранного товара. Далее, можно задать минимальную поддержку для правил из набора данных и максимальную длину правила. Анализ осуществляется в режиме реального времени, и результаты фильтруются и представляются одним щелчком.

Для создания таблицы выручки нужно выполнить следующие шаги:

  • Запустите Cognos Report Studio.
  • В окне приветствия (Welcome) нажмите ссылку Create professional reports (создание профессиональных отчетов).
  • В списке Select a package explorer выберите пакет AssociationRulePackage, который вы опубликовали в Framework Manager.
  • В диалоговом окне Welcome выберите Create a new report for template (создать новый отчет по шаблону).
  • Выберите шаблон List и нажмите OK.
  • На верхней левой панели Insertable Objects можно выбирать между различными вкладками. На рисунке 11 выбрана вкладка источников данных (Data sources).
    Рисунок 11. Report Studio
    Report Studio
  • В представлении Insertable Objects разверните таблицу RETAIL и перетащите столбец ITEMID в список на странице редактора в правой части Report Studio. Затем перетащите столбец ITEMPRICE в список справа от столбца ITEMID (см. рисунок 11).
  • Разверните таблицу RETAIL_NAMES и поместите столбец DESCRIPTION между столбцами ITEMID и ITEMPRICE.
  • Щелкните на столбце ITEMPRICE. Не на заголовке, а на трех ячейках под ним. На панели инструментов нажмите кнопку Sort (отсортировать) и выберите Sort Descending (сортировать по убыванию). Вверху таблицы выручки должна отображаться группа товаров с наибольшей выручкой.
  • Нажмите кнопку Run Report (запуск отчета), чтобы увидеть текущее состояние отчета.
  • Сохраните отчет под именем RevenueReport.

Чтобы создать отчет по ассоциативным правилам, нужно выполнить следующие шаги:

  • Создайте новый отчет по шаблону List для того же пакета. Это можно сделать, выбрав File->New в Report Studio.
  • В представлении Insertable Objects разверните объект ASSOC_PROC и перетащите столбцы BODYTEXT, HEADNAME, SUPPORT и CONFIDENCE в список на странице редактора в правой части Report Studio.
  • Так как нужно отобразить только те правила, в голове которых содержится определенный товар, определим фильтр. Выберите любой столбец в списке и нажмите кнопку Filters на панели инструментов.
  • Нажмите кнопку Add в нижней левой части диалогового окна Filters.
  • Откроется диалоговое окно Detail Filter Expression. Раскройте процедуру ASSOC_PROC и дважды щелкните на HEAD. В правой части диалогового окна добавится столбец Head. Добавьте в правую часть:
    [DWESAMP].[ASSOC_PROC].[HEAD] = ?product?

    Выражение ?product? определяет параметр, который впоследствии будет передаваться первым отчетом в зависимости от выбранного товара.
  • Дважды нажмите OK.
  • Чтобы передать параметры и вызвать хранимую процедуру, нужно произвести окончательную настройку. Выберите Query Explorer на панели выбора Explorer (см. рисунок 11), затем выберите Query 1.
  • В разделе Properties в нижней левой части Report Studio выберите свойство Processing (Обработка), из разворачивающегося списка выберите Limited Local (ограниченная локальная).
  • Нажмите кнопку Run Report, чтобы увидеть текущее состояние отчета.
  • Затем вам будет предложено три параметра - два заданных хранимой процедурой и один, заданный только что определенным фильтром. Используйте значение 3,0 для поддержки (support), 2 для длины (length) и 142 в качестве идентификатора HEAD. Нажмите OK.
  • Наконец, сохраните отчет под именем "AssocReport".

Теперь нужно дополнить первый отчет, чтобы вызывать второй посредством ссылки drill-through.

Чтобы создать определение ссылки drill-through для отчета по выручке, выполните следующие шаги:

  • Снова откройте первый отчет RevenueReport, выбрав File->Open.
  • В списке в области редактора выделите столбец ITEMID (не заголовок, а три ячейки под ним).
  • Щелкните правой кнопкой на выделенных ячейках и выберите Drill-Through Definitions...
  • В нижней левой части диалогового окна Drill-Through Definition выберите Add.
  • Нажмите "..." рядом с полем Report и выберите AssocReport.
  • Установите флажок Open in new window (открывать в новом окне).
  • Нажмите кнопку Edit, расположенную под полем Parameters.
  • В диалоговом окне Parameters определите, какое значение передается параметру product определенного ранее отчета AssocReport. В столбце Method строки товаров выберите Pass data item value (передавать значение элемента данных) из разворачивающегося списка.
  • В столбце Value строки товаров выберите столбец ITEMID из этого отчета. ITEMID будет передаваться в AssocReport, что приведет к отображению правил для этого товара в голове правила.
  • Дважды нажмите OK.
  • Сохраните отчет.
  • Нажмите кнопку Run Report, чтобы увидеть отчет.
  • В отсортированной таблице выручки выберите, например, "Toy Car" с ID 191. Обратите внимание, что не для всех товаров есть ассоциативные правила, так как в процессе вычислений поддержка этих правил могла оказаться слишком низкой.
  • Теперь вам будет предложено всего два параметра, поскольку третий - товар - передается по ссылке drill-through. Укажите значения 2,0 для поддержки и 3 для длины и нажмите OK.

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

Рисунок 12. Окончательный отчет на основе ассоциативных правил для магазина
Окончательный отчеты на основе ассоциативных правил для магазина

Заключение

В этой статье мы рассказали об анализе ассоциативных правил и показали, как найти ассоциативные правила с помощью InfoSphere Warehouse. Анализ ассоциативных правил – это высоко интерактивная задача, и для достижения желаемого результата пользователи обычно перебирают множество разных значений параметров. Cognos очень хорошо подходит для решения задач интерактивного анализа правил. В дополнение к методам, используемым в первых двух статьях этой серии, вы узнали, как можно динамически выполнять анализ из Cognos, так что пользователь может устанавливать параметры и ограничения без необходимости переходить в DesignStudio. Из следующей, последней статьи этой серии вы узнаете, как соединить все описанные методы в интерактивное приложение сегментации клиентской базы.

Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=457577
ArticleTitle=Интеграция результатов углубленного анализа данных InfoSphere Warehouse с отчетами IBM Cognos : Часть 3. Динамическое выполнение углубленного анализа данных из Cognos
publish-date=12182009