86
Платформа прикладных программ IBM TRIRIGA версия 3 выпуск 5 Построение программ для IBM TRIRIGA Application Platform: Каркас производительности IBM

(C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Платформа прикладных программ IBMTRIRIGAверсия 3 выпуск 5

Построение программ дляIBM TRIRIGA ApplicationPlatform:Каркас производительности

IBM

Page 2: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

Это издание относится к версии 3, выпуску 5, модификации 0 IBM TRIRIGA Application Platform и ко всемпоследующим выпускам и изменениям, пока в новых изданиях не будет указано иное.

© Copyright IBM Corporation 2011, 2015.

Page 3: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Содержание

Глава 1. Каркас производительности . 1

Глава 2. Структуры данных . . . . .. 3Обзор архитектуры . . . . . . . . . . .. 3Таблицы фактов . . . . . . . . . . . .. 4

Пример таблицы фактов и связанных измерений .. 7Структура показателей . . . . . . . . . .. 8Интеграция ETL . . . . . . . . . . . .. 10

Архитектура интеграции ETL . . . . . .. 10Процесс интеграции ETL . . . . . . . .. 12Конфигурирование необходимых компонентов дляинтеграции ETL . . . . . . . . . . .. 15Определение и поддержка преобразований ETL .. 16

Использование ETL с Pentaho Spoon . . .. 16Использование ETL с редакторомконфигураций IBM Tivoli Directory Integrator .. 33

Запуск преобразований ETL . . . . . . .. 56Элементы заданий ETL, группы заданий ипланировщики заданий. . . . . . . .. 56Создание или изменение элементов заданийETL . . . . . . . . . . . . . .. 56Добавление или изменение групп заданий .. 58Создание или изменение планировщиковзаданий. . . . . . . . . . . . .. 59

Настройка объектов преобразования . . . .. 61Определение бизнес-объектов преобразований,форм и техпроцессов . . . . . . . .. 61Сохранение XML преобразования в ContentManager. . . . . . . . . . . . .. 61Конфигурирование времени выполнениятехпроцесса . . . . . . . . . . .. 61

Запуск спецификации задачи пользовательскогорабочего потока ETL . . . . . . . .. 62

Глава 3. Показатели . . . . . . . .. 63Отчеты о показателях . . . . . . . . . .. 63Показатели ключей . . . . . . . . . . .. 64Показатели формы . . . . . . . . . . .. 64

Фильтрация данных. . . . . . . . . .. 65Подотчеты . . . . . . . . . . . .. 65

Глава 4. Инструмент выравниванияиерархии . . . . . . . . . . . .. 67Плоские иерархии . . . . . . . . . . .. 67

Примеры плоских иерархий . . . . . . .. 68Менеджер структур иерархии . . . . . . .. 69

Получение доступа к структурам иерархий . .. 69Создание иерархии данных . . . . . . .. 69Создание иерархии форм . . . . . . . .. 70

Глава 5. Таблицы фактов . . . . .. 71Список поддерживаемых таблиц фактов ипоказателей . . . . . . . . . . . . .. 71Факты, для которых требуются специальныепромежуточные таблицы и ETL . . . . . . .. 71Зависимые ETL . . . . . . . . . . . .. 72

Замечания . . . . . . . . . . . .. 75Товарные знаки . . . . . . . . . . . .. 77Положения и условия для документации по продукту 77Заявление IBM о конфиденциальности в интернете .. 78

© Copyright IBM Corp. 2011, 2015 iii

Page 4: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

iv © Copyright IBM Corp. 2011, 2015

Page 5: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Глава 1. Каркас производительности

IBM® TRIRIGA Workplace Performance Management и IBM TRIRIGA Real EstateEnvironmental Sustainability предоставляют реализуемые решения для помощикорпорациям в планировании, управлении, оценке и усовершенствовании процессов,относящихся к недвижимости и коммунальным службам.

Каркас производительности IBM TRIRIGA управляется из TRIRIGA WorkplacePerformance Management и TRIRIGA Real Estate Environmental Sustainability,включающих в себя следующие компоненты:v Службы загрузки таблиц фактов и преобразование данныхv Построитель показателей, использующий инструмент моделирования данныхv Механизм запросов показателейv Расширенный менеджер отчетов для построения отчетов о показателяхv Расширенные возможности портала для обработки карт учета показателейv Набор предварительно построенных показателей, отчетов и оповещений,

существенно повышающих производительность многих ролей, поддерживаемых вTRIRIGA

© Copyright IBM Corp. 2011, 2015 1

Page 6: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

2 © Copyright IBM Corp. 2011, 2015

Page 7: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Глава 2. Структуры данных

TRIRIGA использует среду разработки ETL (extract, transform, and load - извлечение,преобразование и загрузка) как инструмент для перемещения данных из таблицбизнес-объектов в таблицы фактов. Чтобы можно было представить показатели,отчеты, оценочные карты и другие меры производительности, данные должны иметьформу таблиц фактов и плоских иерархических таблиц, которые обрабатываютсяинструментами составления отчетов.

Обзор архитектурыИсходные данные для TRIRIGA Workplace Performance Management поступают избазы данных прикладной программы TRIRIGA, из данных финансовой сводки,импортированных из внешних финансовых систем, и из данных счетчика построения,импортированных из внешних систем управления построением.

При помощи технологии ETL исходные данные загружаются в таблицы фактов.Таблицы фактов и таблицы измерений находятся в том же репозитории базы данных,что и прикладные программы TRIRIGA. В таблицах фактов хранятся числовыеданные, называемые фактами, которые используются для вычисления значенийпоказателей TRIRIGA Workplace Performance Management. Каждая строка в таблицефактов содержит ссылку на один или несколько связанных бизнес-объектов,классификаций или списков, группирующих и фильтрующих факты. Эти строкиназываются измерениями.

Механизм запросов показателей выполняет запросы по таблицам фактов иизмерений. Запросы показателей быстро пересчитывают значения показателей помере перемещения пользователя вверх и вниз по иерархическому измерению.

На следующей диаграмме показаны отдельные слои, составляющие даннуюархитектуру, и поток данных между этими слоями:

© Copyright IBM Corp. 2011, 2015 3

Page 8: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Отчеты WPM

Таблицы фактов Таблицы измерений

Менеджер производительности WPM

Механизм запросов показателей

Сценарии ETL

Порталы WPMна основе ролей

TRIRIGA IWMS

Сводныефинансовые

данныеПромежуточные

таблицы

Сценарии ETL

Данные счетчиковздания

Таблицы фактовВ таблицах фактов хранятся данные, которые используются для расчета показателейв метрических отчетах. Таблицы фактов заполняются через преобразования ETL. Дляидентификации бизнес-объекта как таблицы фактов в Data Modeler поставьте вопределении бизнес-объекта таблицы фактов флаг Управляется внешним образом.

Каждая таблица фактов реализуется в IBM TRIRIGA Application Platform как особыйбизнес-объект, содержащий все или некоторые из следующих элементов:

4 © Copyright IBM Corp. 2011, 2015

Page 9: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 1. Таблицы фактов

Элемент таблицы фактов Описание

Иерархические измерения Каждое иерархическое измерение - это полелокатора бизнес-объекта, которыйпринадлежит к иерархическому модулю(например, здание, код затрат на услуги илигород). Для каждого иерархическогоизмерения отчеты о показателяхподдерживаются соответствующейиерархической структурой.Иерархическое измерение может ссылаться налюбые или все бизнес-объекты в модуле.Укажите как можно более подробнуюинформацию. Точное указаниебизнес-объекта улучшает детализацию вашихотчетов.Для каждого иерархического измерениянеобходимо определить соответствующуюиерархическую структуру. Иерархическиеструктуры используются для путейдетализации в отчетах о показателях.

Неиерархические измерения Каждое неиерархическое измерение - это полесписка или поле локатора бизнес-объекта,который принадлежит к неиерархическомумодулю (например, задача или сотрудник).

Числовые поля фактов Числовые поля фактов - это стандартныечисловые поля, включая или исключаясвойства единицы измерения (ЕИ). Числовыеполя фактов можно характеризовать какотносящиеся к одному из следующих типов:

v Аддитивные – могут суммироваться повсем измерениям.

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

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

Поля ЕИ Поля единиц измерения (ЕИ) (кроме полейплощади) заполняются в их локальных,введенных EИ.

Поля площади Поля площади заполняются значениями как вбританской системе (например, квадратныефуты), так и в метрической (например,квадратные метры).

Глава 2. Структуры данных 5

Page 10: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 1. Таблицы фактов (продолжение)

Элемент таблицы фактов Описание

Поля валюты Поля валюты заполняются с использованиембазовой валюты. Конвертация валют невыполняется.

Текущий период времени Период времени - это специальное измерение,которое служит для идентификации периода вединицах даты/времени, для которогодоступна отдельная запись факта. Чаще всегоэто период времени, за который собраныданные. Для случаев, когда измерениепериода времени не используется в качествепути детализации или фильтра, необходимозаполнить поле triCapturePeriodTX, чтобыуказать измерение, используемое дляуказания периода сбора данных. Если этополе существует, соответствующийбизнес-объект должен содержать полеtriCurrentBL, с помощью которогопомечаются записи, отражающие текущийпериод. Эти записи затем используются дляфильтрации набора результатов для отчета опоказателях.

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

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

Совет: Не удаляйте и не изменяйте ни один из бизнес-объектов фактов, таблицфактов или сценариев ETL, поставляемых со стандартным ПО TRIRIGA. Вместоэтого, чтобы изменить существующий объект, скопируйте его, переименуйте копию иизмените копию нужным образом.

6 © Copyright IBM Corp. 2011, 2015

Page 11: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Пример таблицы фактов и связанных измеренийТаблицы фактов и измерений строятся методом по схеме типа звезда конструкциихранилища данных. Они хранятся в том же репозитории базы данных, что иприкладные программы TRIRIGA.

На следующей диаграмме показан пример одной из предварительносконфигурированных таблиц фактов в TRIRIGA Workplace Performance Management:

Бизнес-объект пространства

Поля таблицы фактов

Вместимость пространства

Общее количество персонала

Остаток вместимости

Площадь пространства

Выделенная площадь

ID пространства

ID здания

ID положения

ID географии

ID класса пространств

ID класса зданий

ID собственности для здания

Таблицы измерений

Бизнес-объект здания

Иерархия положений

Иерархия географий

Иерархия классов пространств

Иерархия классов зданий

Иерархия собственности для зданий

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

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

В следующей таблице показан пример горизонтальной иерархии на основегеографии:

Глава 2. Структуры данных 7

Page 12: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 2. Пример горизонтальной иерархии географии

SPEC_ID Номер уровняSPEC_IDуровня 1

SPEC_IDуровня 2

SPEC_IDуровня 3

SPEC_IDуровня 4

Мировой 1 Мировой Недоступно Недоступно Недоступно

North America 2 Мировой North America Недоступно Недоступно

EMEA 2 Мировой EMEA Недоступно Недоступно

APAC 2 Мировой APAC Недоступно Недоступно

СоединенныеШтаты

3 Мировой North America СоединенныеШтаты

Недоступно

Канада 3 Мировой North America Канада Недоступно

Невада 4 Мировой North America СоединенныеШтаты

Невада

Техас 4 Мировой North America СоединенныеШтаты

Техас

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

Структура показателейФункциональные возможности TRIRIGA Workplace Performance Managementнаправлены в первую очередь на получение фактов показателей и включениесоставления отчетов о показателях.

Большинство показателей TRIRIGA многомерные, и один показатель обеспечиваетсводное представление высокого уровня (например, Общие операционные расходы наобласть для всей организации и портфолио) и, при детализации по отдельнымизмерениям или фильтрам, представление для конкретного подразделения(например, Общие операционные расходы на область по операциям в СевернойАмерике, которые учитывают подразделения, управляемые отделением СевернойАмерики).

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

TRIRIGA Workplace Performance Management содержит следующие типы показателей,представляющие собой категории Оценочной карты в разделе портала Ключевыепоказатели:

Пользовательские показателиМера удовлетворенности заказчика

Финансовые показателиМера финансовой эффективности

8 © Copyright IBM Corp. 2011, 2015

Page 13: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Показатели портфолиоМера операционного использования и работоспособности в течениежизненного цикла активов

Показатели процессовМера эффективности и результативности процессов

Показатели отчетов и анализаАнализ конкретного показателя производительности

Дополнительно TRIRIGA Real Estate Environmental Sustainability включает в себяследующие типы показателей:

Охрана окружающей средыМера действенности инициатив по охране окружающей среды

Счетчики зданияИзмеряют характеристики здания по данным измерителей и датчиков

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

Механизм обработки показателей(инструмент анализа и отчетности)

Внешниеданные TRIRIGA

Факты Измерение

Портал программ TRIRIGA

Промежу-точныеданные

База данных TRIRIGA - это первичный источник данных для сбора операционныхданных с последующей загрузкой в таблицы фактов. Дополнительно для загрузки втаблицы фактов можно извлекать данные и из других источников.

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

Таблица измерений содержит измерения для каждого показателя. Для эффективностиизмерения хранятся в отдельной таблице. Таблица фактов содержит ключ (IDспецификации) для каждого измерения. Таблица измерений может быть или плоскойиерархической таблицей, или таблицей бизнес-объектов TRIRIGA.

Глава 2. Структуры данных 9

Page 14: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

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

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

Интеграция ETLДля генерирования файлов преобразования XML TRIRIGA использует или Редакторконфигураций среды разработки ETL Tivoli Directory Integrator, или Spoon средыразработки Pentaho ETL. При запуске через API эти преобразования перемещаютданные из исходных таблиц в таблицы назначения.

Архитектура интеграции ETLВ TRIRIGA используются две среды ETL для создания сценариев ETL, заполняющихтаблицы фактов. Эти две среды разработки ETL представляют собой редакторконфигураций Tivoli Directory Integrator и инструмент Spoon интеграции данныхPentaho. Среды разработки ETL разрешают создание запросов SQL, читающихданные из таблиц бизнес-объектов TRIRIGA и отображающих и преобразующихрезультаты в столбцы фактов и измерений таблиц фактов.

На следующей диаграмме показан поток данных между исходными данными, средойразработки ETL и слоями модели данных TRIRIGA Workplace PerformanceManagement:

10 © Copyright IBM Corp. 2011, 2015

Page 15: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Коммунальные службы

TRIRIGA IWMS

Недвижимость

Операции

Проекты

Сводныефинансовые данные

Таблицы измерений

Таблицы фактов

Редактор конфигурацийили Spoon

Исходные данные Среда разработки ETL Модель данных WPM

Данные счетчиковздания

Промежуточные таблицы

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

В TRIRIGA Workplace Performance Management используются стандартныеинструменты TRIRIGA Application Platform.

Инструменты платформы прикладных программ показаны на следующей диаграмме:

Глава 2. Структуры данных 11

Page 16: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

---

Построитель менеджеровМенеджер разделов порталаМенеджер портала

- Менеджер отчетов

- Программа моделированияданных

- ETL- ETL- ETL

Среда разработкиЭлемент заданияПланировщик заданий

- TRIRIGAАвтономная системаTRIRIGA

IWMS

Отчеты WPM

Таблицыфактов

Таблицыизмерений

Менеджерпроизводительности WPM

Механизм запросов показателей

Сценарии ETL

Порталы WPMна основе

ролей

Сводныефинансовые

данные

Промежу-точные

таблицы

Сценарии ETL

Данныесчетчиков

здания

Процесс интеграции ETLЧтобы переместить данные из исходных таблиц в таблицы назначения, надозапустить файлы преобразования ETL, разработанные вами в редактореконфигураций Tivoli Directory Integrator или Pentaho Spoon через API.

Преобразование должно существовать для каждой таблицы фактов. Таблицы фактовзаполняются через преобразования ETL, а не через прикладную программу TRIRIGA.

Продукт TRIRIGA Application Platform содержит в себе рабочий поток, выполняемыйпо расписанию для загрузки таблиц фактов. Этот рабочий поток вызываетпользовательскую задачу рабочего потока платформы, получающую последний файлXML преобразования из Content Manager и использующую для запускапреобразования Tivoli Directory Integrator или API Kettle.

12 © Copyright IBM Corp. 2011, 2015

Page 17: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

База данныхФайловая системаФайл XML

Среда разработки ETLXMLгенерирует преобразования

Сохранить XMLXMLОткрыть

БО форма п ы,

/ латформTRIRIGA Applicationопределенная для

управления преобразованиями

СкачиваниеЗакачивание

Менеджерсодержимого

Менеджерсодержимого

Рабочий поток п ывызывает

пользовательскую задачупо расписанию для

выполнения преобразований

латформTRIRIGA Application

Есть три главных процесса:v Конфигурирование, включающее в себя создание элемента бизнес-объекта/формы/

навигации преобразования и самого рабочего потока.v Создание/поддержание файла XML преобразования с использованием среды

разработки ETL.v Среда выполнения, представляющая собой запланированный рабочий поток,

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

Следующая диаграмма суммирует эти процессы для преобразований ETL PentahoSpoon:

Глава 2. Структуры данных 13

Page 18: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

В Spoon- XML

-

Создать преобразованияСохранить в файлфайловой системы

На платформе TRIRIGA Application- Рабочий поток будет запускать пользовательскую задачудля каждого преобразования

- Сбор переменныхСкачивание- XML

- JNDI

- API Kettle

во временный файлУстановка с сервером прикладных программВызов для выполнения преобразования

Конфигурирование - выполняется один раз

Исполнитель 1

Разработчик прикладных программ

На платформе TRIRIGA Application- Создать преобразование БО/форма- Создать рабочий поток для вызова пользовательской задачи

Обслуживание преобразований - для каждого факта

Исполнитель 2

Разработчик прикладных программ

Создать

Исполнитель 3

Профессиональное обслуживание

Редактировать

На платформе TRIRIGA Application- Создать БО фактов- Определить отображения между

фактами и метаданными

На платформе TRIRIGA Application- Скачать файл XML

с формой преобразования

На платформе TRIRIGA- Закачать файл XML

с формой преобразования

На платформе TRIRIGA Application- Закачать файл XML

с формой преобразования

Система

Во время выполнения - по расписанию

В Spoon- Редактировать XML преобразования- Сохранить в файлфайловой системы

Следующая диаграмма суммирует эти процессы для преобразований ETL редактораконфигураций Tivoli Directory Integrator:

14 © Copyright IBM Corp. 2011, 2015

Page 19: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Исполнитель 2Разработчик прикладных программ

На платформе TRIRIGA Application- Создать БО фактов- Определить отображения между

фактами и метаданными

Создать

В редакторе конфигураций- Создать XML преобразования- Сохранить в файлфайловой системы

На платформе TRIRIGA- Закачать файл XMLс формой преобразования

Исполнитель 3Профессиональное обслуживание

На платформе TRIRIGA Application- Скачать файл XMLс формой преобразования

Редактировать

В редакторе конфигураций- Редактировать XML преобразования- Сохранить в файлфайловой системы

На платформе TRIRIGA Application- Закачать файл XMLс формой преобразования

Обслуживание преобразований - для каждого факта

Исполнитель 1Разработчик прикладных программ

На платформе TRIRIGA Application- Создать преобразование БО/форма- Создать рабочий поток для вызова пользовательской задачи- Определить параметры соединений JDBC

Конфигурирование - выполняется один раз

Система

На платформе TRIRIGA Application- Рабочий поток будет запускать пользовательскую задачудля каждого преобразования

- Сбор переменных- Получение параметров соединения JDBC

- Отправка XML на сервер TDI для выполнения преобразования

Во время выполнения - по расписанию

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

Конфигурирование необходимых компонентов дляинтеграции ETL

В составе TRIRIGA Application Platform преобразованиями управляют бизнес-объекти форма. Для создания преобразования должны быть определены таблицыисточников и таблицы фактов назначения и подготовлены отображения.

Глава 2. Структуры данных 15

Page 20: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Для каждой таблицы фактов, загруженной через преобразование, существует своязапись. Двоичное поле для бизнес-объекта преобразования переводит файл XMLпреобразования в Content Manager. Такая форма предоставляет возможностьскачивать/закачивать файлы XML для упрощения поддержки XML преобразования.TRIRIGA поставляется с предварительно сконфигурированным элементом заданияETL в виде реализации данного бизнес-объекта или формы.

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

TRIRIGA предоставляет все бизнес-объекты, формы и рабочие потоки, требуемые дляподдержки поставляемых продуктов TRIRIGA Workplace Performance Management иTRIRIGA Real Estate Environmental Sustainability.

Определение и поддержка преобразований ETLИспользуйте среду разработки ETL, чтобы создать преобразование для перемещенияданных. При этом преобразовании можно выполнять вычисления и использоватьпеременные из TRIRIGA Application Platform и из системы.

Использование ETL с Pentaho SpoonPentaho Spoon можно использовать как среду разработки ETL.

Обзор использования Pentaho Spoon:

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

Совет: Возможно, вам надо будет выполнить только часть этих действий.Обязательные шаги зависят от того, определяете ли вы преобразование илиподдерживаете его.v Запустите файл spoon.bat или kettle.exe, открыв инструмент Spoon. Выберите

опцию Без репозитория, так как его не нужно использовать.v Или откройте существующий файл XML, скачанный в файловую систему при

помощи формы Форма преобразования или используйте Файл > Создать >Преобразование, чтобы создать новое преобразование.

v Определите параметры JNDI для локально базы данных. Используйте TRIRIGAкак имя соединения. Задайте соединение с базой данных в инструменте, выбрав Вид> Соединения базы данных > Создать. Когда преобразование запущено рабочимпотоком, сведения о соединении перезаписываются информацией о соединениясервера прикладных программ.

v Используйте меню Конструирование для планирования преобразованияследующим образом:– Извлечь строки из таблиц при помощи Конструирование > Входные данные >

Табличные входные данные.– Убедитесь, что во всех полях строк есть значения, проводя вычисления через

Конструирование > Преобразование > Средство отображения значений.– Для вычислений используйте Конструирование > Преобразование > Калькулятор.

16 © Copyright IBM Corp. 2011, 2015

Page 21: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

– Предоставьте последовательность строк назначения при помощиКонструирование > Поиск > Вызов процедуры БД, используя хранимуюпроцедуру базы данных NEXTVAL.

– При необходимости для преобразования данных используйте Написаниесценариев > Измененное значение JavaScript Script и другие действия.

– Определите таблицу, для которой строки - это выходные данные, при помощиКонструирование > Выходные данные > Табличные выходные данные

– Отобразите поля на шаге Сгенерированные отображения для объектаназначения.

v Свяжите шаги через пункт меню Вид > Переходы и шаг за шагом спланируйтепреобразование.

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

v Сохраните преобразование, используя в меню Файл > Сохранить. Не выполняйтесохранение в репозиторий. Вместо этого задайте для типа файла XML и сохранитеэтот файл с расширением .ktr. Если не задавать тип файла, по умолчаниюиспользуется преобразование Kettle, при котором файл XML сохраняется срасширением .ktr.

Установка Pentaho Spoon:

Pentaho Spoon можно установить как среду разработки ETL. Используйте версию 3.1,с которой интегрирован продукт TRIRIGA.

Процедура1. Скачайте Pentaho Spoon версии 3.1 по адресу http://sourceforge.net/projects/pentaho/

files/Data%20Integration/3.1.0-stable/pdi-open-3.1.0-826.zip.2. Извлеките файлы из файла .zip с сохранением структуры каталогов.3. Просмотрите самую последнюю версию Pentaho Spoon и сопутствующую

документацию на сайте http://kettle.pentaho.org/.

Конфигурирование локального JNDI:

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

Процедура1. В каталоге pdi-open-3.1.0-826/simple-jndi отредактируйте файл

jdbc.properties и добавьте следующие свойства:v LocalJNDI/type=javax.sql.DataSource

v LocalJNDI/driver=oracle.jdbc.driver.OracleDriver

v LocalJNDI/url=jdbc:oracle:thin:@localhost:1521:orcl

v LocalJNDI/user=tridata2

v LocalJNDI/password=tridata2

2. Измените эту информацию, как требуется, в том числе драйвер, если выиспользуете DB2 или SQL Server.

3. Сохраните файл и закройте его.

Создание преобразований и соединений с базами данных:

Вы можете создать преобразования и соединения с базами данных для использованиямежду Pentaho Spoon и TRIRIGA.

Глава 2. Структуры данных 17

Page 22: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Процедура1. Открыв инструмент Spoon, запустите файл spoon.bat в каталоге

pdi-open-3.1.0-826. Выберите вариант запуска без репозитория.2. Чтобы создать новое преобразование, щелкните правой кнопкой мыши по узлу

Преобразования и выберите Создать.3. В режиме Просмотр создайте нужное соединение с базой данных. Щелкните

правой кнопкой мыши по соединениям с базами данных в узле Преобразования ивыберите Создать.

4. Задача Пользовательский рабочий поток заменит параметры соединенияTRIRIGA значениями параметров сервера прикладных программ JNDI.Сконфигурируйте соединение с базой данных следующим образом:v Имя соединения: TRIRIGAv Тип соединения: Oraclev Доступ:JNDIv Параметры: Имя JNDI: LocalJNDI

5. Выберите Проверить, чтобы убедиться в правильности конфигурации соединения.6. Сохраните подробности соединения с базой данных.7. Обязательно сохраните преобразование в виде файла XML вне репозитория. Для

преобразования Kettle используется расширение .ktr. По умолчанию файл дляпреобразования Kettle сохраняется как файл .ktr.

Выполнение преобразования из Pentaho Spoon:

Можно запустить преобразование, которое либо завершено, либо находится впроцессе завершения.

Процедура1. Сохраните преобразование и выберите Запустить.2. При необходимости задайте переменные.3. Выберите Предварительный просмотр, чтобы выводить изменения, вносимые во

входной поток, по мере выполнения каждого шага.

Выбор шагов Spoon:

При помощи режима проектирования можно выбрать различные типы шагов Spoon идобавить их в преобразование.

Процедура1. Чтобы добавить шаг к преобразованию, выберите Тип шага и перетащите этот

шаг в левой панели навигации на палитру.2. Чтобы связать два шага, выберите Вид на левой панели навигации и дважды

щелкните по Переходы.3. Введите шаги Из и В и выберите OK.4. Другой вариант - выбрать два шага при помощи Ctrl+щелчок мышью, щелкнуть

по одному из них правой кнопкой мыши и выбрать Создать переход.5. Чтобы добавить примечание к преобразованию, щелкните по палитре правой

кнопкой мыши и выберите Новое примечание.

18 © Copyright IBM Corp. 2011, 2015

Page 23: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Пример преобразования Spoon:

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

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

В примере преобразования есть следующие элементы:v Получает входные строки и поля из организации

T_TRIORGANIZATIONALLOCATION и пространства T_TRISPACE, гдеorg.TRILOCATIONLOOKUPTXOBJID = space.SPEC_ID.

v Использование IBS_SPEC.UPDATED_DATE для ограничения выбора строк сиспользованием диапазона дат, передаваемого из бизнес-объекта преобразования.

v Использование средства отображения значений для обеспечения наличия значенияво всех строках для space.TRIHEADCOUNTNU, space.TRIHEADCOUNTOTHERNUи org.TRIALLOCPERCENTNU, если не задано значение 0.

v Использования калькулятора, чтобы задать для TRIFACTTOTALWORKERSASSвыражение (space.TRIHEADCOUNTNU + space.TRIHEADCOUNTOTHERNU) *org.TRIALLOCPERCENTNU.

v Получение TRICREATEDBYTX и TRIRUNDA, переданных из бизнес-объектапреобразования на шаге Получить переменные.

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

v Использование процедуры базы данных NEXTVAL, чтобы задать SPEC_ID,выполните этот шаг, чтобы использовать пять потоков для повышенияпроизводительности.

v Использование шага сценария JavaScript для определения, в срок ли выполняетсяпроект, и вычисление длительности проекта. Выполните этот шаг, чтобыиспользовать три потока для повышения производительности.

v Отображение полей на T_TRISPACEALLOCFACTOID.

Ключевые понятия для рассмотрения при построении преобразования включают всебя следующие элементы:v При добавлении каждого шага проверяйте, соответствует ли преобразование

вашим планам.v Преобразования нужно разрабатывать с учетом защиты от ошибок. Например,

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

v Есть сложности работы с датами, так как TRIRIGA обеих баз данныхподдерживает хранение в полях даты значений типа DATE и TIME. Решения длядаты показывают, как обрабатывать диапазоны дат в SQL.

v Убедитесь, что используются параметры JNDI, а ваша база данныхпреобразования независима, особенно если ваше решение должно работать нанескольких платформах баз данных (DB2, Oracle и Microsoft SQL Server).

Глава 2. Структуры данных 19

Page 24: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

v Все атрибуты бизнес-объекта преобразования отправляются в преобразование какпеременные. Есть пара исключений. Атрибуты типа Время или Системнаяпеременная игнорируются. Переменные можно использовать в вашем SQL илипередавать их во входной поток, используя команду Get Variables со следующимсинтаксисом: ${имя_переменной}, где имя_переменной - это имя атрибута.

v Прежде чем использовать переменные в табличных входных данных, убедитесь вполной проверке и конфигурировании преобразования. Особенно важно проверитьJavaScript, предварительный просмотр табличных входных данных и отображениетаблиц. Переменные в преобразовании можно задать в пункте меню Изменить >Задать переменные среды или на странице Выполнить раздела Переменная. Прииспользовании переменных становятся доступны дополнительные проверочныефункции в Spoon.

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

v Возможно, следует добавить индекс. Он может быть ключевым дляпроизводительности, поскольку ETL получают данные из T-таблиц инымспособом, чем обычные программы.

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

Конфигурирование шагов ввода Spoon:

Для ввода данных в преобразование можно использовать шаги ввода.

Об этой задаче

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

Процедура1. Дважды щелкните кнопкой мыши по шагу ввода таблицы, чтобы открыть

информацию для этого шага.2. Задайте соединение с TRIRIGA или базой данных источника.3. Введите ваш SQL в таблицу SQL.4. Нажмите кнопку OK, чтобы сохранить ввод таблицы.5. Выберите Предварительный просмотр для предварительного просмотра данных,

включаемых во ввод таблицы. Если в SQL используются переменные, этипеременные нужно задать для работы Предварительного просмотра. Нужно либожестко закодировать значения переменных при тестировании, либо, выбравИзменить > Задать переменные среды, задать значения этих переменных.Переменные в SQL - это $(triActiveStartDA_MinDATE} и${triActiveEndDA_MaxDATE}.

Результаты

Введенный SQL извлекает входные строки из организацииT_TRIORGANIZATIONALLOCATION и пространства T_TRISPACE, гдеorg.TRILOCATIONLOOKUPTXOBJID = space.SPEC_ID. Он использует даты из

20 © Copyright IBM Corp. 2011, 2015

Page 25: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

бизнес-объекта преобразования для ограничения включаемых данных.

Конфигурирование шагов преобразования Spoon:

Шаги преобразования можно использовать для изменения входных данных или длядобавления информации во входной поток.

Об этой задаче

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

Процедура1. Используйте шаг Отображение значений, чтобы гарантировать, что у полей будут

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

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

3. Используйте шаг Прибавить константы для прибавления констант во входномпотоке и для задания значений, необходимых для процедуры базы данныхNEXTVAL.

4. Этот шаг необходим во всех преобразованиях, где будет использоватьсяпроцедура базы данных NEXTVAL. Для SEQ_NAME задайте значениеSEQ_FACTSOID, а для INCR - значение 1.

5. Шаг Вычисление служит для приема полей и выполнения ограниченного наборавычислений. Он предоставляет набор функций, которые применяются к значениямполя. Производительность шага Вычисление лучше, чем при использовании шаговсценариев JavaScript.

6. Встроенные вычисления ограничены. Чтобы просмотреть список доступныхфункций, выберите столбец Вычисление.

Конфигурирование шагов поиска Spoon:

Шаги поиска можно использовать для извлечения дополнительных данных из базыданных в поток данных.

Об этой задаче

Процедура вызова базы данных (Call DB) позволяет преобразованию вызватьпроцедуру базы данных. Поток информации проходит через процедуру и поступаетобратно в преобразование. Можно создать последовательности для записей таблицфактов.

Процедура1. Сконфигурируйте вызов процедуры DB для использования NEXTVAL, отправки в

SEQ_NAME и INCR и вывода при помощи CURR_VALUE.2. Определите, сколько экземпляров этого шага поиска следует запустить. При

тестировании преобразования выполнение этого шага с запуском пяти

Глава 2. Структуры данных 21

Page 26: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

экземпляров помогает значительно повысить производительность. Например, для30000 записей время выполнения сокращается с 90 до 30 секунд.

3. Измените число потоков, выполняющих шаг, щелкнув по шагу правой кнопкоймыши и выбрав Изменить число запускаемых копий.

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

Конфигурирование шагов заданий Spoon:

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

Об этой задаче

В преобразовании примера Spoon во входной поток вводятся переменныеtriCreatedByTX и triRunDA. Нужно также получить переменные для использования вкачестве переменных ONTIME и DURATION, чтобы их можно было задать на шагахJavaScript.

Процедура

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

Конфигурирование шагов сценариев Spoon:

Для реализации возможностей JavaScript можно использовать шаги сценариев.

Об этой задаче

Их можно использовать для определенных манипуляций с данными входного потока,которые нельзя выполнить в калькуляторе. Вы можете вычислить длительность илизадать значения в потоке на основе других значений в условии if/then/else. Выможете задать значения в потоке преобразования как константы или на основепеременных.

Процедура1. Используйте возможности сценариев JavaScript, если вам требуются логические

операции для задания значений.2. В примере преобразования Spoon длительность вычисляется вычитанием одной

даты из другой. Эта длительности определяет, был ли план выполнен вовремя.3. С возможностями сценариев JavaScript, если вам нужна информация из входных

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

Пример

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

22 © Copyright IBM Corp. 2011, 2015

Page 27: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

var actualEnd;var actualStart;var plannedEnd;var plannedStart;var duration;var valueDuration;var valueOnTime;

// проход по строке входного потока и получение полей,// с которыми нам нужно работатьfor (var i=0;i<row.size();i++) {

var value=row.getValue(i);

// получить значение поля в виде числаif (value.getName().equals("TRIACTUALENDDA")) {actualEnd = value.getNumber();

}if (value.getName().equals("TRIACTUALSTARTDA")) {actualStart = value.getNumber();

}if (value.getName().equals("TRIPLANNEDENDDA")) {plannedEnd = value.getNumber();

}if (value.getName().equals("TRIPLANNEDSTARTDA")) {plannedStart = value.getNumber();

}

