пятница, 30 июля 2010 г.

Типы репозиториев ODI.

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

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

вторник, 27 июля 2010 г.

Скрытые переменные сценария.

Как известно, при генерации сценария можно выбрать, какие переменные отображать при запуске сценария в окне ввода параметров:



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



В Oracle Data Integrator версии 10.1.3.4 - 10.1.3.5 есть одна хитрость, которую я буду считать недокументированной ошибкой. Если запустить сценарий, выбрав контекст, агента и уровень логирования, а затем, на следующем диалоговом окне, именно там, где необходимо ввести значения переменных, выбрать отмену запуска, то при следующем запуске того же сценария можно будет увидеть все переменные, которые используются в этом сценарии. И не только увидеть, но и установить им некие значения!



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

См. также другие записи с ярлыком Переменные.

понедельник, 26 июля 2010 г.

Удаление логов выполнения сценариев в ODI.

Как известно, при выполнении сценария в ODI, процесс этого выполнения можно просматривать в отдельном приложении, под названием Operator. (В новой версии Oracle Data Integrator отдельного приложения, по слухам, не будет.) Но не все логи выполнения одинаково полезны. Чтобы уменьшить количество просматриваемых логов выполнения, можно ненужные логи удалить. Для этого ODI имеет специальный компонент, который называется OdiPurgeLog.


Приветствие

Всем привет।

Данный блог предназначен для публикации приёмов и методов работы с сервером приложений Oracle Data Integrator (ODI), в частности, при его использовании для построения Хранилищ Данных (Data Warehouse).

четверг, 1 июля 2010 г.

2010-07-01.

ODI 11g - Часть 1/11 - Первый экран.
11g Oracle Data Integrator – Part 1/11g – First Screen
Вышел ODI 11.
Дата публикации: 2010-07-22, Комментариев: 8


Лучшие практики использования ODI.
Best practice of ODI
9 крайне полезных советов о ньюансах при разработке ETL процессов и организации работы с ODI.
Дата публикации: 2010-07-30, Комментариев: 0


Анализируем лог ошибок.
Error Records Log
Пример скрипта для чтения данных из таблицы SNP_CHECK_TAB, содержащей регистрацию ошибок во время работы ETL процедур. Это такие ошибки как неправильность первичных ключей, неправильность внешних ключей, ограничения на NULL в колонке и т.п. Данные из таблицы записываются в файл, который после может быть отправлен по почте для дальнейшего анализа.
Дата публикации: 2010-07-30, Комментариев: 4


Получить информацию о любом проблемном шаге выполнения в пакете ODI.
Get the Error Message of any Failed ODI objects inside Package
Приведен SQL код для получения информации об ошибочно завершенных шагах пакета в переменную и вывода затем значения этой переменной в файл. Код делает выборку данных прямо из репозитория и расшифровывает закодированные типы шагов в текстовый вид. Затем полученный лог может использоваться для анализа ошибок выполнения сценария. Есть перевод.
Дата публикации: 2010-07-30, Комментариев: 3


Историческая таблица тип 3.
SCD Type 3
Преобразование модуля знаний IKM Oracle Incremental Update для построение исторических таблиц третьего типа (SCD Type 3).
Дата публикации: 2010-07-30, Комментариев: 2


Генерация названия колонок для OdiSqlUnload.
Generate Column_name Header for OdiSqlUnload
Описано, как с помощью выборки из системных таблиц получить названия для колонок при выгрузке любых таблиц из БД с помощью утилиты OdiSqlUnload.
Дата публикации: 2010-07-31, Комментариев: 5


Oracle Data Integrator: ODIInvokeWebService и Java 6.
Oracle Data Integrator: ODIInvokeWebService and Java 6
Ошибка при совместном использовании встроенного клиента SOAP из ODI и JDK 6. Рекомендуется установить предыдущую версию Java.
Дата публикации: 2010-07-16, Комментариев: 1


Веб-сервис ODI (OdiInvokeWebService) и OBIEE веб-сервис API.
Oracle Data Integrator (ODI) web services (SOAP client via ODIInvokewebservice) and the OBIEE web services API.
Как подключиться через OdiInvokeWebService к Oracle Business Intelligence API и получить через веб-сервис, например, список и иерархию групп и пользователей, перечень разрешений и т.п.
Дата публикации: 2010-07-31, Комментариев: 0

вторник, 1 июня 2010 г.

2010-06-01.


Ошибка Jython в Windows 7.
Jython OS bug in Windows 7
При работе в Windows 7 ODI Jython неверно определяет ОС и использует для Windows Unix подобные разделители папок. Рассказано, как это исправить и как запускать команды операционной системы независимо от того, Windows это или Unix подобная ОС.
Дата публикации: 2010-06-20, Комментариев: 4


