Оптимальные методики IBM Cognos: IBM Cognos BI – XML в качестве источника данных

Тип документа: совет или методика. Продукт(ы): IBM Cognos BI. Область применения: инфраструктура, моделирование

IBM Cognos позволяет использовать при формировании отчетов источники данных различного типа, включая XML. В данной статье рассматриваются методики подключения к XML-источникам данных при помощи IBM Cognos BI.

Введение

Назначение

В статье рассматриваются методики подключения IBM Cognos BI к XML-источникам данных.

Применимость

Рассматриваемые в данной статье методики были протестированы с IBM Cognos 8.4 и IBM Cognos 10.1.1.

Предположения

Предполагается, что читатель знаком с Framework Manager, XML, JSP-кодом, shell-сценариями и развертыванием приложений на сервере приложений или в контейнере сервлетов/JSP. Для здания источников данных в IBM Cognos BI необходимы права администратора.

Исключения

Рассматриваемые методики предназначены для небольших наборов XML-данных. Чтобы гарантировать приемлемую производительность данных методик в рабочей среде, необходимо выполнить тестирование. Для более крупных источников данных или более гибких XML-реализаций рассмотрите возможность использования IBM Cognos Virtual View Manager.


Обзор

IBM Cognos позволяет использовать при формировании отчетов множество типов источников данных. Одним из них является XML, работа с которым не предъявляет никаких дополнительных требований к инфраструктуре, например программному обеспечению промежуточного уровня.

Администраторы могут подключаться к XML-файлу напрямую или по URL. Во втором случае XML-источник может быть XML-файлом, размещенным в каталоге Web-сервера, или XML-потоком, генерируемым программно, например при помощи JavaServer Page (JSP). В статье будут представлены примеры реализации этих методов.


Корректный XML для IBM Cognos BI

При использовании IBM Cognos BI для прямого подключения XML-источник должен соответствовать схеме, определенной файлом xmldata.xsd, который расположен в каталоге <каталог установки IBM Cognos BI>\bin. В самом файле XML-источника указывать местоположение схемы не нужно. XML-источник просто должен соответствовать файлу xmldata.xsd.

Ниже приведен краткий список поддерживаемых типов данных.

xs:int
xs:string
xs:double
xs:byte
xs:date

Более подробная информация и полный список поддерживаемых типов данных приведены в файле схемы xmldata.xsd и в документации.

Ниже приведен небольшой пример корректного файла XML-источника IBM Cognos BI.

<?xml version="1.0" encoding="UTF-8"?>
<dataset xmlns="http://developer.cognos.com/schemas/xmldata/1/"
 xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
	<metadata>
		<item name="AsOfDate" type="xs:string" length="12"/>
		<item name="RateOfReturn" type="xs:double"/>
		<item name="FamAcctIndex" type="xs:string" length="3"/>
		<item name="RowID" type="xs:string" length="1"/>
		<item name="BrM" type="xs:string" length="1"/>
		<item name="ProductLineCode" type="xs:int"/>
	</metadata>
	<data>
		<row>
			<value>Apr 26, 2002</value>
			<value>0.210066429</value>
			<value>JA1</value>
			<value>F</value>
			<value>B</value>
			<value>1</value>
		</row>
		<row>
			<value>Apr 27, 2002</value>
			<value>0.1111111</value>
			<value>BBB</value>
			<value>G</value>
			<value>B</value>
			<value>2</value>
		</row>		
	</data>
</dataset>

Важно отметить, что атрибут "length" (длина) влияет на эффективность обработки XML-данных программой IBM Cognos BI. Оперативная память выделяется согласно значению, указанному в атрибуте "length", независимо от реального размера данных. Например, если самый большой фрагмент данных для элемента состоит из 50 символов, но в атрибуте "length" выбрано большее значение, например 255, будет выделяться 255 байт памяти. Рекомендуется указывать длину, максимально соответствующую предполагаемому размеру самого большого фрагмента данных.

Для более гибкой работы с XML в качестве источника данных снова можно порекомендовать применение IBM Cognos Virtual View Manager.


Подключение к XML-файлу в файловой системе