// это - ’переменные’ в потоке, в которых нам нужно// изменить параметры duration (длительность) и ontime (в срок),// поэтому нам нужен фактический класс Value, а не значение// переменнойif (value.getName().equals("DURATION")) {valueDuration = value;

}if (value.getName().equals("ONTIME")) {valueOnTime = value;

}}

// вычисление длительности в дняхduration = Math.round((actualEnd - actualStart) / (60*60*24*1000));// вычисление длительности в часах// duration = (actualEnd - actualStart) / (60*60*1000);

// запись длительности в ’переменную’ в строкеvalueDuration.setValue(duration);

// определение значения ontime и запись этого значения в// ’переменную’ в потоке строкиif ((actualEnd == null) || (plannedEnd == null))

valueOnTime.setValue("");else if (actualEnd > plannedEnd)

valueOnTime.setValue("no");else

valueOnTime.setValue("yes");

Выберите Проверить сценарий, чтобы убедиться, что JavaScript компилируется. ШагиПроверить сценарий и Предварительный просмотр при вводе таблицы не могутработать с переменными, если они не заданы. Чтобы задать переменные впреобразовании, выберите Правка > Задать переменные среды. Это расширяетвозможности функций проверки в Pentaho Spoon.

Например, можно использовать Правка > Задать переменные среды и задать дляtriActiveStartDA_MinDATE значение to_date(‘20061201’, ‘YYYYmmdd’).

Глава 2. Структуры данных 23

Page 28: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Если при определении запроса вы используете алиасы столбцов, при поиске в столбцепри помощи getName надо использовать тот же самый алиас.

В следующем примере на шаге ввода таблицы показана опция выбора:SELECT mainProject.triProjectCalcEndDA ActualEndDate,

mainProject.triProjectActualStartDA ActualStartDate

Если вы ищете значение ActualEndDate, используйте этот алиас, а не имя столбца избазы данных, как показано:if (value.getName().equals("ActualEndDate")) {

actualEnd = value.getNumber();}