Подсчитываем количество строк с помощью SQL скрипта, подготовленного через Jython.
Writing SQL counts using Jython
Выполнение SQL запроса через Jython
Дата публикации: 2010-06-20, Комментариев: 0


Автоматизация экспорта - импорта сценариев.
Automated ODI Export Import Scenarios
Подробное описание как организовать автоматическую передачу измененных сценариев из одного рабочего репозитория в другой, например, для тестирования. Сам процесс передачи организован как набор из нескольких пакетов и процедур ODI. Таким образом, переброс ODI сценариев в другой репозиторий осуществляется также с помощью сценариев. Я даже знаю проект и человека, который этот подход успешно внедрил в процесс разработки ETL на этом проекте.
Дата публикации: 2010-06-21, Комментариев: 9


Модуль знаний для выгрузки данных из любой СУБД и загрузки их в Oracle.
LKM OdiSqlUnload(File) to Oracle ( SQLLDR )
Специально разработанный модуль знаний для загрузки сверхбольших объемов данных. Для выгрузки используется OdiSqlUnload, т.е. модуль может работать с различными СУБД, для загрузки используется SQLLDR, так что целевая БД - только Oracle. Работает как в Windows так и в Unix без дополнительных модификаций. В комментариях также разбираются вопросы улучшения производительности выбранного метода выгрузки/загрузки данных.
Дата публикации: 2010-06-21, Комментариев: 20



Oracle Data Integrator (ODI) обучающее видео от Крейга Стюарта.
Craig Stewart’s Oracle Data Integrator (ODI) video tutorials
Ссылки на обучающее видео об ODI от Крейга Стюарта. Смотри также: Обучающее видео по Oracle Data Integrator.
Дата публикации: 2010-06-05, Комментариев: 10


Вызов Java класса или подключение JAR файла в ODI через Jython или Java BeanShell.
Calling custom Java classes and JAR files in ODI via Jython or Java BeanShell
Простой пошаговый пример создания класса в Java, компиляции этого класса в JAR файл и вызова этого класса из ODI.
Дата публикации: 2010-06-09, Комментариев: 2