С данной статьей предоставляется файл Test.xml, согласованный со схемой xmldata.xsd. Этот файл содержит структуру несложного XML-источника данных.

Ниже приведен порядок действий по подключению к файлу Test.xml как источнику данных и по созданию модели Framework Manager с использованием этого нового XML-источника данных.

  1. Поместите предоставленный файл Test.xml в файловую систему. В данном примере он помещается в корневой каталог диска C.
  2. Откройте Framework Manager и создайте новый проект под именем XML File Test.
  3. Выберите Design Language и нажмите кнопку OK.
  4. Под Select Metadata Source выберите Data Sources и нажмите кнопку Next.
  5. Нажмите кнопку New.
  6. Нажмите кнопку Next и в поле Name введите xmlFileTest.
  7. Нажмите кнопку Next и выберите XML в качестве типа источника данных из раскрывающегося списка Type:.
    Рисунок 1. Мастер New Data Source – экран выбора типа
    Рисунок 1. Мастер New Data Source – экран выбора типа
  8. Нажмите кнопку Next и в строке Connection string: введите полный или UNC-путь к файлу Test.xml.
    Рисунок 2. Мастер New Data Source – экран строки подключения
    Рисунок 2. Мастер New Data Source – экран строки подключения
    Если XML-файл размещен на общем ресурсе и доступ к нему должны иметь несколько серверов IBM Cognos BI, рекомендуется UNC-путь. При использовании локального пути копию XML-файла необходимо будет разместить в одном и том же месте на каждом сервере IBM Cognos BI, что потребует дополнительного обслуживания.
  9. Нажмите кнопку Finish, а затем Close.
  10. Выберите xmlFileTest в качестве источника данных и нажмите кнопку Next.
  11. Выберите Tables. В этой области пользовательского интерфейса Framework Manager можно развернуть древовидный список и увидеть импортируемые элементы, как показано ниже.
    Рисунок 3. Мастер Metadata – развернутая таблица xmlFileTest со столбцами
    Рисунок 3. Мастер Metadata – развернутая таблица xmlFileTest со столбцами
  12. Нажмите Next, Import, а затем Finish.
  13. В панели Project Viewer разверните пространство имен xmlFileTest.
  14. Щелкните правой кнопкой мыши на запросе xmlFileTest, выберите Test и нажмите кнопку Test Sample.
    Рисунок 4. Диалоговое окно Test Results – отображение данных, возвращаемых из XML-источника данных
    Рисунок 4. Диалоговое окно Test Results – отображение данных, возвращаемых из XML-источника данных
    Из XML-файла будут извлечены данные.
  15. Нажмите кнопку Close и в окне Project Viewer разверните запрос xmlFileTest. Названия элементов, обнаруженных в XML-документе, представлены по элементам запроса.
    Рисунок 5. Project Viewer – развернутый запрос xmlFileTest с элементами запроса
    Рисунок 5. Project Viewer – развернутый запрос xmlFileTest с элементами запроса
    Теперь можно создать и опубликовать в IBM Cognos BI пакет для использования в качестве источника отчетов.

Подключение к XML-файлу по HTTP