Конфигурирование шагов вывода Spoon:

Шаги вывода можно использовать для записи данных обратно в базу данных.

Об этой задаче

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

Процедура1. Щелкните дважды кнопкой мыши и добавьте информацию о соединении и

таблицу фактов, которую вы хотите использовать в качестве выходной таблицы.2. Когда она будет сконфигурирована, а шаги - соединены, щелкните правой

кнопкой мыши по шагу вывода таблицы.3. Выберите Сгенерировать отображение для этого шага назначения.4. Отобразите исходные поля на поля назначения в базе данных назначения и

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

5. Чтобы завершить преобразование, перетащите шаг отображения в положениемежду двумя последними шагами.

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

Проверка преобразования:

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

Об этой задаче

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

24 © Copyright IBM Corp. 2011, 2015

Page 29: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Процедура1. Задайте для переменной triRunDA дату и время запуска техпроцесса. Она может не

быть атрибутом для бизнес-объекта Преобразование. Это числовоепредставление даты и времени запуска. У triRunDA нет шести форматов даты, таккак соответствующее значение генерируется динамически при выполнении задачипользовательского техпроцесса. triRunDA необходим для задания даты созданиястроки фактов.

2. triCreatedByTX - атрибут бизнес-объекта Преобразование.3. triActiveStartDA_MinDATE и triActiveEndDA_MaxDATE представляют собой

упакованные представления triActiveStartDA и triActiveEndDA. При проверкеSpoon, если она выполняется в Oracle или DB2, их нужно упаковать при помощиto_date(‘нужная вам дата’, ‘формат’).

4. Щелкните по Запустить, чтобы начать преобразование. Если на каком-то шагевозникает ошибка, этот шаг выводится красным, а сообщение об ошибкесохраняется в файле журнала. Обратиться к файлу журнала можно на страницежурнала.

Решение для даты:

При работе с Pentaho Spoon несколько переменных даты требуют вычисления исравнения. Эти вычисления и сравнения содержатся в решении для даты.

Решение для даты требуется в трех случаях:1. Сравнение двух дат. Это сравнение используется для определения, соблюдается

ли график выполнения проекта.2. Вычисление промежутка между двумя датами в днях. В некоторых случаях это

вычисление используется для расчета продолжительности в часах.3. Сопоставление даты, например, измененной или обработанной, с диапазоном дат,

например, от первого дня месяца до последнего.

В первом и втором случае задача решается с помощью шагов сценария JavaScript.

В третьем случае используется диапазон дат в разделе Табличные входные данные.

Существует два типа дат. Даты, хранимые как значения Date в базе данных, и даты,представленные в базе данных числом.

Совет: Все объекты TRIRIGA хранят числа в полях Дата и Дата и время в базеданных. Выберите поле как число, чтобы работать с полями бизнес-объектов.Выберите поле как дату, чтобы работать с полями таблиц системной платформы,определенными как дата.

Выбор поля в качестве даты:

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

В этом примере IBS_SPEC.UPDATED_DATE используется как поле даты для определения,требуется ли строка. triActiveStartDA и triActiveEndDA - это диапазон дат. Этидаты берутся из полей triActiveStartDA и triActiveEndDA в бизнес-объектепреобразования.

Таблица IBS_SPEC - это не объект TRIRIGA. Это таблица системной платформы,используемая для отслеживания объектов в TRIRIGA. В ней есть поле, которое

Глава 2. Структуры данных 25

Page 30: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

изменяется каждый раз, когда изменяется объект в TRIRIGA. Это поле -UPDATED_DATE, и в базе данных оно является полем даты, а не числовым полем.

В следующем примере кода используются ${triActiveStartDA_MinDATE} и${triActiveEndDA_MaxDATE}. Эти встроенные поля данных будут выбирать все записиот 00.00 начальной даты до 23.59 конечной даты.SELECT org.SPEC_ID ORG_SPEC_ID, org.TRIORGANIZATIONLOOKUOBJID,space.CLASSIFIEDBYSPACESYSKEY, org.TRIALLOCPERCENTNU, org.TRIALLOCAREANU,space.TRIHEADCOUNTNU, space.TRIHEADCOUNTOTHERNU, spec.UPDATED_DATEFROM T_TRIORGANIZATIONALLOCATION org, T_TRISPACE space, IBS_SPEC specWHERE org.TRILOCATIONLOOKUPTXOBJID = space.SPEC_IDand space.SPEC_ID = spec.SPEC_IDand spec.UPDATED_DATE >= ${triActiveStartDA_MinDATE}and spec.UPDATED_DATE <= ${triActiveEndDA_MaxDATE} order by UPDATED_DATE

В Oracle или DB2, ${triActiveStartDA_MinDATE} выглядит как to_date (‘2007070100:00:00’, ‘YYYYmmdd hh24:mi:ss’), а ${triActiveEndDA_MaxDATE} - как to_date(‘20070731 23:59:59’, ‘YYYYmmdd hh24:mi:ss’).

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

Выбор поля в качестве числового:

Вы можете работать с таблицами бизнес-объектов, выбрав поле как числовое.

Вместо использования IBS_SPEC.UPDATED_DATE как определяющего поля даты длядаты TRIRIGA этот метод сравнивает определяющее поле непосредственно сtriActiveStartDA и triActiveEndDA, поскольку все они являются числами в базеданных.

В следующем примере кода triCaptureDA - поле для T_TRISPACE.SELECT org.SPEC_ID ORG_SPEC_ID, org.TRIORGANIZATIONLOOKUOBJID,space.CLASSIFIEDBYSPACESYSKEY, org.TRIALLOCPERCENTNU, org.TRIALLOCAREANU,space.TRIHEADCOUNTNU, space.TRIHEADCOUNTOTHERNU, space.TRICAPTUREDAFROM T_TRIORGANIZATIONALLOCATION org, T_TRISPACE space, IBS_SPEC specWHERE org.TRILOCATIONLOOKUPTXOBJID = space.SPEC_IDand space.TRICAPTUREDA >= ${triActiveStartDA_Min}and space.TRICAPTUREDA <= ${triActiveEndDA_Max} order by space.TRICAPTUREDA

Аналогично полям дат воспользуйтесь переменными Min и Max, чтобы убедиться, чтовремя начала - 00:00:00, а время окончания - 23:59:59. Например, с помощью этихпеременных ваш поиск может найти запись, относящуюся к 13:54 31 декабря.

Переменные дат:

Для каждого атрибута даты или даты и времени в бизнес-объекте Fact Transformсистема создаст шесть переменных Kettle.

В следующей таблице дается сводка по этим переменным Kettle:

Таблица 3. Переменные Kettle

Переменная Kettle Описание

${triActiveStartDA} No suffix = значение времени вмиллисекундах, начиная с 1 января 2014, безизменений во времени. Эта переменнаяотносится к полям, которые представлены какчисловые.

26 © Copyright IBM Corp. 2011, 2015

Page 31: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 3. Переменные Kettle (продолжение)

Переменная Kettle Описание

${triActiveStartDA_Min} Min = значение времени в миллисекундах,начиная с 1 января 2014, с заданнымзначением времени 00:00:00 для указаннойдаты. Эта переменная относится к полям,которые представлены как числовые.

${triActiveStartDA_Max} Max = значение времени в миллисекундах,начиная с 1 января 2014, с заданнымзначением времени 23:59:59 для указаннойдаты. Эта переменная относится к полям,которые представлены как числовые.

${triActiveStartDA_DATE} DATE = встроенная переменная в форматедаты, без изменений во времени. Этапеременная относится к полям, которыепредставлены как даты в базе данных.Для Oracle и DB2 она выводится как: to_date(‘20070615 22:45:10’,’YYYYmmdd h24:mi:ss’)В случае SQL Server она выглядит как:‘20070615 22:45:10’

${triActiveStartDA_MinDATE} MinDATE = встроенная переменная в форматедаты с заданным значением времени 00:00:00.Эта переменная относится к полям, которыепредставлены как даты в базе данных.

${triActiveStartDA_MaxDATE} MaxDATE = встроенная переменная вформате даты с заданным значением времени23:59:59. Эта переменная относится к полям,которые представлены как даты в базеданных.

Если вы задали переменные ${triActiveStartDA_Min} и ${triActiveStartDA_Max},чтобы узнать период времени между двумя датами, необходимо захватить все строкиза этот период времени. Этот период начинается в полночь и заканчивается за однусекунду до полуночи. Если вы используете только значение даты, вы можете неполучить все желаемые строки, в зависимости от времени этой переменной. Вам надозадать минуты и секунды, поскольку обе базы данных TRIRIGA хранят даты в поледаты и времени или в числовом поле.

Переменные ${triActiveStartDA_MinDATE} и ${triActiveStartDA_MaxDATE} помогаютсопоставлять даты.

Например, для triActiveStartDA, чьё значение - 20070615 22:45:10,triActiveStartDA_MinDATE =(Oracle) to_date('20070615 00:00:00','YYYYmmdd h24:mi:ss')(SQL Server) '20070615 00:00:00'triActiveStartDA_MaxDATE =(Oracle) to_date('20070615 23:59:59','YYYYmmdd h24:mi:ss')(SQL Server) '20070615 23:59:59'

Перемещение сценариев ETL в TRIRIGA из Kettle:

После выполнения и проверки преобразования оно должно быть закачано в элементзадания ETL TRIRIGA.

Напоминание: Сохраните преобразование в файле типа XML с расширением .ktr.

Глава 2. Структуры данных 27

Page 32: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

На следующем рисунке показан поток между средой ETL и TRIRIGA.

База данныхФайловая системаФайл XML

Среда разработки ETLXMLгенерирует преобразования

Сохранить XMLXMLОткрыть

БО форма п ы,

/ латформTRIRIGA Applicationопределенная для

управления преобразованиями

СкачиваниеЗакачивание

Менеджерсодержимого

Менеджерсодержимого

Рабочий поток п ывызывает

пользовательскую задачупо расписанию для

выполнения преобразований

латформTRIRIGA Application

Переменные, переданные в Kettle:

Все передаваемые в Kettle переменные - строкового типа. Числовые переменныепреобразуются пользовательской задачей рабочего потока в строковый тип. В Kettleподдерживаются следующие типы полей TRIRIGA: текстовые, логические, дата, датаи время, локаторы и числа.

Таблица 4. В приведенном примере есть следующие поля для элемента задания ETL:

Имя поля Метка поля Тип поля

triActiveEndDA Активная дата окончания Дата

triActiveStartDA Активная дата начала Дата

triBONamesTX Имена БО Текст

triControlNumberCN Контрольное число Контрольное число

triCreatedByTX Кем создан Текст

triLocator triLocator Текст

triModuleNamesTX Имена модулей Текст

triNameTX Имя Текст

triTransformBI Преобразование файла Двоичный

Таблица 5. Ниже перечислены переменные, передаваемые в Kettle:

Переменная, переданная в Kettle Описание

triNameTX (Текст)

28 © Copyright IBM Corp. 2011, 2015

Page 33: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 5. Ниже перечислены переменные, передаваемые в Kettle: (продолжение)

Переменная, переданная в Kettle Описание

triActiveStartDA (Число), дата в миллисекундах от 1 января2014 года

triActiveStartDA_DATE (Дата), в случае Oracle или DB2 встроена,время, как оно задано в атрибуте

triActiveStartDA_MinDATE (Дата), в случае Oracle или DB2 встроена,время - 00.00.00

triActiveStartDA_MaxDATE (Дата), в случае Oracle или DB2 встроена,время - 23.59.59

triActiveStartDA_Min (Число), дата в миллисекундах от 1 января2014 года, время - 00.00.00

triActiveStartDA_Max (Число), дата в миллисекундах от 1 января2014 года, время - 23.59.59

triActiveEndDA (Число), дата в миллисекундах от 1 января2014 года

triActiveEndDA_DATE (Дата), в случае Oracle или DB2 встроена,время, как оно задано в атрибуте

triActiveEndDA_MinDATE (Дата), в случае Oracle или DB2 встроена,время - 00.00.00

triActiveEndDA_MaxDATE (Дата), в случае Oracle или DB2 встроена,время - 23.59.59

triActiveEndDA_Min (Число), дата в миллисекундах от 1 января2014 года, время - 00.00.00

triActiveEndDA_Max (Число), дата в миллисекундах от 1 января2014 года, время - 23.59.59

triActiveEndDA (Число), дата в миллисекундах от 1 января2014 года

triCreatedByTX (Текст)

triRunDATE (Число), дата запуска, заданнаяпользовательской задачей рабочего потока

triLocator (Текст - локатор), поле локатора, содержащеессылку на другой бизнес-объект. Этапеременная содержит текстовое значениеданного поля записи

triLocator_IBS_SPEC (Текст - локатор), содержит ID спецификациизаписи в поле triLocator. ID спецификацииможно использовать для поиска информации,относящейся к данной записи, в другихтаблицах базы данных

triControlNumberCN и triTransformBI не передаются в Kettle.

Важное замечание: Сведения о переменных:v Есть по шесть переменных для каждого поля типа Дата или Дата и время.

TRIRIGA обрабатывает значение и передает его в Kettle в шести разных форматах.v Все переменные в Kettle - это строки. Если требуется, чтобы переменная была

числом в сценарии, нужно выполнить преобразование. Вы можете задать числовоеполе, например, TRICREATEDDA с переменной, например, triRunDATE. Kettle

Глава 2. Структуры данных 29

Page 34: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

v Надо использовать правильное представление дат. Например, нельзя включить вчисло выбранных spec.UPDATED_DATE >= ${triCreatedDA}. spec.UPDATED_DATE- это дата, тогда как triCreatedDA - число. Результаты будут неточными иливозникнет ошибка SQL.

v Типы поддерживаемых для передачи в Kettle атрибутов ограничены следующими:текст, логический, дата, дата и время, числа. Все другие типы данных TRIRIGAпропускаются (кроме локаторов).

v Для полей типа Локатор создается две переменные, одна для текста локатора иодна для SPEC_ID связанной записи. SPEC_ID можно использовать для поискаинформации, относящейся к данной записи, в других таблицах базы данных.

Отладка сценариев ETL в прикладной программе:

Для отладки сценариев ETL в прикладной программе необходимо сначала настроитьзапись в журнал, а затем инициировать задачу техпроцесса RunETL Custom дляпросмотра информации в журнале.

Настройка ведения журнала:

Прикладная программа TRIRIGA предоставляет возможности отладки при запускесценариев ETL в TRIRIGA.

Процедура1. На консоли администратора выберите управляемый объект Ведение журнала

платформы. Затем выберите опцию включения ведения журнала ETL.2. Выберите ETL категории > Преобразования > Запустить преобразование, чтобы

включить отладочную запись в журнал в коде платформы TRIRIGA,обрабатывающем элементы заданий ETL. Сообщения журнала записываются вserver.log.

3. Выберите ETL категории > Преобразования > Kettle, чтобы включить отладочнуюзапись в журнал в преобразованиях Kettle. Сообщения журнала записываются вserver.log.

4. Примените изменения. Теперь при выполнении сценария ETL в журнал серверабудет записываться связанная с ETL информация.

Важное замечание: Поскольку в журнал может записываться большой объеминформации, задайте отладочный уровень записи в журнал Pentaho Spoon толькодля одного выполнения элемента задания ETL.

Отладка с использованием заданий ETL:

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

Об этой задаче

Если вы используете элемент задания ETL, просто выберите действие Запуститьпроцесс в этой форме.

30 © Copyright IBM Corp. 2011, 2015

Page 35: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Процедура

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

Пример

Ниже показан пример вывода в журнале:2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triCalendarPeriodTX_SPEC_ID} = 3103902

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triCalendarPeriodTX} = \Classifications\Calendar Period\2010\Q4 - 2010\October - 2010

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) *** objectfield found = BoFieldImpl[name=triEndDA,id=1044,Section=BoSectionImpl[name=General,id=BoSectionId[categoryId=1,subCategoryId=1],Business Object=BoImpl[name=triETLJobItem,id=10011948,module=ModuleImpl[name=triJobItem,id=22322]]]]

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triEndDA_MinDATE} = to_date(’20101031 00:00:00’,’YYYYmmdd hh24:mi:ss’)

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triEndDA_MaxDATE} = to_date(’20101031 23:59:59’,’YYYYmmdd hh24:mi:ss’)

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triEndDA_DATE} = to_date(’20101031 00:00:00’,’YYYYmmdd h24:mi:ss’)

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triEndDA} = 1288508400000

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triEndDA_Min} = 1288508400000

2011-01-21 14:01:27,125 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) Kettlevariable set - ${triEndDA_Max} = 1288594799000

2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) SpaceFact - Process Remove Nulls (LEGALINTEREST_SPEC_ID)’.0ended successfully, processed 3282 lines. ( 76 lines/s)

2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) SpaceFact - Process Remove Nulls ( REALPROPERTYUSE_SPEC_ID)’.0 ended successfully, processed 3282 lines. ( 76 lines/s)

2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) SpaceFact - Process Remove Nulls ( REALPROPERTYTYPE_SPEC_ID)’.0 ended successfully, processed 3282 lines. ( 76 lines/s)

Глава 2. Структуры данных 31

Page 36: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) SpaceFact - Process Filter rows’.0 ended successfully,processed 3307 lines. ( 76 lines/s)

2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) SpaceFact - Process Dummy (do nothing)’.0 ended successfully,processed 25 lines. ( 0 lines/s)

2011-01-21 14:02:10,595 INFO [SpaceFact](WFA:11325389 - 3070255 triProcessManual:38447392 IE=38447392) SpaceFact - Process Query for Space’.0 ended successfully,processed 0 lines. ( 0 lines/s)

Советы по настройке производительности:

Используйте для повышения производительности ETL в сочетании со Spoonследующие советы:

Сводка1. Закончив настраивать ETL для выполнения нужных вам действий, проведите

базовое измерение производительности.2. Используя Spoon, запустите ETL для базы данных, в которой будут

присутствовать тысячи строк, добавленных к вашей таблице фактов.3. Убедитесь, что вы используете соединение JNDI и запускаете Spoon в сети, где

расположена база данных, то есть нет дополнительной задержки из-за сетевыхсоединений. Не используйте для запуска VPN.

4. Получите полный список показателей вашего запуска. Например, по результатамзапуска triSpacePeopleFact ETL.

