Сегодня в блоге перевод свежей статьи Rodrigo Radtke de Souza под названием ODI Substitution Tags demystified
Использовались рисунки оригинального поста.
Всем привет.
Бьюсь об заклад, что все ODI разработчики путаются, когда работают с тэгами методов подстановки. Каждый раз, когда мне нужно с ними поработать, я должен повторить все мои проверки еще раз, так как я забываю, для чего какой тэг используется (несмотря на мой многолетний опыт работы с ODI). Это стало одной из причин, по которым я решил написать этот пост - я, в будущем, смог бы освежить свою память, прочитав его (где ты, память???). Так же потому что это хорошо - делиться своим опытом с другими, что пошло бы на пользу (я надеюсь на это) если у кого-то возникнут те же проблемы.
Что же такое тэги подстановки, для тех, кто с ними не слишком знаком? Тэги подстановки это те символы, которые вы видите если откроете модуль знаний или процедуру в ODI, точнее вот эти символы - <%>, <@>, <?>, <$>. Вот как на этом рисунке.
О работе в Oracle Data Integrator (ODI) и других захватывающих вещах из мира BI.
Показаны сообщения с ярлыком SM. Показать все сообщения
Показаны сообщения с ярлыком SM. Показать все сообщения
понедельник, 29 сентября 2014 г.
воскресенье, 3 июня 2012 г.
Доступ к собственному репозиторию из сценария.
Приветствую коллеги.
В моем первом полезном посте я постарался рассказать, каким образом можно выборочно удалять логи выполнения сценариев из репозитория, путем прямого доступа в рабочий репозиторий.
Пример был работающий, но его применимость была несколько ограниченной. Объясню почему. У нас на проекте настройка контекстов, например, DEV и TEST была, в основном, связана с взаимоувязкой физической схемы дев источника данных с физической схемой приемника данных опять же на дев сервере. Тоже самое касалось контекста TEST, где связывались между собой две физических схемы на том же сервере: тест-источник <-> тест приемник.
В моем первом полезном посте я постарался рассказать, каким образом можно выборочно удалять логи выполнения сценариев из репозитория, путем прямого доступа в рабочий репозиторий.
Кстати, для тех, кто пока не считает себя великим ODI гуру - крайне полезно будет пройти по всем записям этого блога за 2010 год, начиная прямо с июля месяца. Я уверен, вы найдете там массу интересного.
Пример был работающий, но его применимость была несколько ограниченной. Объясню почему. У нас на проекте настройка контекстов, например, DEV и TEST была, в основном, связана с взаимоувязкой физической схемы дев источника данных с физической схемой приемника данных опять же на дев сервере. Тоже самое касалось контекста TEST, где связывались между собой две физических схемы на том же сервере: тест-источник <-> тест приемник.
четверг, 1 декабря 2011 г.
История одного расследования (missing expression).
Всем привет.
Хочу рассказать историю, как я пытался создать простой интерфейс, нашел "ошибку" в одном из модулей знаний свежего ODI и как я узнал, где используется то, что я не понимал зачем нужно.
Часть 1.
Решил я создать интерфейс. Интерфейс должен был затянуть данные из одной таблицы в Oracle в другую таблицу в Oracle, но на другом сервере. Для того, чтобы данный интеграционный процесс заработал, необходимо было правильно создать серверы данных, прописать схемы и контексты, об этом есть немного в описании инсталляции ODI.
Хочу рассказать историю, как я пытался создать простой интерфейс, нашел "ошибку" в одном из модулей знаний свежего ODI и как я узнал, где используется то, что я не понимал зачем нужно.
Часть 1.
Решил я создать интерфейс. Интерфейс должен был затянуть данные из одной таблицы в Oracle в другую таблицу в Oracle, но на другом сервере. Для того, чтобы данный интеграционный процесс заработал, необходимо было правильно создать серверы данных, прописать схемы и контексты, об этом есть немного в описании инсталляции ODI.
пятница, 15 июля 2011 г.
Используем аналитические функции SQL в ODI.
Приветствую.
Сегодня хочу рассказать о том, что давно уже всем известно. Вернее, я так думал, что все, кто работал с ODI об этом давно знают.
Но, пару недель назад, я услышал, что ODI не знает как ему работать с аналитическими функциями в маппингах.
Вернее, мой собеседник сообщил, что ODI умеет работать с аналитическими максимумами или минимумами, но не совсем правильно это делает. И чтобы исправить это дело, нужно долго копаться в модулях знаний, изучать методы подстановки и т.п. и т.д.
Сегодня хочу рассказать о том, что давно уже всем известно. Вернее, я так думал, что все, кто работал с ODI об этом давно знают.
Но, пару недель назад, я услышал, что ODI не знает как ему работать с аналитическими функциями в маппингах.
Вернее, мой собеседник сообщил, что ODI умеет работать с аналитическими максимумами или минимумами, но не совсем правильно это делает. И чтобы исправить это дело, нужно долго копаться в модулях знаний, изучать методы подстановки и т.п. и т.д.
суббота, 11 июня 2011 г.
Прячем пароль при вызове внешних утилит.
Всем привет.
Идея этой заметки появилась после вот такой беседы:
Идея этой заметки появилась после вот такой беседы:
...мне нужно внутри пакета выполнить sql файл. Через OS command можно, но получается, что явно пароль указывается. Вроде как не хорошо. Может ещё вариант есть? ...я могу написать sqlplus user/pass@Database @file.sql но хочется логин пароль и имя базы не прописывать явно
пятница, 4 февраля 2011 г.
Используем методы подстановки для изменения модулей знаний ODI.
Приветствую.
В прошлом году один из читателей этого блога задал по почте такой вопрос:
Добавим немного практики в этот блог, и попробуем сделать два улучшения в один из модулей знаний, поставляемый вместе с ODI для MS SQL Server.
В прошлом году один из читателей этого блога задал по почте такой вопрос:
Как можно передать хинт на уровень запроса. К примеру, у нас есть интерфейс, он формирует запрос в LKM - шаг называется load data, но план не оптимальный, хочу улучшить, как я могу передать хинт в этот запрос?
Добавим немного практики в этот блог, и попробуем сделать два улучшения в один из модулей знаний, поставляемый вместе с ODI для MS SQL Server.
четверг, 13 января 2011 г.
GetObjectName и другие способы обращения к таблице.
Приветствую.
При подготовке сообщений в блог начальная идея иногда трансформируется в нечто совершенно другое. Более того, иногда, изучив документацию и примеры - понимаешь, что некоторые вещи, которые раньше делал, делал понимая не до конца, хотя и с правильными результатами.
Я планировал рассказать о двух методах для получения имен таблиц БД в процедурах. Эти методы отличаются от методов, которые используются в модулях знаний, так как модули знаний обычно применяются в интерфейсах, а, значит, можно пользоваться такими понятиями (и связанными с ними методами подстановки), как целевая таблица, или таблицы источники данных.
При подготовке сообщений в блог начальная идея иногда трансформируется в нечто совершенно другое. Более того, иногда, изучив документацию и примеры - понимаешь, что некоторые вещи, которые раньше делал, делал понимая не до конца, хотя и с правильными результатами.
Я планировал рассказать о двух методах для получения имен таблиц БД в процедурах. Эти методы отличаются от методов, которые используются в модулях знаний, так как модули знаний обычно применяются в интерфейсах, а, значит, можно пользоваться такими понятиями (и связанными с ними методами подстановки), как целевая таблица, или таблицы источники данных.
четверг, 16 декабря 2010 г.
Методы подстановки ODI (Substitution Methods). Часть 3.
Третья часть перевода документации, описывающей методы подстановки ODI (часть 1, часть 2).
Генерация команды SELECT для источников.
Модули знаний LKM и IKM типов работают с результатами выборки данных из таблиц источников. Для загрузочного модуля знаний (LKM) результат выборки это некая команда, соединяющая несколько таблиц источников, правила этого соединения, фильтры, который должен быть выполнен на системе источнике данных. Для интеграционного модуля знаний (IKM) результирующий набор строк это то, что получается путем преобразования данных таблиц источников, но уже в области стейджа.
Генерация команды SELECT для источников.
Модули знаний LKM и IKM типов работают с результатами выборки данных из таблиц источников. Для загрузочного модуля знаний (LKM) результат выборки это некая команда, соединяющая несколько таблиц источников, правила этого соединения, фильтры, который должен быть выполнен на системе источнике данных. Для интеграционного модуля знаний (IKM) результирующий набор строк это то, что получается путем преобразования данных таблиц источников, но уже в области стейджа.
пятница, 3 декабря 2010 г.
Методы подстановки ODI (Substitution Methods). Часть 2.
Продолжаю перевод документации, посвященный описанию методов подстановки (Substitution Methods API) в Oracle Data Integrator. Начало тут.
Работа со списками таблиц, колонок и выражений.
Генерация кода из списка элементов предполагает некий вид цикла. ODI решает эту задачу через методы работы со списками. Эти методы работают как итераторы, в которые передаются фактические параметры, шаблоны результата, разделители. Далее эти методы возвращают строку с нужными разделителями.
Методы-итераторы принимают, как минимум, четыре возможных параметра:
Работа со списками таблиц, колонок и выражений.
Генерация кода из списка элементов предполагает некий вид цикла. ODI решает эту задачу через методы работы со списками. Эти методы работают как итераторы, в которые передаются фактические параметры, шаблоны результата, разделители. Далее эти методы возвращают строку с нужными разделителями.
Методы-итераторы принимают, как минимум, четыре возможных параметра:
четверг, 25 ноября 2010 г.
Методы подстановки ODI (Substitution Methods).
Сегодня я хочу рассказать о методах подстановки, которые ODI использует для построения набора команд, используемых в ETL задачах. Для общего обзора наилучшим источником, на мой взгляд, является документация, поэтому я постарался перевести некоторые части файла Knowledge Modules Developer's Guide.
вторник, 3 августа 2010 г.
odiRef.getSession() Недокументированные параметры.
Для большей гибкости сценария мониторинга, удаление логов которого было описано в одном из предыдущих сообщений, захотел узнать, возможно ли с помощью функции ODI getSession получить наименование сценария.
В документации описаны только следующие возможные значения параметра этой функции:
Попробовал передать в функцию значение "SCEN_NAME" - получилось!
В документации описаны только следующие возможные значения параметра этой функции:
Попробовал передать в функцию значение "SCEN_NAME" - получилось!
Подписаться на:
Сообщения (Atom)