В этом примере файл Test.xml копируется в виртуальный каталог, а затем используется в качестве источника данных в IBM Cognos BI.

  1. Поместите предоставленный файл Test.xml в <каталог установки IBM Cognos BI>\webcontent. Можно использовать любой виртуальный каталог, но в данном примере для удобства реализации используется каталог webcontent, уже настроенный как виртуальный каталог для приложения IBM Cognos BI.
  2. Откройте Framework Manager и создайте проект XML Over HTTP Test.
  3. Выберите Design Language и нажмите кнопку OK.
  4. Под Select Metadata Source выберите Data Sources и нажмите кнопку Next.
  5. Нажмите кнопку New.
  6. Нажмите кнопку Next и в поле Name введите xmlOverHTTPTest.
  7. Нажмите кнопку Next и выберите XML в качестве типа источника данных из раскрывающегося списка Type:.
    Рисунок 6. Мастер New Data Source – экран выбора типа
    Рисунок 6. Мастер New Data Source – экран выбора типа
  8. Нажмите кнопку Next и в поле Connection string: введите полный URL-адрес файла Test.xml, в данном случае http://localhost/cognos8/Test.xml. Рекомендуется заменить localhost именем или IP-адресом реального сервера.
    Рисунок 7. Мастер New Data Source – экран строки подключения
    Рисунок 7. Мастер New Data Source – экран строки подключения
  9. Нажмите кнопку Finish, а затем Close.
  10. Выберите xmlOverHTTPTest в качестве источника данных и нажмите кнопку Next.
  11. Выберите Tables, нажмите кнопку Next, а затем Import и Finish.
  12. В панели Project Viewer разверните пространство имен xmlOverHTTPTest.
  13. Щелкните правой кнопкой мыши на запросе xmlOverHTTPTest, нажмите кнопку Test, а затем Test Sample.
    Рисунок 8. Диалоговое окно Test Results – отображение данных, возвращенных из XML-источника данных
    Рисунок 8. Диалоговое окно Test Results – отображение данных, возвращенных из XML-источника данных
    Снова будут извлечены данные из XML-файла, но на этот раз по протоколу HTTP.
  14. Нажмите Close. Теперь можно создать и опубликовать в IBM Cognos BI пакет для использования в качестве источника отчетов.

Преобразование XML для использования в IBM Cognos BI

Как упоминалось ранее, перед использованием в IBM Cognos BI XML-источник данных необходимо согласовать со схемой, определенной в файле xmldata.xsd, который расположен в каталоге <каталог установки IBM Cognos BI>\bin. Если исходный XML не соответствует этой схеме, можно использовать Extensible Stylesheet Language Transformations (XSLT) вместе с предпочитаемым языком программирования для преобразования исходного XML-файла в формат, подходящий для IBM Cognos BI.

На приведенной ниже диаграмме вызывающее приложение, которое может быть написано на любом из многочисленных языков программирования или shell-сценариев, извлекает XML из источника данных. Например, приложение может извлекать RSS-фид с Web-сайта. Затем вызывающее приложение обращается к XSLT-файлу, используемому для преобразования исходного XML в другой XML-документ (в данном случае это документ, подходящий для IBM Cognos BI).

Рисунок 9. Диаграмма архитектуры приложения XML-преобразования
Рисунок 9. Диаграмма архитектуры приложения XML-преобразования

Вызывающее приложение может записать XML в файл, к которому IBM Cognos BI подключается в файловой системе или по HTTP-протоколу. Это хороший вариант, если получаемый XML-документ имеет большой размер и содержит статические данные. Если вызывающее приложение основано на Web-технологиях, например JSP, оно может напрямую выдавать поток XML-данных в IBM Cognos BI. Этот вариант больше подходит в случае, когда требуются данные в режиме реального времени и XML-источник меньше по размеру (преобразование исходных XML-данных будет осуществляться при каждом вызове JSP).

Обе ситуации будут рассмотрены в следующих разделах. Перед тестированием каждого сценария будет развернуто приложение devWorksXMLDS, предоставляемое с данной статьей, с использованием контейнера сервлетов/JSP Tomcat, поставляемого с IBM Cognos BI.

При развертывании на другом сервере приложений (например, на IBM WebSphere) обратитесь к документации за инструкциями по развертыванию.


Настройка предоставленного примера

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

  • Распаковка установочного файла на сервере IBM Cognos BI.
  • Редактирование файлов, требующих изменения.
  • Компоновка WAR-файла.
  • Развертывание WAR-файла на сервере приложений или в контейнере сервлетов.

Распаковка установочного файла

Распакуйте файл devWorksXMLDS.zip в каталог <каталог установки IBM Cognos BI>/war установки IBM Cognos BI.

Должен появиться каталог devWorksXMLDS.

Сейчас самый подходящий момент для настройки приложения перед компоновкой WAR-файла. Потенциально настройки требуют только два файла – build.bat для Windows или build.sh для Unix/Linux и devWorksXMLDS.bat для Windows или devWorksXMLDS.sh для Unix/Linux.

Настройка установочных файлов

Перейдите в каталог <каталог установки IBM Cognos BI>/war/devWorksXMLDS для редактирования необходимых файлов.