Анализ1. У шагов процедуры БД и JavaScript (Get Next Spec ID) должно быть несколько

копий. Щелкните правой кнопкой мыши по шагу и измените число копий длязапуска.v Для ETL triSpacePeopleFact в предыдущем примере выполнения для процедуры

JavaScript и базы данных (Get Next Spec ID) задается три копии каждой:v Не изменяется: 12,9, 12,7, 12,5, 12,6v Три копии для каждой: 11,4, 11,6, 12,3, 12,2

2. Измените размер набора строк по умолчанию от 1000 до 10000. При новыхпреобразованиях это будет настроено автоматически. Щелкните правой кнопкоймыши по ETL и откройте свойства преобразования.

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

4. Не возникает ли задержка на шаге Ввод данных? Будет ли полезен индекс длябазы данных? Если да, добавьте индекс и проведите повторный запуск.Улучшилась ли производительность? Возможно, следует использовать шагФильтр вместо применения базы данных для фильтрования набора результатов.

5. Анализ - это итерационный процесс. Всегда должно быть несколько копий шаговпроцедуры JavaScript и базы данных (Get Next Spec ID).

6. Работа ETL с 300-800 строк в секунду считается хорошим результатом,обеспечивающим приемлемый уровень производительности.

После начальной доработки мы получили существенное улучшение дляtriSpacePeopleFact ETL, просто выполнив шаги 1 и 2.

32 © Copyright IBM Corp. 2011, 2015

Page 37: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

В то же время для triSpaceFact ETL существенные улучшения были достигнутывыполнением шагов 1, 2 и 4.

Ниже показан запуск triSpacePeopleFact ETL с использованием шагов 1 и 2:Запрос пространства для сотрудников: Время = 11,6 с; Скорость (строк/с) = 743,6

Ниже показан запуск triSpaceFact ETL с использованием шагов 1 и 2:Запрос пространства: Время = 313,9 с; Скорость (строк/с) = 24,0

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

Обратите внимание также на то, что в отличие от Запроса памяти, шаг Сотрудникидля запроса памяти не критичен для производительности. Кроме как на шагах 1 и 2,triSpaceFact ETL хорошо работает без всяких изменений, обеспечиваяпроизводительность свыше 700 строк в секунду.

По шагу 4 для triSpaceFact ETL смотрите SQL для задачи Запрос памяти. Обратитевнимание на то, что в SQL используются операции SUM. SUM - это затратныеоперации, особенно из-за того, что на две таких операции нет ни одногоиндексируемого поля.

Добавьте индекс кT_TRIORGANIZATIONALLOCATION.TRILOCATIONLOOKUPTXOBJID. Нужнотолько добавить индекс к TRILOCATIONLOOKUPTXOBJID, хотя в SELECT SUMWHERE содержится TRISTATUSCL. TRISTATUSCL - это поле из 1000 символов, чтоделает работу с индексом медленной и даже нерациональной для SQL Server.CREATE INDEX IDX01_TRIORGALLOC ON T_TRIORGANIZATIONALLOCATION(TRILOCATIONLOOKUPTXOBJID) NOPARALLEL;

Перезапустите ETL.

Ниже показано запуск triSpaceFact ETL с шагами 1, 2 и 4.Запрос пространства: Время = 3,2 с; Скорость (строк/с) = 2378,3

Обратите внимание на изменение производительности (2378,3 строк в секунду) нашаге Ввод данных и время выполнения ETL (3,2 секунды на 7544 строки).

Важное замечание: О чем следует помнить при разработке ETL:v Исключите сложные операции SQL и функции агрегирования, такие как COUNT,

MIN, MAX и SUM. При необходимости использовать эти функции проверьте, непоможет ли индекс на шаге Ввод данных. Не создавайте индекс для полей типаlarge varchar; SQL Server может обрабатывать только индексы < 900 байтов.

v По возможности исключите операции OR и NOT и использование представлений(M_TableName в базе данных TRIRIGA).

v При возможности используйте вместо JavaScript шаг Калькулятор. Шаг JavaScriptможет оказаться очень ресурсоемким.

v Ограничьтесь только одним шагом сценария JavaScript.

Использование ETL с редактором конфигураций IBM TivoliDirectory IntegratorРедактор конфигураций Tivoli Directory Integrator - это среда разработки ETL,входящая в состав Tivoli Directory Integrator. Редактор конфигураций позволяетсоздавать, поддерживать, тестировать и отлаживать преобразования ETL, которые

Глава 2. Структуры данных 33

Page 38: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Tivoli Directory Integrator называет файлами конфигурации; он построен на основеплатформы Eclipse, предоставляя универсальную расширяемую среду разработки.

Прежде чем начать

У разработчиков системы, ответственных за определение или поддержкупреобразований с использованием редактора конфигураций, должен быть доступ кбазам данных TRIRIGA и опыт работы с ними.

Прежде чем вы сможете определять и поддерживать преобразования ETL припомощи редактора конфигураций Tivoli Directory Integrator, необходимо выполнитьследующие задачи:v Создать таблицы источника и назначенияv Установить соответствующие отображенияv Определить переменные, которые нужно передать в преобразованияv Добавить переменные в бизнес-объект преобразования или в форму

Установка редактора конфигураций Tivoli Directory Integrator:

Несмотря на то, что сервер времени выполнения Tivoli Directory Integratorавтоматически устанавливается вместе с TRIRIGA, для создания или измененияAssemblyLine Tivoli Directory Integrator необходимо установить редакторконфигураций на рабочую станцию, которую вы будете использовать для разработкиETL.

Процедура1. Скачайте и установите подходящий установочный пакет Tivoli Directory Integrator

с сайта Passport Advantage по адресу http://www.ibm.com/software/howtobuy/passportadvantage/pao_customers.htm.

Опция Описание

TDI711_TAP340_Install_Wind.zip Многоязыковая программа установки IBMTivoli Directory Integrator V7.1.1 для IBMTRIRIGA Application Platform V3.4.0 вWindows

TDI711_TAP340_Install_Linux.tar Многоязыковая программа установки IBMTivoli Directory Integrator V7.1.1 для IBMTRIRIGA Application Platform V3.4.0 в Linux

TDI711_TAP340_Install_SOLIntl.tar Многоязыковая программа установки IBMTivoli Directory Integrator V7.1.1 для IBMTRIRIGA Application Platform V3.4.0 в SolarisIntel

TDI711_TAP340_Install_SOLSprc.tar Многоязыковая программа установки IBMTivoli Directory Integrator V7.1.1 для IBMTRIRIGA Application Platform V3.4.0 в SolarisSPARC

TDI711_TAP340_Install_AIX.tar Многоязыковая программа установки IBMTivoli Directory Integrator V7.1.1 для IBMTRIRIGA Application Platform V3.4.0 в AIX

2. Выполните обновление до IBM Tivoli Directory Integrator V7.1.1, Пакетисправлений 3, который доступен по адресу http://www.ibm.com/support/docview.wss?uid=swg27010509.

34 © Copyright IBM Corp. 2011, 2015

Page 39: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

3. Примените исправление 7.1.1-TIV-TDI-LA0014, которое можно получить услужбы поддержки IBM.

4. Из каталога установки TRIRIGA скопируйте драйвер JDBC для типа базы данных,с которой будут соединяться ваши AssemblyLine, в каталог Tivoli DirectoryIntegrator каталог_установки_TDI/jars.v Для SQL Server скопируйте jtds-1.2.8.jarv Для Oracle скопируйте ojdbc6.jarv Для DB2 скопируйте db2jcc4.jar

Изменение портов, используемых Tivoli Directory Integrator:

Вы определяете порты, используемые Tivoli Directory Integrator, при установкеTRIRIGA. В редких случаях вам может потребоваться изменить эти параметрыпортов.

Об этой задаче

Чтобы изменить порт, на который TRIRIGA отправляет преобразования ETL в TivoliDirectory Integrator для выполнения, измените параметр TDI_HTTP_SERVER_PORT вTRIRIGAWEB.properties.v

Чтобы изменить порт, используемый агентом Tivoli Directory Integrator дляуправления сервером Tivoli Directory Integrator, выполните следующие задачи:v Измените параметр TDI_SERVER_PORT в TRIRIGAWEB.properties

v Измените параметр api.remote.naming.port в каталог_установки_TRIRIGA/TDI_IE/TDISolDir/solution.properties

Начинаем работу с Редактором конфигураций Tivoli Directory Integrator:

Чтобы подготовиться к определению и обслуживанию ETL при помощи редактораконфигураций, надо вначале изучить основные задачи, такие как открытие редактораконфигураций, знакомство с представлениями, создание проекта, конвейераAssemblyLine, зацепки, сценария или соединителя и импорт файла конфигурации.

Редактор конфигураций запускается при помощи сценария оболочки ibmditk. Этотсценарий находится в каталоге установки Tivoli Directory Integrator. Выберите папкурабочего пространства для хранения проектов и файлов.

В окне рабочего пространства Редактора конфигураций выводятся следующиепредставления:v Навигатор (слева вверху) содержит все проекты и исходные файлы для

конфигураций сервера и решений Tivoli Directory Integrator. Навигатор можетсодержать также другие файлы и проекты, например, текстовые файлы. Редакторконфигураций обрабатывает проекты Tivoli Directory Integrator по отдельности, такчто другие файлы и проекты редактором не затрагиваются.

v Представление Серверы (слева внизу) показывает состояние для каждого изсерверов, определенных в проекте Серверы TDI. Вы можете задать неограниченноечисло серверов. Это представление сервера обеспечивает несколько функций дляработы с серверами и их конфигурациями. При нажатии кнопки Обновитьобновляется состояние всех серверов в представлении.

v Область редакторов (справа вверху) - это область, где можно открыть документы,например, конфигурацию конвейера, для редактирования. Сбоку от этой областирасположена другая область, содержащая разные представления для другой

Глава 2. Структуры данных 35

Page 40: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

относящейся к делу информации. Самые важные из них - представлениеПроблемы, показывающее потенциальные проблемы с компонентом TivoliDirectory Integrator, журнал ошибок, где выводятся ошибки, возникающие приразработке решений, и представление Консоль, содержащее журнал консоли длязапуска серверов Tivoli Directory Integrator, например, тех, которые запускаютсяредактором конфигураций.

К общим операциям относятся следующие базовые задачи:v Чтобы создать проект, щелкните правой кнопкой мыши по пункту меню Файл >

Создать > Проект.v Чтобы создать конвейер AssemblyLine, выберите проект из навигатора и щелкните

правой кнопкой мыши по пункту меню Файл > Создать > Конвейер. AssemblyLine -набор компонентов, соединенных вместе для перемещения и преобразованияданных. Конвейер AssemblyLine описывает путь, по которому передаются данные.Дата, обрабатываемые этим путем, представлены как объект записи. Конвейеробрабатывает за один цикл одну запись. Это единица работы в Tivoli DirectoryIntegrator и она, как правило, представляет поток информации от одного илинескольких источников данных к одному или нескольким назначениям.Необходимо ввести имя, которое вы дали новому конвейеру AssemblyLine присоздании задания ETL, запускающего этот конвейер из TRIRIGA.

v Чтобы добавить зацепку конвейера, в области редакторов щелкните по Опции >Зацепки конвейера. Включите переключатель рядом с одной из зацепок и нажмитекнопку Закрыть. После добавления зацепки ее можно выбрать и добавить кодJavaScript.

v Чтобы добавить сценарий, в области редакторов выберите папку Feed или DataFlow. Щелкните правой кнопкой мыши и выберите Добавить компонент. Выберитефильтр сценариев, затем выберите компонент и нажмите кнопку Готово. Выберитесценарий,добавленный в ваш конвейер AssemblyLine и добавьте пользовательскийблок кода JavaScript.

v Чтобы добавить соединитель, в области редакторов выберите папку Feed или DataFlow. Щелкните правой кнопкой мыши и выберите Добавить компонент. Выберитефильтр соединителей, затем выберите компонент и нажмите кнопку Готово.Выберите соединитель, добавленный в конвейер, и укажите нужные данныеконфигурации.

v Чтобы импортировать файл конфигурации, выберите Файл > Импорт, затемвыберите IBM Tivoli Directory Integrator и Конфигурация. Нажмите кнопку Далее,задайте файл конфигурации, затем нажмите кнопку Готово. Когда вас попросятуказать имя проекта, введите имя и нажмите кнопку Готово.

Дополнительную информацию по использованию Tivoli Directory Integrator, смотритев информационном центре IBM Tivoli Directory Integrator Версии 7.1.1 по адресуhttp://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/topic/com.ibm.IBMDI.doc_7.1.1/welcome.htm.

Агент Tivoli Directory Integrator:

Агент Tivoli Directory Integrator обеспечивает интерфейс для запуска и остановкисервера времени выполнения Tivoli Directory Integrator из TRIRIGA.

Для нормальной работы сервер Tivoli Directory Integrator должен быть запущен дляэлементов заданий ETL типа Tivoli Directory Integrator. Если сервер Tivoli DirectoryIntegrator не запущен, элементы заданий ETL завершатся неудачно, и в журналсервера TRIRIGA будет записана ошибка.

36 © Copyright IBM Corp. 2011, 2015

Page 41: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Чтобы запустить или остановить сервер Tivoli Directory Integrator, перейдите напанель менеджера агентов на консоли администратора и запустите или остановитеагент Tivoli Directory Integrator. Запущенный агент далее работает по расписанию иотслеживает сервер Tivoli Directory Integrator. Если он обнаружит, что сервер TivoliDirectory Integrator не запущен, он попытается перезапустить его.

Дополнительную информацию о панели менеджера агентов смотрите в публикацииРуководство пользователя консоли администратора IBM TRIRIGA Application Platform3.

Конфигурация агента Tivoli Directory Integrator:

Вы можете сконфигурировать свойства, чтобы проверить, запущен ли сервер TivoliDirectory Integrator.

Свойство TDI_AGENT_SLEEPTIME для сервера прикладных программ, на которомзапущен агент Tivoli Directory Integrator, задает, как часто этот агент проверяет, чтосервер Tivoli Directory Integrator запущен и пытается перезапустить его.

Свойство TDI_SERVER_TIMEOUT для сервера прикладных программ, на которомзапущен агент Tivoli Directory Integrator, задает время ожидания для команды запускаили остановки сервера Tivoli Directory Integrator перед сообщением об ошибке.

Эти свойства заданы в файле TRIRIGAWEB.properties.

Ведение журнала агента Tivoli Directory Integrator:

Проблемы с агентом Tivoli Directory Integrator заносятся в журнал в файлеserver.log. Для получения дополнительной информации включите запись в журналотладки в агенте Tivoli Directory Integrator, изменив параметры ведения журналаплатформы на консоли администратора на сервере, где запущен агент.

Дополнительное конфигурирование записи в журнал можно выполнить, изменивпараметры log4j на сервере, где запущен агент.

Например, вы можете отслеживать ошибки на сервере Tivoli Directory Integrator,следуя стандартным соглашениям log4j. Если агент Tivoli Directory Integrator неможет запустить сервер Tivoli Directory Integrator, он запишет ошибку в следующуюкатегорию log4j: "com.tririga.platform.tdi.agent.TDIAgent.TDISTARTFAILED". Поумолчанию ошибки, записанные в эту категорию, попадают в журнал сервераTRIRIGA. Вы можете сконфигурировать другое поведение, например, отправкууведомления по электронной почте, сконфигурировав запись из этой категории вдругой добавляющий log4j.

Запуск преобразований из редактора конфигураций Tivoli Directory Integrator:

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

Об этой задаче

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

Глава 2. Структуры данных 37

Page 42: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Пример преобразования редактора конфигураций Tivoli Directory Integrator:

Следующая информация содержит пример некоторых шагов, связанных спреобразованием Tivoli Directory Integrator.

Чтобы следовать описанным ниже шагам, можно скачать копию файлаконфигурации .xml ‘Load Meter Item Staging Table’ из существующего элементазадания ETL. У многих из поставляемых ETL такие же потоки, но некоторые деталиразличаются, например, из каких именно таблиц получаются данные и как онипреобразуются.

Этот пример преобразования выполняет следующее:v Задает параметры записи в журнал, которые будут использоваться данным

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

v Устанавливает соединение с базой данных, используя параметры соединенияконвейера, сконфигурированные для DB-TRIRIGA.

v Получает параметр времени задержки журнала энергии из таблицы Параметрыприкладных программ

v Использует соединитель JDBC для получения записей из почасовой таблицыфактов активов

v Использует Карту входных атрибутов для отображения столбцов базы данных навнутренние атрибуты рабочих записей Tivoli Directory Integrator

v Использует зацепки Tivoli Directory Integrator и сценарии для выполненияпреобразований данных.

v Использует соединитель JDBC для вставки или изменения записей впромежуточной таблице Элемент счетчиков среды

v Использует Карту выходных атрибутов для отображения внутренних рабочихпеременных интервала на столбцы базы данных в таблице, сконфигурированной ввыходном соединителе JDBC

v Использует зацепку On Success для выполнения следующих задач:– Вести журнал статистики обработки для запуска– Задать errCount и errMsg

v Использует зацепку Tivoli Directory Integrator On Failure для выполнения следующихзадач:– Создать журнал для сообщений об ошибках– Задать errCount и errMsg

В следующих разделах представлены дополнительные подробности о ключевыхкомпонентах преобразования Tivoli Directory Integrator. Обсуждение в основномсосредоточено вокруг главных компонентов, используемых преобразованием изTRIRIGA. Tivoli Directory Integrator содержит много других компонентов, с помощьюкоторых можно управлять данными в зависимости от ваших потребностейпреобразования.

При построении преобразования учтите следующие советы:v Используйте доступные возможности тестирования при построении конвейеров,

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

если вы делаете вычисления, основанные на конкретных полях, эти поля во всехстроках должны содержать значения - пустые поля недопустимы. В противном

38 © Copyright IBM Corp. 2011, 2015

Page 43: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

v Проверить наличие пустых и неопределенных переменных и возвратить сообщениеоб ошибке, если эти переменные требуются для вашего конвейера AssemblyLine.Например, если ваш конвейер зависит от переменных DB-OTHER (например,jdbcOthUrl, jdbcOthDriver), для соединения с внешней базой данных надо проверить,что эти переменные заданы и правильно обрабатывают возникающие ошибки.