Вложенные методы подстановки ODI. Часть 2.
Nesting ODI Substitution Methods. Part II.
Рассказано, как использовать знак кавычки (") во вложенных вызовах методов подстановки ODI.
Дата публикации: 2010-06-24, Комментариев: 0

суббота, 1 мая 2010 г.

2010-05-01.


ODI и аутентификация в MS SQL Server.
ODI and Integrated Security/Authentication with Microsoft SQL Server
Описано как настраивать подключение агента ODI к MS SQL Server с включенным режимом IntegratedSecurity.
Дата публикации: 2010-05-04, Комментариев: 0


ODI и аналитические функции (снова???)
ODI and analytic functions (again???)
Еще один способ обмануть синтаксический анализатор ODI, благодаря которому вызов в маппинге аналитической функции не попадет в команду Group By, генерируемую методом подстановки getGrpBy().
Дата публикации: 2010-05-20, Комментариев: 2

четверг, 1 апреля 2010 г.

2010-04-01.


Отобразить результат выполнения SQL запроса в Операторе.
Displaying SQL results in Operator
Как отобразить результат выполнения SQL запроса непосредственно в Операторе. Есть перевод данного подхода. Есть перевод.
Дата публикации: 2010-04-04, Комментариев: 4


Контроль потока данных и статический контроль.
Flow Control and Static Control
Описано, зачем используются E$ таблицы и как собирать ошибки в данных. Показано различие между обработкой неверных данных во время загрузки и перед выполнением актуального переноса данных, что позволяет сделать загрузку более продуктивной.
Дата публикации: 2010-04-04, Комментариев: 0


Параллельное выполнение интерфейсов - новое решение.
Interface Parallel Execution – A new solution
Как организовать загрузку данных в параллельном режиме в одну и ту же таблицу путем модификации модуля знаний и изменения наименования временных $ таблиц. Есть перевод.
Дата публикации: 2010-04-09, Комментариев: 24


Загрузить данные из любого (любых) файлов из заданной папки.
Getting one or several unknown files from a directory
Для загрузки данных из файлов, имена которых не стандартизованы, можно использовать простой трюк, при котором сначала необходимо создать файл со списком имен файлов, а затем прочитать этот список по одной строке и поместить имя файла в переменную. Далее можно, например, использовать переменную вместо имени реальной таблицы в модели.
Дата публикации: 2010-04-12, Комментариев: 4


ODI и аутентификация в MS SQL Server.
ODI and Integrated Security/Authentication with Microsoft SQL Server
Описано как настраивать подключение агента ODI к MS SQL Server с включенным режимом IntegratedSecurity.
Дата публикации: 2010-05-04, Комментариев: 0

понедельник, 1 марта 2010 г.

2010-03-01.

Март, 2010
Ручное добавление драйверов в список ODI.
Manual entry in ODI Driver List
Описание экспериментальной попытки добавления драйвера в ODI путем модификации файла DriverRefV3.xml.
Дата публикации: 2010-03-10, Комментариев: 0


Отслеживание изменений в данных.
Changed Data Capture ( CDC )
Описание режима простого (Simple CDC) отслеживания изменения в данных на источнике и переноса этих изменений в приемник данных.
Дата публикации: 2010-03-14, Комментариев: 22


Инсталляция ODI в Windows 7.
Installing ODI in Windows 7
Инсталляция ODI 10 на Windows 7.
Дата публикации: 2010-03-20, Комментариев: 1


Выполнение SQL запросов через ODI.
Querying in ODI
Как выполнить SQL запрос используя только таблицы модели ODI.
Дата публикации: 2010-03-20, Комментариев: 0


Удаление $ таблиц.
Dropping $ Tables
Пример кода для удаления временных $ таблиц, создаваемых ODI во время ETL преобразований. Есть перевод.
Дата публикации: 2010-03-23, Комментариев: 1


Модуль знаний для операции UNION на основе IKM SQL CNTRL APPEND
KM FOR UNION BASED ON IKM SQL CNTRL APPEND
Модификация модуля знаний в ODI 10 для поддержки использования команды UNION в интерфейсах.
Дата публикации: 2010-03-23, Комментариев: 0


Асинхронное (параллельное) выполнение.
Asynchronous -Parallel Execution
Как запустить несколько интерфейсов одновременно из одного пакета с помощью сценариев.
Дата публикации: 2010-03-27, Комментариев: 4


Экспорт из репозитория разработки в репозиторий выполнения [один мастер репозиторий].
Export DWR to EWR [ Common Master Rep ]
Пошаговая инструкция как создать новый репозиторий выполнения, перенести туда сценарии для тестирования, настроить схемы, агентов и т.п.
Дата публикации: 2010-03-28, Комментариев: 3


SQL запрос о деталях выполнения сессий.
Scenario Report
Пример SQL скрипта для получения результатов выполнения каждого сценария из репозитория. Выбираются данные о количестве вставленных строк, длительности, успешности завершения и т.п.
Дата публикации: 2010-03-28, Комментариев: 0


ODI переменные и Оператор.
ODI Variables and the Operator Module
Приведен код общей процедуры на Jython для отображения значения всех переменных пакета в Операторе. Имя пакета должно передаваться как параметр процедуры.
Дата публикации: 2010-03-14, Комментариев: 5


Получаем столбцы источника и приемника данных для интерфейса.
ODI snippets: Query to retrieve source and target columns in an interface
SQL запрос для получения списка таблиц и колонок источника и таблиц приемника данных для заданного интерфейса напрямую из репозитория ODI.
Дата публикации: 2010-03-17, Комментариев: 0


ODI - функция getSession(“SESS_PARAMS” ).
ODI – getSession(“SESS_PARAMS” )
Описание использования недокументированного параметра команды getSession - SESS_PARAMS. Смотри также: odiRef.getSession() Недокументированные параметры.
Дата публикации: 2010-03-17, Комментариев: 0


Вложенные методы подстановки ODI.
Nesting ODI substitution method calls. Part 1.
Первая часть описания механизма работы многоуровневого парсера для методов подстановки ODI.
Дата публикации: 2010-03-29, Комментариев: 2

понедельник, 1 февраля 2010 г.

2010-02-01.


Под капотом Sunopsis Memory Engine. Часть 2.
Under the hood of the Sunopsis Memory Engine. Part 2
Демонстрация работы "БД в памяти" при помощи последовательного заполнения таблицы несколькими значениями. Так же показано, как Sunopsis Memory Engine может использоваться для прямого вызова функций Java для реализации той функциональности, которой нет в СУБД, например, для подсчета хеш-функций.
Дата публикации: 2010-02-01, Комментариев: 3


Под капотом Sunopsis Memory Engine. Часть 3.
Under the hood of the Sunopsis Memory engine. Part 3.
Демонстрация как с помощью Sunopsis Memory Engine передать значение переменной из одного сценария в другой и как сохранить значение переменной в процедуре.
Дата публикации: 2010-02-14, Комментариев: 0