При редактировании файла build.bat для указания местоположения корректного JRE или JDK в данной среде может потребоваться изменение следующей строки:

..\..\bin\jre\1.5.0\bin\java -classpath
 "../../bin/ant.jar;../../bin/xml-apis.jar;../../bin/xercesImpl.jar"
 org.apache.tools.ant.Main %*

При редактировании файла build.sh для указания JRE или JDK в данной среде может потребоваться изменение следующих строк:

if [ "$JAVA_HOME" = "" ] 
then
	echo The JAVA_HOME variable must be present
else 
	$JAVA_HOME/bin/java -classpath
	 "../../bin/ant.jar:../../bin/xml-apis.jar:../../bin/xercesImpl.jar"
	 org.apache.tools.ant.Main $@
fi

При редактировании файла devWorksXMLDS.bat для указания местоположения корректного JRE или JDK в данной среде может потребоваться изменение следующей строки:

set MY_JAVA="c:\Program Files\cognos\c8.4\bin\jre\1.5.0\bin\java.exe"

При редактировании файла devWorksXMLDS.sh для указания JRE или JDK в данной среде может потребоваться изменение следующих строк:

if [ "$JAVA_HOME" = "" ]; then
	JAVA_HOME=/usr/bin
fi

JAVA="$JAVA_HOME/java"

Компоновка WAR-файла

Выполните компоновку WAR-файла, запустив соответствующий сценарий компоновки для вашей среды.

В Windows выполните сценарий <каталог установки IBM Cognos BI>/war/devWorksXMLDS/build.bat.

В UNIX или Linux выполните сценарий <каталог установки IBM Cognos BI>/war/devWorksXMLDS /build.sh.

Сценарии компоновки создадут файл <каталог установки IBM Cognos BI>/war/devWorksXMLDS/devWorksXMLDS.war.

Развертывание WAR-файла

В нашем примере WAR-файл будет развернут на сервере IBM Cognos BI Tomcat. Убедитесь, что IBM Cognos BI работает.

Скопируйте файл <каталог установки IBM Cognos BI>/war/devWorksXMLDS/devWorksXMLDS.war в каталог <каталог установки IBM Cognos BI>/webapps.

Через короткое время сервер IBM Cognos BI Tomcat автоматически распакует WAR-файл. WAR-файл можно впоследствии удалить.

Развернутое приложение содержит необходимые JAR-файлы, которые используются shell-сценариями приложения и JSP.

Рисунок 10. Windows Explorer – отображение необходимых JAR-файлов
Рисунок 10. Windows Explorer – отображение необходимых JAR-файлов

Эти JAR-файлы необходимы для использования и преобразования XML. Данное приложение использует XSLT-процессор Xalan-J. Подробная информация о Xalan-J приведена по адресу http://xml.apache.org/xalan-j.

Теперь приложение devWorksXMLDS установлено и готово к использованию.


Преобразование RSS-фида в пригодный для использования XML

Приложение devWorksXMLDS предоставляет два механизма преобразования RSS XML-фида в XML, пригодный для IBM Cognos BI:

  1. Выполнение shell-сценария (devWorksXMLDS.bat для Windows или devWorksXMLDS.sh для UNIX/Linux), сохраняющего преобразованные XML-данные в файл.
  2. Выполнение JSP и передача потока преобразованных XML-данных по HTTP.

Оба метода используют XSLT для преобразования исходных данных в пригодный для IBM Cognos BI XML-документ.

Выполнение сценария для генерирования XML-файла

Предоставленные в devWorksXMLDS shell-сценарии извлекают XML-данные из RSS-фида (в данном случае с сайта IBM developerWorks), преобразуют XML в пригодный для IBM Cognos BI XML-документ и сохраняют его в файл. Этот файл может выступать источником данных для IBM Cognos BI при подключении к нему по локальному или UNC-пути либо при вызове его из виртуального каталога по HTTP.

Рисунок 11. Диаграмма архитектуры приложения XML-преобразования
Рисунок 11. Диаграмма архитектуры приложения XML-преобразования

Опять-таки этот метод лучше всего подходит для больших наборов статических данных. Данные обновляются путем выполнения сценария в соответствии с предварительно определенным графиком.