v Есть сложности работы с датами, так как все базы данных, поддерживаемыеTRIRIGA, хранят в полях даты значения типа DATE и TIME.

v Убедитесь, что используются соединения конвейера AssemblyLine, а ваша базаданных преобразования независима, особенно если ваше решение должно работатьна нескольких платформах баз данных (DB2, Oracle и Microsoft SQL Server).

v Перед запуском преобразования Tivoli Directory Integrator проверьте соединениявашего конвейера AssemblyLine. В противном случае преобразование может бытьпрервано из-за ошибки соединения с базой данных.

Конфигурирование программ записи в журнал:

Сконфигурируйте программы записи в журнал AssemblyLine и задайте параметрызаписи в журнал, которые будут использоваться этой сборкой, такие как Типобработчика записи в журнал, Путь к файлу, Присоединение, Шаблон даты, Шаблонпланирования, Уровень записи в журнал и Журнал включен.

Об этой задаче

Примечание: Придерживайтесь следующих соглашений о параметрах журнала,чтобы TRIRIGA правильно обрабатывал запись в журнал ETL при выполнениипреобразования из TRIRIGA:v При указании пути к файлу указывайте относительный путь ../../log/TDI/

имя_журнала, где имя_журнала - имя AssemblyLine. Например, Путь к файлу =../log/TDI/triLoadMeterData.log. Это гарантирует, что triLoadMeterData.logможно будет просмотреть из консоли администрирования TRIRIGA вместе состальными журналами TRIRIGA.

v Установите Тип обработчика записи в журнал в DailyRollingFileAppender длясовместимости с другими журналами TRIRIGA.

Эти параметры журнала применяются к журналам, которые создаются, когдапреобразование выполняется из редактора конфигураций. Некоторые значения будутпереопределены при запуске преобразования из элемента задания ETL TRIRIGA.Уровень записи в журнал, Шаблон дат и Шаблон планирования будутпереопределены значениями, указанными в файле TRIRIGA log4j.xml для обеспечениясогласованности журналов Tivoli Directory Integrator с журналами TRIRIGA ивозможности их конфигурирования таким же образом, как журналов TRIRIGA.

Процедура

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

Пример

В этом примере мы сконфигурировали журнал DailyRollingFileAppender с путем кфайлу ../../log/TDI/triLoadMeterData.log. Обработчики AssemblyLine могутзаписывать данные в этот журнал при помощи такого вызова команды:

Глава 2. Структуры данных 39

Page 44: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

var methodName = "triLoadMeterData - LookupMeterItemDTO ";task.logmsg("DEBUG", methodName + "Entry");

Инициализация AssemblyLines:

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

Процедура1. В области редактирования создайте обработчик AssemblyLine, выбрав Опции >

Обработчики линии сборки и включив переключатель Пролог – До инициализации.2. Добавьте в сценарий следующий код JavaScript, чтобы установить соединение с

базой данных и получить параметры Application Setting:var methodName = "triLoadMeterData - Prolog - Before Init - ";

// По умолчанию эта AL настроена для запуска из TRIRIGA.Для запуска этой AL из редактора конфигураций TDI// флажок runStandAlone должен быть установлен в 1 и ниже должны быть// указаны параметры соединения с базой данных.var runStandAlone = 1;

// Получить параметры соединения с базой данных, переданные этой AL из TRIRIGAif (runStandAlone == 0){task.logmsg("DEBUG", methodName + "Задание параметров соединения с базой данных TRIRIGA");var op = task.getOpEntry();var jdbcTriURL = op.getString("jdbcTriURL");var jdbcTriDriver = op.getString("jdbcTriDriver");var jdbcTriUser = op.getString("jdbcTriUser");var jdbcTriPassword = op.getString("jdbcTriPassword");

}else// Измените эти параметры соединения с базой данных при выполнении непосредственно из TDI{task.logmsg("DEBUG", methodName + "StandAlone: Задание параметров соединенияс базой данных TRIRIGA по умолчанию");var jdbcTriURL = "jdbc:oracle:thin:@1.1.1.1:1521:test";var jdbcTriDriver = "oracle.jdbc.driver.OracleDriver";var jdbcTriUser = "userid";var jdbcTriPassword = "password";}

try{

triConn.initialize(new Packages.com.ibm.di.server.ConnectorMode("Iterator"));}catch (err){

task.logmsg("ERROR", methodName + "Соединение с TRIRIGA завершилось неудачно");task.logmsg("DEBUG", methodName + "Исключительная ситуация:" + err);dbConnectionFailed = true;errCount=1;system.abortAssemblyLine("Соединение с базой данных TRIRIGA завершилось неудачно");return ;

}triConn.setCommitMode("After every database operation (Including Select)");var conn2 = triConn.getConnection();conn2.setAutoCommit(true);task.logmsg("DEBUG", methodName + "Соединение с TRIRIGA успешно");

...

40 © Copyright IBM Corp. 2011, 2015

Page 45: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

// Получить параметры прикладной программыtask.logmsg("DEBUG", methodName + "Получить triALEnergyLogLagTimeNU изпараметров прикладной программы");

var selectStmt1 = conn1.createStatement();var query = "select TRIALENERGYLOGLAGTIMEN from T_TRIAPPLICATIONSETTINGS";task.logmsg("ОТЛАДКА", methodName + "запрос:" + query);var rs1 = selectStmt1.executeQuery(query);var result = rs1.next();while (result){

try{

energyLogLagTime = rs1.getString("TRIALENERGYLOGLAGTIMEN");if (energyLogLagTime == null) energyLogLagTime=5

}catch (err){task.logmsg("INFO", methodName + "Задание значений по умолчанию для

параметров прикладной программы");energyLogLagTime=5}

task.logmsg("INFO", methodName + "energyLogLagTime:" + energyLogLagTime);result = rs1.next();

}rs1.close();selectStmt1.close();

3. Сохраните обработчик AssemblyLine.

Пример

В этом примере обработчик Пролог - До инициализации выполняет следующиезадачи:v Получение переменных преобразования Tivoli Directory Integrator, переданных в

AssemblyLine. Это происходит, только если AssemblyLine запущена из элементазадания ETL. Когда AssemblyLine запускается из редактора конфигураций,параметры соединения JDBC должны быть сконфигурированы в прологе.

v Установите соединения с базами данных.v Получите параметры конкретной AssemblyLine из записи Application Settings.

Получение данных:

Данные поступают в конвейер (AssemblyLine) из подключенных систем при помощиСоединителей и определенного режима ввода.

В нашем примере используется соединитель JDBC и карта атрибутов для передачиданных на наш конвейер.

Соединитель

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

В нашем примере соединитель JDBCConnectorToHourlyFact получает входные строкииз почасовой таблицы фактов. Этот компонент добавляется в поставляющий разделконвейера.

Глава 2. Структуры данных 41

Page 46: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Вкладка Соединение позволяет сконфигурировать параметры соединения JDBC. Вэтом примере мы используем параметр Advanced (Javascript) для полученияпараметров соединения, передаваемых на конвейер при инициализации. Кроме того,в разделе Дополнительно в поле Выбор SQL для сужения области данных,получаемых из таблицы базы данных, задается следующий запрос SQL.select * from T_TRIASSETENERGYUSEHFACT where TRIMAINMETERBL in (’TRUE’) andTRI-MAINMETERPROCESSEDN = 0 order by TRIWRITETIMETX.

Совет: Чтобы разрешить запись в журнал операторов SQL для соединителя,включите переключатель Подробный журнал на вкладке Соединение для этихсоединителей.

Карта атрибутов

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

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

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

Сценарии:

Для реализации пользовательских блоков кода JavaScript можно добавлять сценарии.

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

Validation

В нашем примере рассматривается проверка поля для наших входных данных, какпоказано в сценарии ниже:var methodName = "triLoadMeterData - JDBCConnectorToHourlyFact -GetNext Successful ";

task.logmsg("DEBUG", methodName + "Entry");

rowsProcessed = parseInt(rowsProcessed) + 1;

var SPEC_ID = work.SPEC_ID.getValue();task.logmsg("DEBUG", methodName + "SPEC_ID: " + SPEC_ID);

// Проверяем обязательные поля и не обрабатываем записи, если какие-либозначения отсутствуютvalidData = true;if (work.TRICAPTUREDDT.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRICOSTNU пуст.");validData=false;

}if (work.TRICOSTNU.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRICOSTNU пуст.");

42 © Copyright IBM Corp. 2011, 2015

Page 47: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

validData=false;}if (work.TRICOSTNU_UOM.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRICOSTNU_UOM пуст.");validData=false;

}if (work.TRIDIMASSETTX.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIDIMASSETTX пуст.");validData=false;

}if (work.TRIENERGYTYPECL.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIENERGYTYPECL пуст.");validData=false;

}if (work.TRIENERGYTYPECLOBJID.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIENERGYTYPECLOBJID пуст.");validData=false;

}if (work.TRIMETERIDTX.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIMETERIDTX пуст.");validData=false;

}if (work.TRIRATENU.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIRATENU пуст.");validData=false;

}if (work.TRIRATENU_UOM.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIRATENU_UOM пуст.");validData=false;

}if (work.TRIWRITETIMETX.getValue() == null){task.logmsg("ОШИБКА", methodName + "TRIWRITETIMETX пуст.");validData=false;

}

if (!validData){rowsNotValid = rowsNotValid + 1;task.logmsg("ОШИБКА", methodName + "Запись НЕ будет обработана.");var selectStmt1 = conn1.createStatement();

var query = "update " + tableName + " set TRIMAINMETERPROCESSEDN =3 where SPEC_ID = \’" + SPEC_ID + "\’";

task.logmsg("ОТЛАДКА", methodName + "запрос:" + query);var count = selectStmt1.executeUpdate(query);task.logmsg("ОТЛАДКА", methodName + "Число изменений:" + count);selectStmt1.close();system.exitBranch();

}

Фильтрация данных

Сценарий в нашем примере определяет, следует ли обрабатывать запись. Этотсценарий содержит оператор условия для сравнения двух полей даты. Если условиеверно, вызывается метод system.exitBrankch(), в результате чего текущая записьпропускается.

Глава 2. Структуры данных 43

Page 48: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

// Надо ли обрабатывать эту запись?if (capturedDT < earliestDateUTC){

task.logmsg("ОТЛАДКА", methodName + "Пропустить!");rowsSkipped = rowsSkipped + 1;

// Задание флага triMainMeterProcessedNU=2 в таблице T_TRIASSETENERYUSEHFACT// указывает, что мы не будем обрабатывать эту записьvar selectStmt1 = conn1.createStatement();var query = "update " + tableName + " set TRIMAINMETERPROCESSEDN =

2 where SPEC_ID = \’" + SPEC_ID + "\’";task.logmsg("ОТЛАДКА", methodName + "запрос:" + query);var count = selectStmt1.executeUpdate(query);task.logmsg("ОТЛАДКА", methodName + "Число изменений:" + count);selectStmt1.close();system.exitBranch();

}

Вызов процедуры базы данных

Хранимые процедуры можно вызывать из JavaScript. Поток информации можетпроходить через процедуру и поступать обратно в преобразование.

Хотя в нашем примере вызов хранимой процедуры не реализуется, примерприводится ниже. Вот пример, объясняющий, как создавать последовательности длязаписей таблицы фактов. В нем вызывается процедура базы данных DB2, SQL Serverили Oracle с именем NEXTVAL. Ниже приводится пример хранимой процедуры NEXTVAL:// Вызов хранимой процедурыtask.logmsg("ОТЛАДКА", methodName + "Вызов хранимой процедуры")var command = "{call NEXTVAL(?,?,?)}";try{

cstmt = conn2.prepareCall(command);cstmt.setString(1, "SEQ_FACTSOID");cstmt.setInt(2, 1);cstmt.registerOutParameter(3, java.sql.Types.INTEGER);cstmt.execute();result = cstmt.getInt(3);task.logmsg("ОТЛАДКА", methodName + "результат:" + result);work.setAttribute("SPECID", result)cstmt.close();

}catch (e){

task.logmsg("ОТЛАДКА", "Вызов хранимой процедуры завершился неудачно с исключительной ситуацией:" + e);}

Соединение данных из разных источников данных при помощи соединителя поиска:

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

Об этой задаче

В нашем примере мы используем сценарий для выполнения поиска в базе данных ивытаскивания дополнительных данных в поток данных.

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

44 © Copyright IBM Corp. 2011, 2015

Page 49: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

2. Щелкните по Добавить компонент, выберите компонент Пустой сценарий инажмите кнопку Готово.

3. Добавьте в сценарий следующий код JavaScript, чтобы выполнять поиск по записив таблице DTO позиции счетчика.var methodName = "triLoadMeterData - LookupMeterItemDTO ";

task.logmsg("DEBUG", methodName + "Entry");

// Поиск записи DTO позиции счетчикаvar recordFound = false;var selectStmt1 = conn1.createStatement();var rs1 = selectStmt1.executeQuery("select DC_SEQUENCE_ID,TRICOSTPERUNITNU, TRIQUANTITYNU from S_TRIENVMETERITEMDTO1where TRIMETERIDTX = \’" + work.TRIMETERIDTX.getValue() + "\’and TRITODATEDA = " + TRITODATEDA );var result = rs1.next();while (result){...}rs1.close();selectStmt1.close();

Вывод записей в источник данных:

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

Соединитель

Назначение большинства используемых вами данных - это вывод таблицы. Этоместо, куда настроенный вами соединитель JDBC добавляет данные в таблицы илиизменяет их, используя параметры соединения с базой данных, передаваемые наконвейер при инициализации.

В нашем примере соединитель JDBCConnectoToMeterItemDTO используется дляхранения информации в промежуточной таблице Журнал экологического измерителяTRIRIGA. Этот компонент добавляется в конец конвейера после того, как будетсгенерирована вся информация для сохранения.

Вкладка Критерии связи в соединителе служит для задания следующих критериевгенерирования оператора SQL для изменения выходной таблицы. В нашем примереэти критерии включают следующие записи:v TRIMETERIDTX equals $TRIMETERIDTXv TRITODATEDA equals $TRITODATEDA

Совет: Символ $ используется для указания, что имя следующей за ним переменнойнеобходимо заменить на значение записи внутренней работы.

Карта атрибутов

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

Глава 2. Структуры данных 45

Page 50: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Выберите компонент ‘JDBCConnectorToMeterItemDTO’, затем перейдите на вкладкуКарта вывода. Откроется страница Карта вывода. Отобразите на этой страницеисходные поля на поля назначения в базе данных назначения. Имейте в виду, что висходные поля включаются дополнительные поля, добавляемые во входной поток.

Распространение состояния в элементы заданий ETL:

Все сценарии должны содержать обработчики При успехе и При неудаче,заполняющие атрибуты работы errCount и errMsg, для возврата состояния в TRIRIGAпри запуске преобразования из элемента задания ETL.

Об этой задаче

Атрибут работы errCount - это число ошибок, обнаруженных при выполнении файлаAssemblyLine. Атрибут работы errMsg - это сообщение об ошибке, котороезаписывается в журнал TRIRIGA.

Процедура1. Чтобы добавить обработчики AssemblyLine, в области редактирования выберите

Опции > Обработчики AssemblyLine.2. Включите переключатели рядом с обработчиками При успехе и При неудаче,

после чего нажмите кнопку Закрыть.3. Измените обработчик При успехе, чтобы он задавал атрибуты работы errCount и

errMsg, используя следующий код.// Задание errCount и errMessage для ALif (task.getResult() == null) {

var result = system.newEntry();result.errCount = errCount;result.errMsg=’Линия сборки завершилась успешно.’;task.setWork(result);

}else{

work.errCount = errCount;work.errMsg=’Линия сборки завершилась успешно.’;

}

4. Измените обработчик При неудаче, чтобы он задавал атрибуты работы errCount иerrMsg, используя следующий код.// Задание errCount и errMessage для AL triDispatcherif (task.getResult() == null) {

var result = system.newEntry();result.errCount = 1;result.errMsg=’Линия сборки завершилась неудачно.’;task.setWork(result);

}else{

work.errCount = 1;work.errMsg=’Линия сборки завершилась неудачно.’;

}

Проверка преобразования в Tivoli Directory Integrator:

Проверка после каждого шага облегчает отладку.

Необходимо сохранять работу до запуска преобразования, иначе Tivoli DirectoryIntegrator вызовет конвейер без изменений, внесенных вами с момента последнегосохранения.

46 © Copyright IBM Corp. 2011, 2015

Page 51: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

Процесс запуска конвейера состоит из следующих шагов:1. Если конвейер содержит ошибки, например, отсутствующие выходные карты, вы

получите сообщение с просьбой подтвердить запуск конвейера:Этот конвейерсодержит одну или несколько ошибок. Продолжить выполнение?

2. Далее нужно выполнить проверку доступности сервера Tivoli Directory Integrator.Если сервер недоступен, вы увидите сообщение:Не удалось установитьсоединение с сервером Default.tdiserver.

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

Перемещение сценариев ETL в TRIRIGA из Tivoli Directory Integrator:

После выполнения и проверки преобразования оно должно быть закачано в элементзадания ETL TRIRIGA.

На следующем рисунке показан поток между средой ETL и TRIRIGA.

База данныхФайловая системаФайл XML

Среда разработки ETLXMLгенерирует преобразования

Сохранить XMLXMLОткрыть

БО форма п ы,

/ латформTRIRIGA Applicationопределенная для

управления преобразованиями

СкачиваниеЗакачивание

Менеджерсодержимого

Менеджерсодержимого

Рабочий поток п ывызывает

пользовательскую задачупо расписанию для

выполнения преобразований

латформTRIRIGA Application

Глава 2. Структуры данных 47

Page 52: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Настройка соединений AssemblyLine базы данных TRIRIGA:

Прежде чем закачивать файл конфигурации времени выполнения в запись элементазадания ETL TRIRIGA, необходимо сконфигурировать соединения AssemblyLine базыданных TRIRIGA с параметрами, которые должны передаваться сборке TivoliDirectory Integrator при инициализации.

Процедура1. Выберите Инструменты > Конфигурирование системы > Общие > Параметры

программы.2. На вкладке Параметры среды в разделе Параметры AssemblyLine

сконфигурируйте соединения AssemblyLine базы данных.a. Обязательно: В качестве соединения с базой данных TRIRIGA