Синтаксис выполнения сценария с параметрами:

Windows

devWorksXMLDS <sourceXML> <xsltFile> <outputXML>

Unix/Linux

./devWorksXMLDS.sh <sourceXML> <xsltFile> <outputXML>

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

После выполнения сценария XML-файл появляется в выходном каталоге, и его можно впоследствии использовать в качестве источника данных для IBM Cognos BI. По умолчанию это тот же каталог, откуда запускается shell-сценарий.

Рисунок 12. Windows Explorer – отображение сгенерированного выходного файла devWorksXMLDS.xml
Рисунок 12. Windows Explorer – отображение сгенерированного выходного файла devWorksXMLDS.xml

Теперь этот файл можно подключить к IBM Cognos BI из файловой системы следующим образом:

Рисунок 13. Мастер New Data Source – экран строки подключения с путем в файловой системе
Рисунок 13. Мастер New Data Source – экран строки подключения с путем в файловой системе

Полная строка подключения:

C:\Program Files\cognos\c8\webapps\devWorksXMLDS\devWorksXMLDS.xml

Напомним, что рекомендуется UNC-путь, чтобы к файлу могло обращаться несколько серверов IBM Cognos BI.

Если XML-файл расположен в виртуальном каталоге (как в данном примере), строка подключения должна выглядеть следующим образом:

Рисунок 14. Мастер New Data Source – экран строки подключения с URL-адресом
Рисунок 14. Мастер New Data Source – экран строки подключения с URL-адресом

Полная строка подключения:

http://localhost:9300/devWorksXMLDS/devWorksXMLDS.xml

"localhost" следует заменить именем сервера или IP-адресом.

Вызов JSP для передачи XML-данных по HTTP

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

Предоставленный пример JSP приложения devWorksXMLDS извлекает XML из RSS-фида (с сайта IBM developerWorks), преобразует XML в пригодный для IBM Cognos BI XML-документ и затем направляет поток данных в IBM Cognos BI.

Рисунок 15. Диаграмма архитектуры приложения XML-преобразования
Рисунок 15. Диаграмма архитектуры приложения XML-преобразования

В этом методе никакие данные не сохраняются.

URL-адрес для вызова JSP-страницы http://<server>:<port>/devWorksXMLDS/devWorksXMLDS.jsp, где <server>:<port> – это сервер приложений, на котором было развернуто Web-приложение devWorksXMLDS. Это тот же URL-адрес, который указывался при настройке свойства Connection String для источника данных IBM Cognos BI.

В нашем примере URL-адресом JSP-страницы, развернутой на Tomcat, является http://localhost:9300/devWorksXMLDS/devWorksXMLDS.jsp, где localhost следует заменить именем или IP-адресом реального сервера.

Для тестирования приложения введите URL-адрес в адресной строке Web-браузера. Результат должен выглядеть примерно так, как показано на рисунке 16.

Рисунок 16. Web-браузер с XML-данными, возвращенными приложением devWorksXMLDS.jsp
Рисунок 16. Web-браузер с XML-данными, возвращенными приложением devWorksXMLDS.jsp

Местоположение источника данных и XSLT-файла указывается в JSP. Переменная sXMLSrc определяет местоположение исходных XML-данных, а переменная sXSLTFile указывает местоположение XSLT-файла.

Теперь эту страницу в качестве источника данных можно подключить к IBM Cognos BI следующим образом:

Рисунок 17. Мастер New Data Source – экран строки подключения
Рисунок 17. Мастер New Data Source – экран строки подключения

Полная строка подключения:

http://localhost:9300/devWorksXMLDS/devWorksXMLDS.jsp

Заключение

Описанные выше действия и предоставленный пример помогут вам быстро настроить использование XML как источника данных в среде IBM Cognos BI.


Загрузка

ОписаниеИмяРазмер
Примеры сценариев для данной статьиCognos_BI-XML_as_a_Data_Source.zip6 КБ

Ресурсы

Комментарии

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=856256
ArticleTitle=Оптимальные методики IBM Cognos: IBM Cognos BI – XML в качестве источника данных
publish-date=05282012