сконфигурируйте DB-TRIRIGA. Если не сконфигурировать это соединение,элементы заданий ETL Tivoli Directory Integrator запускаться не будут.

b. Необязательно: Сконфигурируйте DB-OTHER, если ваши Tivoli DirectoryIntegrator AssemblyLine должны соединяться с внешней базой данных.Поскольку DB-OTHER - необязательный параметр, TRIRIGA не проверяет,задан ли он. Поэтому AssemblyLine должна проверить, что это соединениеустановлено, перед тем, как его использовать.

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

Получение параметров AssemblyLine:

После конфигурирования соединений AssemblyLine с базой данных TRIRIGAизмените AssemblyLine для получения параметров.

Процедура1. Откройте сценарий Prolog, инициализирующий AssemblyLine.2. Добавьте следующие операторы для получения параметров соединения

TRIRIGA-DB.var op = task.getOpEntry();var jdbcTriURL = op.getString("jdbcTriURL");var jdbcTriDriver = op.getString("jdbcTriDriver");var jdbcTriUser = op.getString("jdbcTriUser");var jdbcTriPassword = op.getString("jdbcTriPassword");

3. Добавьте следующие операторы для получения параметров соединенияOTHER-DB.var op = task.getOpEntry();var jdbcOthURL = op.getString("jdbcOthURL");var jdbcOthDriver = op.getString("jdbcOthDriver");var jdbcOthUser = op.getString("jdbcOthUser");var jdbcOthPassword = op.getString("jdbcOthPassword");

4. Сохраните изменения.

Перемещение сценариев ETL в TRIRIGA:

После разработки сценария ETL в редакторе конфигураций Tivoli Directory Integratorнеобходимо переместить его в TRIRIGA.

Об этой задаче

Редактор конфигураций Tivoli Directory Integrator автоматически сохраняет файлконфигурации времени выполнения в следующем положении: рабочее_пространство/

48 © Copyright IBM Corp. 2011, 2015

Page 53: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

имя_проекта/Runtime-имя_проекта/имя_проекта.xml.

Процедура1. Создайте запись элемента задания ETL, задав в поле Тип элемента задания

значение Преобразование Tivoli Directory Integrator.2. Задайте в поле Имя линии сборки имя AssemblyLine, которую вы хотите запустить

после загрузки файла конфигурации.3. Заполните поле Файл преобразования, закачав файл конфигурации времени

выполнения, созданный в редакторе конфигураций.4. Необязательно: Если для преобразования ETL требуются входные данные в виде

файлов, свяжите эти файлы с элементом задания ETL в качестве файлов ресурсов.Например, если преобразование ETL должно обрабатывать данные из файлаэлектронной таблицы, необходимо привязать этот файл в качестве файларесурсов.a. В разделе Файл ресурсов щелкните по Добавить.b. В поле Имя ресурса укажите имя, используемое для определения файла

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

c. Чтобы задать значение в поле Файл ресурсов, щелкните по значку Закачатьфайл ресурсов рядом с этим полем, укажите положение файла и нажмитекнопку OK, чтобы закачать этот файл в поле Файл ресурсов.

Переменные, переданные в Tivoli Directory Integrator:

TRIRIGA передает несколько входных переменных в ETL Tivoli Directory Integrator.

Чтобы использовать эти переменные в конвейере, обратитесь к ним через интерфейсTivoli Directory Integrator getOpEntry(). Например, var op = task.getOpEntry(); varjdbcTriURL = op.getString("jdbcTriURL");

TRIRIGA извлекает значения поля из элемента задания ETL и передает их каквходные параметры. Поддерживаемые типы полей: текстовые, логические, дата, датаи время, локаторы и числа. Поля элементов заданий ETL этого типа передаются какпеременные.

Если элемент задания ETL содержит следующие поля, переменные во второй таблицебудут переданы в Tivoli Directory Integrator:

Таблица 6. Поля элемента задания ETL

Имя поля Метка поля Тип поля

triActiveEndDA Активная дата окончания Дата

triActiveStartDA Активная дата начала Дата

triControlNumberCN Контрольное число Контрольное число

triCreatedByTX Кем создан Текст

triLocator triLocator Текст

triNameTX Имя Текст

triTransformBI Преобразование файла Двоичный

Глава 2. Структуры данных 49

Page 54: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Переменные, переданные в Tivoli Directory Integrator:

Таблица 7. Переменные, переданные в Tivoli Directory Integrator

Переменная, переданная в Tivoli DirectoryIntegrator Описание

triNameTX (Текст)

triActiveStartDA (Число), дата в миллисекундах от 1 января1970 года

triActiveStartDA_DATE (Дата), в случае Oracle или DB2 встроена,время, как оно задано в атрибуте

triActiveStartDA_MinDATE (Дата), в случае Oracle или DB2 встроена,время - 00.00.00

triActiveStartDA_MaxDATE (Дата), в случае Oracle или DB2 встроена,время - 23.59.59

triActiveStartDA_Min (Число), дата в миллисекундах от 1 января1970 года, время - 00.00.00

triActiveStartDA_Max (Число), дата в миллисекундах от 1 января1970 года, время - 23.59.59

triActiveEndDA (Число), дата в миллисекундах от 1 января1970 года

triActiveEndDA_DATE (Дата), в случае Oracle или DB2 встроена,время, как оно задано в атрибуте

triActiveEndDA_MinDATE (Дата), в случае Oracle или DB2 встроена,время - 00.00.00

triActiveEndDA_MaxDATE (Дата), в случае Oracle или DB2 встроена,время - 23.59.59

triActiveEndDA_Min (Число), дата в миллисекундах от 1 января1970 года, время - 00.00.00

triActiveEndDA_Max (Число), дата в миллисекундах от 1 января1970 года, время - 23.59.59

triCreatedByTX (Текст)

triRunDATE (Число), дата запуска, заданнаяпользовательской задачей рабочего потока

triLocator (Текст - локатор), поле локатора, содержащеессылку на другой бизнес-объект. Этапеременная содержит текстовое значениеданного поля записи

triLocator_IBS_SPEC (Текст - локатор), содержит ID спецификациизаписи в поле triLocator. ID спецификацииможно использовать для поиска информации,относящейся к данной записи, в другихтаблицах базы данных

triAssemblyLineNameTX Имя главного конвейера в преобразованииETL, который нужно запустить

TRIRIGA также передает переменные файла ресурсов. Файл ресурсов - это файл,который требуется для преобразования ETL в качестве входного. Например, еслипреобразование ETL должно обрабатывать данные из файла значений, разделенныхзапятыми (Comma Separated Value, .csv), ему нужно знать, где и как ссылаться наэтот файл после его запуска.

50 © Copyright IBM Corp. 2011, 2015

Page 55: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Если у элемента задания ETL есть две связанные с ним записи файла ресурсов,каждая из них содержит следующие поля:

Таблица 8. Поля, связанные с записями файла ресурсов

Имя поля Метка поля Тип поля

triResourceNameTX Имя для идентификациифайла ресурсов

Текст

triResourceFileBI Содержимое файла ресурсов Двоичный

Переменные, переданные в Tivoli Directory Integrator для этих записей файла ресурсов:

Таблица 9. Переменные, переданные в Tivoli Directory Integrator

Переменная, переданная в Tivoli DirectoryIntegrator Описание

RESOURCE_1 Полное имя файла ресурсов. Имя файласодержит значение из поляtriResourceNameTX, помогающеепреобразованию ETL идентифицировать его

RESOURCE_2 Полное имя другого файла ресурсов. Имяфайла содержит значение из поляtriResourceNameTX, помогающеепреобразованию ETL идентифицировать его

Таблица 10. TRIRIGA также передает входные переменные JDBC, заданные впараметрах прикладной программы.

Переменная, переданная в Tivoli DirectoryIntegrator Описание

jdbcTriURL URL базы данных TRIRIGA

jdbcTriDriver Драйвер базы данных TRIRIGA

jdbcTriUser Имя пользователя базы данных TRIRIGA

jdbcTriPassword Пароль для базы данных TRIRIGA

jdbcOthURL URL другого драйвера базы данных

jdbcOthDriver Имя другого драйвера базы данных

jdbcOthUser Имя другого пользователя базы данных

jdbcOthPassword Прочие данные

Отладка сценариев ETL в прикладной программе:

Для отладки сценариев ETL в прикладной программе необходимо сначала настроитьзапись в журнал, а затем инициировать задачу техпроцесса RunETL Custom дляпросмотра информации в журнале.

Настройка ведения журнала:

TRIRIGA предоставляет возможности отладки при запуске сценариев ETL вприкладной программе TRIRIGA.

Процедура1. На консоли администратора выберите управляемый объект Ведение журнала

платформы. Затем выберите опцию включения ведения журнала ETL.

Глава 2. Структуры данных 51

Page 56: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

2. Выберите пункт меню ETL категории > Преобразования > Запуститьпреобразование для включения ведения журнала отладки в коде платформыTRIRIGA, обрабатывающем элементы заданий ETL. Сообщения журналазаписываются в файл server.log.

3. Выберите пункт меню ETL категории > Преобразования > Tivoli DirectoryIntegrator для включения ведения журнала отладки в Tivoli Directory IntegratorAssemblyLines. Сообщения записываются в журнал AssemblyLine. У каждогоAssemblyLine есть собственный файл журнала.

4. Примените изменения. Теперь при выполнении сценария ETL в журнал сервераили в журнал AssemblyLine будет записываться связанная с ETL информация.

Важное замечание: Так как в журнале может оказаться очень большой объеминформации, задавайте ведение журнала Tivoli Directory Integrator для отладкитолько при одном выполнении элемента задания ETL.

Отладка с использованием заданий ETL:

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

Процедура

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

Примечание: Кнопку Запустить процесс следует использовать только для целейотладки. Для производственного режима используйте вместо нее планировщикзаданий. Обратите внимание на то, что кнопка Запустить процесс изменяет таблицы вбазе данных, поэтому не используйте это действие в производственной среде.

Пример

Ниже показан пример вывода в журнале сервера:2014-03-27 13:18:10,427 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: getETLVarsFromFields...2014-03-27 13:18:10,431 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: getETLVarsFromFields2014-03-27 13:18:10,431 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: getETLVarsFromResourceFiles2014-03-27 13:18:10,432 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: getETLVarsFromResourceFiles2014-03-27 13:18:10,432 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Processing Job Item with Type = Tivoli Directory Integrator Transformation2014-03-27 13:18:10,432 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: transformRecordTDI2014-03-27 13:18:10,474 DEBUG [com.tririga.platform.workflow.runtime.

52 © Copyright IBM Corp. 2011, 2015

Page 57: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

taskhandler.ETL.TDIRequest](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: init2014-03-27 13:18:10,474 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.TDIRequest](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: init2014-03-27 13:18:10,483 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189) ***ETL Variable = triIdTX : triLoadMeterData2014-03-27 13:18:10,483 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189) ***ETL Variable = triAssemblyLineNameTX : triLoadMeterData...2014-03-27 13:18:10,483 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)*** ETL Variable = triNameTX :Load Meter Item Staging Table2014-03-27 13:18:10,488 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.DataSourceConnectionInfoImpl] (WFA:221931 - 15290804triProcessManual:305676189 IE=305676189)Entry: init2014-03-27 13:18:10,495 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.DataSourceConnectionInfoImpl](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: init2014-03-27 13:18:10,495 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.DataSourceConnectionInfoImpl](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: init2014-03-27 13:18:10,496 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.DataSourceConnectionInfoImpl](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: init2014-03-27 13:18:10,497 INFO [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Setting TDI log level to Debug.2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.LogSettingsServiceImpl](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: getLogSettings2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.LogSettingsServiceImpl](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Found DailyRollingFileAppender.2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.LogSettingsServiceImpl](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: getLogSettings2014-03-27 13:18:10,503 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.TDIRequest](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Entry: send2014-03-27 13:18:14,396 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.TDIRequest](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)

Глава 2. Структуры данных 53

Page 58: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Exit: send2014-03-27 13:18:14,396 INFO [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)RunETL request returned fromTDI server version: 7.1.1.3 - 2013-12-06 running on host: i3650x3cr22014-03-27 13:18:14,396 INFO [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)RunETL: Prepare=2014/03/2713:18:10.475 Start=2014/03/27 13:18:10.503 Stop=2014/03/27 13:18:14.3962014-03-27 13:18:14,396 INFO [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)RunETL: Processing endedafter 3 seconds.2014-03-27 13:18:14,396 DEBUG [com.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL](WFA:221931 - 15290804 triProcessManual:305676189 IE=305676189)Exit: transformRecordTDI

Ниже показан пример журнала AssemblyLine:2014-03-27 13:18:11,062 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]CTGDIS967I AssemblyLine started by triLoadMeterData_1395951491025.2014-03-27 13:18:11,063 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]CTGDIS255I AssemblyLine AssemblyLines/triLoadMeterData is started.2014-03-27 13:18:11,073 DEBUG [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]CTGDIS089I Current statistics: Interval=0, Maximum Errors=0, Maximum Read=02014-03-27 13:18:11,073 DEBUG [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]CTGDIS069I Loading Connectors....2014-03-27 13:18:14,384 DEBUG [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success Entry2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success Processing Success2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success -----------------------------------------------------------------------------

2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success Processing Summary2014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success rowsProcessed = 3602014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success stagingTableWriteRowSuccess = 3602014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success stagingTableWriteRowFail = 02014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success rowsSkipped = 02014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success rowsNotValid = 02014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]

54 © Copyright IBM Corp. 2011, 2015

Page 59: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

triLoadMeterData - On Success dcJobsToReadyState = 02014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success createdDT = 13959514910882014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success finishedDT = 13959514943842014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success seconds = 32014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success secondsPerRecord = 0.012014-03-27 13:18:14,384 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success -----------------------------------------------------------------------------2014-03-27 13:18:14,386 DEBUG [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]triLoadMeterData - On Success Exit2014-03-27 13:18:14,386 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]CTGDIS116I Scripting hook of type onsuccess finished.2014-03-27 13:18:14,386 INFO [org.apache.log4j.DailyRollingFileAppender.a9e2d096-4cdc-4f87-a57b-5e31323093d9]CTGDIS080I Terminated successfully (0 errors).

Советы по настройке производительности:

Для повышения производительности используйте следующую информацию.

Начиная настраивать ETL для выполнения нужных вам действий, проведите базовоеизмерение производительности.1. Используя редактор конфигураций Tivoli Directory Integrator, запустите ETL для

базы данных, в которой будут присутствовать тысячи строк, добавленных к вашейтаблице фактов.

2. Убедитесь, что вы используете соединение с базой данных и запускаетепреобразование Tivoli Directory Integrator в сети, где расположена база данных, тоесть нет дополнительной задержки из-за сетевых соединений. Не используйте длязапуска VPN.

3. Просмотрите информацию, записанную в журнал для вашего выполнения.Например, после выполнения ETL triLoadMeterData просмотрите файлtriLoadMeterData.log.

Анализ выполнения:1. Проанализируйте результаты запуска. Есть ли какой-либо шаг, исполняемый

медленнее остальных?2. Является ли медленным шаг ввода данных? Нужно ли добавить к базе данных

индекс? Если да, добавьте индекс и проведите повторный запуск. Улучшилась липроизводительность? Возможно, следует использовать шаг Фильтр вместоприменения базы данных для фильтрования результатов.

Советы для разработки ETL:v Исключите сложные операции SQL и функции агрегирования, такие как COUNT,

MIN, MAX и SUM. При необходимости их использовать проверьте, не поможет лииндекс на шаге Ввод данных. Не создавайте индекс для полей типа large varchar;SQL Server может обрабатывать только индексы < 900 байтов.

v По возможности исключите операции OR и NOT и использование представлений(M_TableName в базе данных IBM TRIRIGA).

Глава 2. Структуры данных 55

Page 60: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

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

Аналитический инструмент с возможностью создания отчетов TRIRIGA WorkplacePerformance Management вычисляет показатели, используемые для создания отчетов идиаграмм, применяя запросы к таблицам фактов, сгруппированные по данным вплоских иерархических таблицах. Элементы задания ETL используютсяпланировщиком заданий для запуска рабочих потоков, извлекающих данные изтаблиц источников, таких как таблицы бизнес-объектов TRIRIGA, и загрузки их втаблицы фактов. Элементы заданий ETL можно использовать также для измененияплоских иерархий.

В TRIRIGA Workplace Performance Management есть три типа элементов заданий ETL:

Преобразование KettleИзвлекает данные из таблиц бизнес-объектов TRIRIGA и загружает их втаблицы фактов TRIRIGA Workplace Performance Management.

Преобразование Tivoli Directory IntegratorИзвлекает данные из таблиц бизнес-объектов TRIRIGA или таблиц внешнихисточников и загружает их в таблицы фактов TRIRIGA Workplace PerformanceManagement.

Перепостроение иерархииИзвлекает данные из таблиц бизнес-объектов TRIRIGA и загружает их вплоские иерархические таблицы TRIRIGA Workplace Performance Management.

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

Процедура1. Выберите Инструменты > Конфигурирование системы > Планирование заданий >

Элемент задания ETL.2. Выберите существующий элемент задания или нажмите кнопку Добавить.3. В разделе Общие введите ID для данного элемента задания ETL. Включите в

поле ID имя таблицы фактов. При создании элемента задания ETL системаTRIRIGA предоставляет состояние.

4. Введите для элемента задания ETL имя и описание. В разделе Подробностисистема TRIRIGA задает в поле Класс элемента задания значение ETL.

5. Выберите Тип элемента задания.6. Если тип элемента задания - Перепостроить иерархию, выполните следующие

действия.

56 © Copyright IBM Corp. 2011, 2015

Page 61: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

b. Введите имя иерархии. При выполнении этого элемента задания ETL будетперепостроена горизонтальная иерархия для данного бизнес-объекта. Еслизадано имя иерархии, его приоритет выше, чем у имени модуля иерархии.

c. Система TRIRIGA игнорирует информацию, введенную для календарногопериода, финансового периода и других дат в разделе Подробности.

d. Чтобы перепостроить все горизонтальные иерархии конкретного модуля,задайте имя модуля иерархии, а поле Имя иерархии оставьте пустым.

e. Чтобы перепостроить одну горизонтальную иерархию, задайте и имя модуляиерархии, и имя иерархии.

f. Если и поле Имя модуля иерархии, и поле Имя иерархии пусты или любое изних содержит значение Все, выполняется перепостроение всех иерархий.

7. Если тип элемента задания - Преобразование Kettle или Преобразование TDI,выполните следующие действия.a. Укажите файл преобразования, выбрав его в диалоговом окне выбора файла.

Система TRIRIGA ожидает файл преобразования Kettle в формате .ktl или.xml, а файл преобразования Tivoli Directory Integrator - в формате .xml.

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

8. Если указан тип элемента задания Преобразование TDI, введите имя линиисборки.

9. Если указан тип элемента задания Преобразование Kettle,a. Введите имена модулей. Если указывается несколько имен, они должны быть

разделены запятыми.v Каждое имя модуля преобразуется для файла преобразования в

переменную в формате ${Module.<имя_модуля>.ViewName}, где<имя_модуля> - это имя модуля.

v Значение каждой переменной, переданное в ETL - это имя представлениядля данного модуля. Значение этой переменной можно использовать, еслиETL должно быть известно имя представления конкретного модуля.

b. Введите имена бизнес-объектов. Если указывается несколько именбизнес-объектов, они должны быть разделены запятыми.v Каждое имя бизнес-объекта преобразуется для файла преобразования в

переменную в формате ${BO.<имя_BO>.TableName}, где <имя_BO> - этоимя бизнес-объекта.

v Уникальность бизнес-объекта по базе данных не гарантируется, еслитолько не включено имя модуля. Если вы используете бизнес-объект, имякоторого не уникально, включите имя соответствующего модуля в списокчерез запятую. Используйте следующий синтаксис:<имя_модуля>::<имя_BO>, где <имя_модуля> - имя модуля, а<имя_BO> - имя бизнес-объекта.

v Переменная задается в файле преобразования как${BO.<имя_модуля>::<имя_BO>.имя_таблицы}. Значение каждойпеременной - это имя таблицы для данного бизнес-объекта. Значение этойпеременной можно использовать, если ETL должно быть известно имятаблицы конкретного бизнес-объекта.

10. Если тип элемента задания - Преобразование Kettle или Преобразование TDI,выполните следующие действия.

Глава 2. Структуры данных 57

Page 62: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

a. Как правило, элементы заданий ETL запускаются под управлением одногоили нескольких расписаний заданий.

b. Для тестирования блока с элементом задания ETL задайте параметры дат вразделе Подробности.

c. Следующие параметры дат зависят от ETL, некоторые ETL используют этуинформацию, а некоторые ETL - нет. Параметры дат переопределяются призапуске элемента задания ETL планировщиком заданий.v Выберите Календарный период для передачи переменной, содержащей

календарный период задания.v Выберите Финансовый период для передачи переменной, содержащей

финансовый период задания. Финансовый период используется полемПериод захвата в таблицах фактов TRIRIGA Workplace PerformanceManagement.

v Выберите Дата для передачи переменной, содержащей запись датызадания. Запись даты используется для пометки поля Измерение даты втаблицах фактов TRIRIGA Workplace Performance Management.

v Выберите Дата для передачи переменной, содержащей дату задания.Введите дату или щелкните по значку Календарь и выберите её.

v Выберите Дата начала, чтобы определить дату первого захвата данных ипередать переменную, содержащую дату начала задания. Введите дату илищелкните по значку Календарь и выберите её.

v Выберите Дата окончания, чтобы задать дату последнего захвата данных ипередать переменную, содержащую дату окончания задания. Введите датуили щелкните по значку Календарь и выберите её.

11. В разделе Показатели составляется сводка данных, записываемых для этогоэлемента задания ETL. Средняя продолжительность вычисляется на основезначений Общая продолжительность и Число запусков (Общаяпродолжительность / Число запусков).

12. В разделе Журналы выводится время и состояние каждого выполненного запускаэтого элемента задания ETL. Эти данные суммируются в разделе Показатели.

13. Щелкните по Создать черновик.14. Выберите Активировать.

Результаты

Запись элемента задания ETL создана и готова для включения в группу заданий,расписание заданий или и туда, и туда.

Дальнейшие действия

Для тестирования нажмите кнопку Запустить процесс, чтобы включить процесспреобразования Kettle или Tivoli Directory Integrator или процесс перепостроенияиерархии, указанный в этом элементе задания ETL.

Добавление или изменение групп заданийЧтобы упростить планирование заданий, используйте группы заданий для созданиясобраний элементов заданий ETL, запускаемых в одном расписании.

Процедура1. Щелкните по Инструменты > Конфигурирование системы > Планирование заданий >

Группа заданий.2. Выберите существующую группу заданий или нажмите кнопку Добавить.

58 © Copyright IBM Corp. 2011, 2015

Page 63: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

3. В форме Группа заданий введите имя и описание группы заданий.4. Добавьте или удалите элементы заданий ETL из группы заданий в разделе

Элементы заданий с помощью действий Найти или Удалить.5. Необязательно: Скорректируйте последовательность элементов заданий.6. Нажмите кнопку Создать.

Результаты

Запись о группе заданий теперь можно включить в расписание заданий.

Создание или изменение планировщиков заданийПланировщики заданий позволяют запланировать, когда TRIRIGA должен запуститьэлементы заданий и группы заданий ETL. Можно запланировать запуск заданий вопределенные часы, дни, недели и месяцы.

Прежде чем начать

Хотя TRIRIGA содержит заранее заданные планировщики заданий, планированиезаданий не будет происходить, пока вы не проверите заранее заданные планировщикизаданий или не создадите новый планировщик с датой начала и датой окончания и ненажмете кнопку Активировать.

Процедура1. Выберите пункт меню Инструменты > Конфигурирование системы > Планирование

заданий > Планировщик заданий.2. Выберите существующий планировщик заданий или нажмите кнопку Добавить.3. Введите имя и описание планировщика заданий.4. В разделе Расписание в предоставленном списке выберите частоту (Тип

расписания).v Если выбрать тип расписания Ежедневно, появятся поля Ежечасно и Каждые.

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

v Если выбрать Расширенный тип расписания, в разделе Расписание появитсяполе Шаблон повторения. Нажмите кнопку Шаблон повторения, чтобы открытьформу Событие задания, которая содержит гибкие опции для планируемыхзаданий.

5. Необязательно: В разделе Расписание включите переключатель Запуститьоперации захвата хронологии?, чтобы указать включать данные хронологии впоказатели, вычисляемые по результатам операций в этом расписании заданий.При активации этого расписания заданий данная опция указывает планировщикузаданий сгенерировать и запустить задания, плановая дата которых уженаступила. Параметры для промежутка или периода времени (такие как датаначала, дата окончания, финансовый период) передаются в каждый элементзадания для имитации захвата хронологии. Но поскольку процесс запускаетсясейчас, успех всецело зависит от способа использования сценариями ETL этихпараметров. Выполнение операций захвата хронологии - это дополнительнаяопция, требующая полнейшего понимания того, как работает каждый сценарий.

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

Глава 2. Структуры данных 59

Page 64: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

заданий ETL немедленно при истечении задержки захвата по окончании каждогопериода захвата. Например, если дата начала - 01/01/2014, тип расписания -Ежемесячно и задержка захвата - один день, запланированы будут следующиесобытия:

Таблица 11. Запуски заданий, запланированные с начала месяца

Задание запускается - Сразуже после полуночи: Дата начала захвата данных

Дата окончания захватаданных

02/01/2014 01/01/2014 01/31/2014

03/01/2014 02/01/2014 02/28/2014

04/01/2014 03/01/2014 03/31/2014

Дата окончания определяет последнее событие для захвата. В предыдущемпримере, если датой окончания будет 03/15/2014, последнее событие может бытьзапланировано следующим образом:

Таблица 12. Запуски заданий, запланированные с середины месяца

Задание запускается - Сразуже после полуночи: Дата начала захвата данных

Дата окончания захватаданных

03/16/2014 03/01/2014 03/15/2014

v Если переключатель Сбросить период захвата? включен, он указывает системепроверять, чтобы период захвата оставался текущим при каждом запускезадания.

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

v При определении позиций заданий или/и групп заданий, если данная записьрасписания заданий активирована, в разделе Запланированные заданиявыводится список запланированных событий для этого расписания заданий.

7. В разделе Элементы заданий выберите с помощью действий Найти или Удалитьэлементы заданий и группы заданий ETL для включения в расписание и нажмитекнопку OK. Элементы заданий запускаются в порядке, заданном столбцомПоследовательность.v При активации этого расписания заданий в разделе Показатели составляется

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

числа запусков (Общая длительность / Число запусков).v При активации этого расписания заданий в разделе Журналы выводится время

и состояние для каждого запуска этого расписания заданий.8. Необязательно: Скорректируйте последовательность элементов заданий.9. Щелкните по Создать черновик, а затем Активировать.

Результаты

Система TRIRIGA создаст набор запланированных заданий, основанных на типерасписания и дат начала и окончания. Их можно будет увидеть в разделезапланированных заданий расписания заданий.

60 © Copyright IBM Corp. 2011, 2015

Page 65: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Настройка объектов преобразованияTRIRIGA содержит элементы заданий ETL и объекты преобразования. Вместо того,чтобы определять новый объект преобразования, можно настроить существующийобъект преобразования элемента задания ETL. Если используется уже существующийобъект преобразования, необходимо определить и поддерживать преобразование.Однако определять и поддерживать бизнес-объекты, формы и задачи рабочегопотока нет необходимости, поскольку они уже определены.

Определение бизнес-объектов преобразований, форм итехпроцессовПри определении нового объекта преобразования можно использоватьсуществующий элемент задания ETL TRIRIGA в качестве примера. Для определениянового собственного объекта преобразования необходимо также определить иподдерживать бизнес-объекты, формы и техпроцессы.

Прежде чем начать

Создайте таблицы источника и назначения (бизнес-объекты) и установитесоответствующие отображения.

Процедура1. Создайте бизнес-объект преобразования.

a. Определите переменные, которые будут переданы в преобразование, идобавьте их в бизнес-объект преобразования. Например, период времени.

b. Убедитесь, что для XML преобразования имеется двоичное поле.2. Создайте форму преобразования и предоставьте элемент навигации или другой

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

преобразования ETL.a. Настройте выполнение этого техпроцесса по расписанию.b. Пройдите по всем записям бизнес-объектов преобразований, которые должны

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

Сохранение XML преобразования в Content ManagerПосле определения XML преобразования можно сохранить его в файловой системе изакачать в TRIRIGA Content Manager. Тогда можно будет протестировать XMLпреобразования при помощи среды разработки ETL.

Процедура1. Откройте элемент навигации для бизнес-объекта преобразования.

Отредактируйте существующий бизнес-объект преобразования или добавьтеновый.

2. При помощи двоичного поля закачайте XML преобразования в TRIRIGA ContentManager.

3. При необходимости измените другие поля.4. Сохраните запись преобразования.

Конфигурирование времени выполнения техпроцессаПосле закачки XML преобразования в TRIRIGA Content Manager можно настроитьтехпроцесс для запуска по расписанию. Этот техпроцесс проходит по всем записямбизнес-объектов преобразований и вызывает пользовательскую задачу техпроцессадля каждой записи.

Глава 2. Структуры данных 61

Page 66: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

задаче техпроцесса.3. Техпроцесс повторяет вызов пользовательской задачи техпроцесса для каждой

записи. Имя класса должно бытьcom.tririga.platform.workflow.runtime.taskhandler.ETL.RunETL.

4. Пользовательская задача техпроцесса:a. Загружает преобразование XML из Content Manager во временный файл.b. Собирает значения во всех полях бизнес-объекта и создает переменную для

передачи инструменту ETL. Для форматов даты/даты и времени требуетсяспециальная обработка.

c. Создает среду ETL.d. Устанавливает в качестве соединения TRIRIGA JNDI локального сервера

прикладных программ.e. Запускает преобразование при помощи API ETL.f. Возвращает в техпроцесс значение false в случае ошибки при обработки, иначе

возвращает true.

Запуск спецификации задачи пользовательского рабочегопотока ETLРабочий поток последовательно обращается ко всем записям бизнес-объектовпреобразования и вызывает для каждой записи пользовательскую задачу рабочегопотока. Пользовательская задача рабочего потока содержит заданнуюспецификацию.

Если пользовательская задача рабочего потока вызывается для каждогобизнес-объекта преобразования, поля в ней обрабатываются так:1. Поле triTransformBI является обязательным и содержит ссылку на файл

преобразования XML, который нужно запустить.2. Поле triBONamesTX, если оно есть, анализируется как список имен

бизнес-объектов, разделенных запятыми. Пользовательская задача рабочегопотока создает переменные формы ${BO.<boName>.TableName}. Например, еслиполе содержит triBuilding, в сценарии ETL доступна переменная${BO.triBuilding.TableName}. Эта переменная содержит фактическое имя таблицыбазы данных, где хранятся записи triBuilding. Поскольку имена бизнес-объектовмогут не быть уникальными, можно задать модуль в форме<имя_модуля>::<имя_БО>, что даст в результате соответствующуюпеременную ${BO.<имя_модуля>::<имя_БО>.TableName}. Например,Location::triBuilding доступна как переменная ${BO.Location::triBuilding.TableName}в сценарии ETL.

3. Поле triModuleNamesTX, если оно есть, анализируется как список имен модулей,разделенных запятыми. Пользовательская задача рабочего потока создаетпеременные формы ${Module.<имя_модуля>.ViewName}.

62 © Copyright IBM Corp. 2011, 2015

Page 67: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Глава 3. Показатели

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

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

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

Показатели для анализа и составления отчетовПоказатели, представляющие информацию для составления общих отчетовили для дальнейшего анализа связанного показателя производительности.Эта информация полезна для многомерного анализа и навигации, поэтомуона использует возможности показателей прикладной программыуправления производительностью. У показателей для анализа и составленияотчетов нет объектов назначения, порогов, условий применимости, системыучета и задач для выполнения некоторых действий. Для этого типапоказателей значения ключевых показателей в полях Результаты, Объектназначения и Состояние пустые.

Дополнительную информацию смотрите в Руководстве пользователя по управлениюпроизводительностью рабочего места IBM TRIRIGA 10.

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

Собрания отчетов о показателях для каждой роли пользователя появляются настранице домашнего портала и в менеджере производительности.

Не изменяйте предоставленные отчеты о показателях при настройке программногообеспечения TRIRIGA для среды вашей компании. Вместо этого создайтепроизводный отчет о показателях, скопировав такой существующий отчет,переименовав или изменив его или создав абсолютно новый отчет о показателях.Просматривайте отчеты о показателях, перейдя в пункт меню Мои отчеты >Системные отчеты и задав для фильтра Модуль значение triMetricFact, для фильтраТип вывода - Показатель, для фильтра Имя - Показатель. Чтобы просмотретьтабличные отчеты, связанные с графическими отчетами показателей, задайте дляфильтра Имя значение Связанные отчеты.

Каждый отчет о показателях состоит из следующих элементов:

Пути детализацииСпециальная возможность составления отчетов, использующая

© Copyright IBM Corp. 2011, 2015 63

Page 68: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

ФильтрыПредоставляют пользователям отчетов возможность изменить илиотфильтровать данные, представленные в отчете.

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

Связанные отчетыВыводят дополнительные данные для отчета о показателях, возможно, непоказатели.

Дополнительную информацию смотрите в публикации Руководство пользователясоставления отчетов IBM TRIRIGA Application Platform 3.

Показатели ключейНа портале Карта учета (Scorecard) есть разделы Ключевые показатели, собирающиенесколько показателей в одном представлении.

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

Процесс использования построителя карт учета, построителя порталов и построителясистем навигации для конфигурирования портала документирован в Руководствепользователя по опыту взаимодействия с IBM TRIRIGA Application Platform 3.

Советы:v На вкладке Запросы формы Карта учета включите все запросы, которые появятся в

подразделе Выбранные запросы этого раздела портала Ключевые показатели.v При расположении карты учета в элементе навигации укажите отчет по

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

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

Показатели формыАльтернативный способ вывода показателей - это использование представленияформы.

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

64 © Copyright IBM Corp. 2011, 2015

Page 69: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

При конструировании определите запрос показателей с фильтром $$RECORDID$$ и$$PARENT::[Раздел]::[Поле]$$. В среде выполнения родительская запись, в которойпоказана форма, неявно отфильтровывает данные, выбранные механизмом запросовпоказателей для вывода.

Можно определить другие запросы показателей и связанные отчеты. В средевыполнения, когда запрос показателей выводится в связанном с формой отчете,управляющий элемент переключения позволяет пользователю заменить выводимыйзапрос.

Фильтрация данныхПеред выводом показателей в форме данные фильтруются.

В среде выполнения до запуска запроса,v Фильтр $$RECORDID$$ заменяется ID родительской записи, внутри которой

выводится форма.v Фильтр $$PARENT::[Раздел]::[Поле]$$ разрешается до значения в поле

определенной родительской записи.v Если запрос показателей выводится вне родительской записи, любые зависящие от

родительских элементов фильтры, такие как $$RECORDID$$ и$$PARENT::[Section]::[Field]$$, игнорируются.

Определите фильтры $$RECORDID$$ и $$PARENT::[Section]::[Field]$$ для полей,определенных как пути детализации в таблице фактов. Показатель, отфильтрованныйдля программы или классификации и использующий данные фильтры, действуетаналогично выбору из списка путей детализации. Он проводит также фильтрациюдля заданной записи и включает в себя все дочерние элементы данной записи.

Когда в иерархическом фильтре задано значение $$PARENT::[Раздел]::[Поле]$$,пустое родительское поле эквивалентно выбору корневого узла пути детализации.Здесь же включаются все записи, соответствующие корневому значению.Неиерархический фильтр действует как фильтр запросов бизнес-объектов ифильтрует записи с пустым значением, когда значение родительского поля пустое.

Фильтры $$RECORDID$$ и $$PARENT::[Раздел]::[Поле]$$ действуют, как фильтрысреды выполнения, за исключением тех случаев, когда их значения передаются изродительской записи.

Если в запросе показателей есть фильтры $$RUNTIME$$ и$$PARENT::[Раздел]::[Поле]$$, определенные для одного поля, когда запроспоказывается внутри формы, элемент управления фильтром $$RUNTIME$$ неиспользуется. Вместо этого в качестве значения фильтра используется значение из$$PARENT::[Раздел]::[Поле]$$.

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

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

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

Глава 3. Показатели 65

Page 70: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

Тип подотчета (например, показатель, запрос или отчет) выводится в разделеПодотчеты построителя отчетов. Для запросов показателей доступен флагТабличный вывод.

Запрос показателей может выводить в качестве подотчетов другие запросыпоказателей.

66 © Copyright IBM Corp. 2011, 2015

Page 71: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Глава 4. Инструмент выравнивания иерархии

Определение иерархии в TRIRIGA Application Platform обеспечивает гибкостьреализации при помощи нескольких перестановок в иерархиях данных, например, дляорганизаций. Однако для средств составления отчетов предпочтительны болееструктурированные сводки данных, что позволяет упростить и ускорить подготовкуотчета.

Инструмент выравнивания иерархии предназначен для администратора,определяющего набор именованных структур, используемых механизмом отчетов опоказателях TRIRIGA для быстрой обработки иерархических данных в системе.Результирующую структуру называют плоской иерархией, и такие структурыиспользуются в отчетах о показателях.

С помощью элементов задания ETL администраторы используют планировщикзаданий для запуска процесса выравнивания иерархии. Разработчики системыинициируют этот процесс, используя задачу пользовательского техпроцесса. В такомслучае имя класса, используемого для запуска процесса инструмента выравниванияиерархии - этоcom.tririga.platform.workflow.runtime.taskhandler.flathierarchy.RebuildFlatHierarchies

Инициирование данного процесса с помощью задачи пользовательского техпроцессаобсуждается в разделе Построение прикладных программ для IBM TRIRIGAApplication Platform 3.

Важное замечание: При всяком изменении иерархии в TRIRIGA дерево иерархии беззадержки обновляется. Допустим, например, что вы добавляете новый triBuilding; приэтом будет будет обновляться иерархия положений. Однако соответствующаяплоская иерархия для triBuilding не будет обновляться до ее повторногоперепостроения при помощи элемента задания перепостроения иерархии. Поэтомуэлементы задания перепостроения иерархии важно запланировать на то же время,когда планируется захватывать данные TRIRIGA Workplace Performance Managementчерез таблицы фактов. Элементы задания перепостроения иерархии обеспечиваютподдержание текущей информации.

Плоские иерархииОпределения структуры иерархии зависят от того, на каком выравнивании онаоснована. Плоская иерархия может основываться на стандартных взаимосвязяхродитель-наследник для иерархии заданного модуля. Плоская иерархия можетосновываться также на конкретных уровнях в иерархии модуля и ихсоответствующих бизнес-объектах.

Каждое определение структуры иерархии содержит одну запись заголовка,определяющую имя иерархии, модуль и тип иерархии. Имя иерархии описывает самуиерархию, а модуль - тот модуль, который представляет иерархия. Тип иерархиииспользуется в процессе выравнивания для определения, как сглаживать данные. Естьдва типа иерархии, Данные и Форма.

Иерархия данных используется для выравнивания пути к данным на основестандартных взаимосвязей родитель-наследник для иерархии заданного модуля. Утакого типа иерархии нет именованных уровней, так как прикладные программы

© Copyright IBM Corp. 2011, 2015 67

Page 72: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

Иерархия формы используется для выравнивания пути к данным на основевзаимосвязей родитель-наследник для иерархии заданного модуля и бизнес-объектов,представляющих уровни. Каждый уровень может представлять только одинбизнес-объект.

Каждая иерархия формы должна явно задавать уровни и содержать номер уровня,бизнес объект, который представляет уровень, и тип. Тип используется в процессевыравнивания для определения, как найти данные для уровня. У типа есть три опции:Найти, Игнорировать и Повторить.v Если значение типа - это Найти, система проводит поиск по подуровням данных

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

v Если значение типа - это Игнорировать, система проводит поиск заданной формына один уровень ниже последнего родительского элемента. Если запись необнаружена, система определяет пробел для этого уровня и переходит кследующему уровню в определении. Если запись обнаружена, система создаетзапись плоских данных для данного узла и переходит к следующему уровню вопределении. Этот режим обеспечивает возможность развернуть дерево длялучшего выравнивания ваших бизнес-данных. Для обеспечения процесса созданияотчетов пробелам нужно давать имена или присваивать метки. Для этих целейиспользуйте значение Метка пробела в менеджере структур иерархии.

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

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

Примеры записи заголовка плоской иерархии

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

Таблица 13. Примеры записей заголовка

Имя иерархии Модуль Тип иерархии

Пространственная иерархия Расположение Графический интерфейс

Географическая иерархия Расположение Графический интерфейс

Иерархия городов География Графический интерфейс

Полная иерархия положений Расположение Данные

68 © Copyright IBM Corp. 2011, 2015

Page 73: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 13. Примеры записей заголовка (продолжение)

Имя иерархии Модуль Тип иерархии

Полная иерархияорганизаций

Организация Данные

Внутренняя иерархияорганизации

Организация Графический интерфейс

Внешняя иерархияорганизации

Организация Графический интерфейс

Примеры записей уровней плоской иерархии

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

Таблица 14. Примеры записей уровней плоской иерархии

Имя иерархии Номер уровня Форма Найти модуль

Пространственнаяиерархия

1 Собственность Игнорировать

Пространственнаяиерархия

2 Здание Найти

Пространственнаяиерархия

3 Этаж Найти

Пространственнаяиерархия

4 Пространство Повторить

Внутренняя иерархияорганизации

1 Компания Найти

Внутренняя иерархияорганизации

2 Подразделение Игнорировать

Внутренняя иерархияорганизации

3 Отдел Повторить

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

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

Процедура1. Выберите Инструменты > Утилиты построителя > Data Modeler.2. Нажмите кнопку Утилиты.3. Щелкните по Структуры иерархий.

Создание иерархии данныхИерархия данных используется для выравнивания пути к данным на основестандартных взаимосвязей родитель-наследник для иерархии заданного модуля. При

Глава 4. Инструмент выравнивания иерархии 69

Page 74: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

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

Процедура1. Щелкните по Создать иерархию.2. В поле Имя введите имя, описывающее, что представляет эта иерархия.3. В списке Модуль выберите соответствующий модуль для иерархии данных.4. В списке Тип иерархии выберите Данные.5. Нажмите кнопку Создать.6. Нажмите кнопку Сохранить, а затем Закрыть.

Создание иерархии формИерархия формы используется для выравнивания пути к данным на основевзаимосвязей родитель-наследник для иерархии заданного модуля и бизнес-объектов,представляющих уровни. При создании иерархии форм только один бизнес-объектможет представлять каждый уровень.

Процедура1. Щелкните по Создать иерархию.2. В поле Имя введите имя, описывающее, что представляет эта иерархия.3. В списке Модуль выберите соответствующий модуль для иерархии форм.4. В списке Тип иерархии выберите Форма.5. Щёлкните по Создать. Будет выведен раздел Уровни. Введите информацию для

формы уровня 1.6. В списке Бизнес-объект выберите соответствующий бизнес-объект.7. В списке Форма выберите соответствующую форму.8. В списке Тип выберите Найти. Метка пробела - это метка задаваемая при выборе

опции Игнорировать в списке Тип, когда запись не найдена.9. Нажмите кнопку Сохранить.

10. Продолжите ввод и сохранение информации, пока не будут определены всеуровни.

11. Нажмите кнопку Сохранить, а затем Закрыть.

70 © Copyright IBM Corp. 2011, 2015

Page 75: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Глава 5. Таблицы фактов

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

Информация таблицы фактов основана на поставляемых продуктах TRIRIGAWorkplace Performance Management и TRIRIGA Real Estate Environmental Sustainability.Реализация в вашей компании может отличаться.

У каждой таблицы фактов есть ETL для загрузки и ETL для очистки данных. ИменаETL для очистки данных оканчиваются на – Clear, например Building Cost Fact –Clear. Для просмотра этих ETL выберите пункт меню Инструменты >Конфигурирование системы > Элементы задания ETL.

Список поддерживаемых таблиц фактов и показателейВы можете обратиться к списку таблиц фактов и показателей, поддерживаемых вреализации TRIRIGA для вашей компании.

Обращение к таблицам фактов

Выберите Инструменты > Утилиты построителя > Data Modeler.

Найдите triMetricFact выберите эту опцию для показа списка бизнес-объектовтаблицы фактов.

Обращение к показателям

Выберите пункт меню Инструменты > Инструменты построителя > Менеджер отчетов> Системные отчеты.

Проведите фильтрование по Бизнес-объектам и Модулям, чтобы получитьсоответствующий список отчетов.

Совет: #FM# означает, что показатель - это также и показатель формы в системе.

Факты, для которых требуются специальные промежуточныетаблицы и ETL

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

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

Таблица 15. Факты, для которых требуются специальные промежуточные таблицы и ETL

Имя таблицы фактов Бизнес-объект таблицы фактов

Финансовая сводка triFinancialSummary

© Copyright IBM Corp. 2011, 2015 71

Page 76: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 15. Факты, для которых требуются специальные промежуточные таблицы иETL (продолжение)

Имя таблицы фактов Бизнес-объект таблицы фактов

Стандартные часы triStandardHours

Подробности стандартных часов triStandardHoursDetails

Факт - ежечасная аналитика активов triAssetAnalyticHFact

Факт - ежедневное использование энергииактивов

triAssetEnergyUseDFact

Факт - ежечасное использование энергииактивов

triAssetEnergyUseHFact

Факт - ежемесячное использование энергииактивов

triAssetEnergyUseMFact

Зависимые ETLНекоторые процессы ETL зависят от других ETL, способствующих процессамзагрузки.

В следующей таблице показаны ETL, зависящие от других ETL:

Таблица 16. Зависимые ETL

Имя таблицы фактов Бизнес-объект таблицы фактов

Построение ETL загрузки фактов стоимости Этот ETL зависит от доступности данных втаблице финансовой сводки. Таблицуфинансовой сводки можно загрузить иличерез внутреннюю интеграцию с вашейфинансовой системой, или при помощипроцесса Offline Financial Summary Excel. Длясодействия процессу Offline Financial SummaryExcel существует специальный ETL, чтобыпередать данные из процесса Excel/Offline втаблицу финансовой сводки. В поставляемомпродукте TRIRIGA Workplace PerformanceManagement эти специальные ETL называютсяLoad Financial Summary From Offline Staging иClear Financial Summary From Offline Staging.Если вы импортируете данные финансовойсводки с помощью процесса Offline FinancialSummary Excel, необходимо сначалазапустить ETL для Load Financial SummaryFrom Offline Staging. Затем нужно запуститьETL для Building Cost Fact Load.

72 © Copyright IBM Corp. 2011, 2015

Page 77: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Таблица 16. Зависимые ETL (продолжение)

Имя таблицы фактов Бизнес-объект таблицы фактов

ETL для Building Fact Load Этот ETL зависит от доступности данных втаблице финансовой сводки. Таблицуфинансовой сводки можно загрузить иличерез внутреннюю интеграцию с вашейфинансовой системой, или при помощипроцесса Offline Financial Summary Excel. Длясодействия процессу Offline Financial SummaryExcel существует специальный ETL, чтобыпередать данные из процесса Excel/Offline втаблицу финансовой сводки. В поставляемомпродукте TRIRIGA Workplace PerformanceManagement эти специальные ETL называютсяLoad Financial Summary From Offline Staging иClear Financial Summary From Offline Staging.Если вы импортируете данные финансовойсводки с помощью процесса Offline FinancialSummary Excel, необходимо сначалазапустить ETL для Load Financial SummaryFrom Offline Staging. Затем нужно запуститьETL для Building Cost Fact Load.

ETL для Resource Fact Load Зависит от ETL для загрузки стандартныхчасов.

ETL для загрузки стандартных часов Зависит от ETL для загрузки подробностей очасах.

ETL для ежедневных фактах об активах

ETL для ежечасных фактах об активах

ETL для ежемесячных фактах об активах

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

Глава 5. Таблицы фактов 73

Page 78: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

74 © Copyright IBM Corp. 2011, 2015

Page 79: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Замечания

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

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

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

IBM Director of LicensingIBM CorporationNorth Castle Drive, MD-NC119Armonk, NY 10504-1785US

По поводу лицензий, связанных с использованием наборов двухбайтных символов(DBCS), обращайтесь в отдел интеллектуальной собственности IBM в вашей странеили направьте запрос в письменной форме по адресу:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.19-21, Nihonbashi-Hakozakicho, Chuo-kuTokyo 103-8510, Japan

КОРПОРАЦИЯ INTERNATIONAL BUSINESS MACHINES ПРЕДОСТАВЛЯЕТДАННУЮ ПУБЛИКАЦИЮ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИПРЕДПОЛАГАЕМЫХ ГАРАНТИЙ ИЛИ ОБЯЗАТЕЛЬСТВ, ВКЛЮЧАЯ, НО НЕОГРАНИЧИВАЯСЬ ТАКОВЫМИ, ПРЕДПОЛАГАЕМЫЕ ГАРАНТИИ НА ЕЕПАТЕНТНУЮ ЧИСТОТУ, КОММЕРЧЕСКОЕ ИСПОЛЬЗОВАНИЕ ИЛИПРИГОДНОСТЬ ДЛЯ КАКИХ-ЛИБО ЦЕЛЕЙ. В некоторых странах для рядасделок не допускается отказ от явных или предполагаемых гарантий; в таком случаеданное положение к вам не относится.

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

© Copyright IBM Corp. 2011, 2015 75

Page 80: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Ссылки на веб-сайты других компаний (не IBM) приводятся только для вашегоудобства и ни в коей мере не должны рассматриваться как рекомендациипользоваться этими сайтами. Материалы на этих сайтах не входят в числоматериалов по данному продукту IBM, и весь риск пользования этими сайтами несетевы сами.

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

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

IBM Director of LicensingIBM CorporationNorth Castle Drive, MD-NC119Armonk, NY 10504-1785US

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

Лицензированная программа, описанная в данном документе, и все лицензированныематериалы, доступные с ней, предоставляются IBM на условиях IBM CustomerAgreement (Соглашения IBM с заказчиком), Международного соглашения олицензиях на программы IBM или эквивалентного соглашения.

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

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

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

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

ЛИЦЕНЗИЯ НА КОПИРОВАНИЕ:

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

76 © Copyright IBM Corp. 2011, 2015

Page 81: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

использования, сбыта или распространения прикладных программ, соответствующихинтерфейсу прикладного программирования операционных платформ, для которыхэти примера программ написаны. Эти примеры не были тщательно протестированыпри всех возможных условиях. Поэтому IBM не может гарантировать их надежность,пригодность и функционирование. Примеры программ предоставляются "КАКЕСТЬ", без каких-либо гарантий. IBM не несет никакой ответственности за какойлибо ущерб, причиненный в результате использования этих программ.

Каждая копия или часть этих образцов программ или выполненной на ихосновании работы должна сопровождаться следующим указаниемавторских прав:© (название вашей компании) (год).Часть этого кода получена из образцов программ IBM Corp.© Copyright IBM Corp. _введите год или годы_.

Товарные знакиIBM, логотип IBM и ibm.com - товарные знаки или зарегистрированные товарныезнаки International Business Machines Corp., зарегистрированные во многихюрисдикциях мира. Другие продукты и услуги могут быть товарными знаками IBMили других компаний. С текущим списком товарных знаков IBM можноознакомиться на веб-странице "Copyright and trademark information" (Информация обавторских правах и товарных знаках) по адресу www.ibm.com/legal/copytrade.shtml.

Java™ и все основанные на Java товарные знаки и логотипы - товарные знаки илизарегистрированные товарные знаки Oracle и/или его филиалов.

Linux - товарный знак Линуса Торвальдса (Linus Torvalds) в США и/или другихстранах.

Microsoft, Windows, Windows NT и логотип Windows - товарные знаки MicrosoftCorporation в США и/или в других странах.

UNIX - зарегистрированный товарный знак The Open Group в Соединенных Штатах ив других странах.

Другие продукты и услуги могут быть товарными знаками IBM или другихкомпаний.

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

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

Данные условия дополняют условия использования, приведенные на сайте IBM.

Личное использование

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

Замечания 77

Page 82: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

Коммерческое использование

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

Права

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

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

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

IBM НЕ ДАЕТ НИКАКИХ ГАРАНТИЙ ОТНОСИТЕЛЬНО СОДЕРЖАНИЯЭТИХ ПУБЛИКАЦИЙ. ПУБЛИКАЦИИ ПРЕДСТАВЛЯЮТСЯ "КАК ЕСТЬ", БЕЗКАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ(НО НЕ ОГРАНИЧИВАЯСЬ ТАКОВЫМИ) ПРЕДПОЛАГАЕМЫЕ ГАРАНТИИРЫНОЧНОЙ ПРИГОДНОСТИ, НЕНАРУШЕНИЯ ПРАВ ИЛИ СООТВЕТСТВИЯОПРЕДЕЛЕННОЙ ЦЕЛИ.

Заявление IBM о конфиденциальности в интернетеВ программных продуктах IBM, включая программы как решения служб(“Программные предложения”), могут использоваться cookies или другие технологиидля сбора информации по использованию продукта, чтобы помочь конечномупользователю в работе, настроить взаимодействия с конечным пользователем илидля иных целей. Во многих случаях информация, устанавливающая личность, несобирается в рамках программных предложений. Некоторые наши программныепредложения могут помочь вам в сборе устанавливающей личность информации.Если такое программное предложение использует объекты cookies для сбораустанавливающей личность информации, ниже приводится информация обиспользовании объектов cookies в рамках такого предложения.

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

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

Дополнительную информацию об использовании различных технологий, включаяобъекты cookies, для этих целей, смотрите в Политике конфиденциальности IBM поадресу http://www.ibm.com/privacy, в Заявлении о конфиденциальности в сети IBM по

78 © Copyright IBM Corp. 2011, 2015

Page 83: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

адресу http://www.ibm.com/privacy/details в разделе под названием "Объекты сookies,веб-маяки и другие технологии", а также в "Заявлении IBM о конфиденциальностипрограммных продуктов и ПО как сервис" по адресуhttp://www.ibm.com/software/info/product-privacy/.

Замечания 79

Page 84: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

80 © Copyright IBM Corp. 2011, 2015

Page 85: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации
Page 86: (C) Copyright IBM Corp. 2011, 2015 · иерархическую структуру . Иерархические структуры используются для путей детализации

IBM®

Напечатано в Дании