Сегодня в блоге перевод свежей статьи Rodrigo Radtke de Souza под названием ODI Substitution Tags demystified
Использовались рисунки оригинального поста.
Всем привет.
Бьюсь об заклад, что все ODI разработчики путаются, когда работают с тэгами методов подстановки. Каждый раз, когда мне нужно с ними поработать, я должен повторить все мои проверки еще раз, так как я забываю, для чего какой тэг используется (несмотря на мой многолетний опыт работы с ODI). Это стало одной из причин, по которым я решил написать этот пост - я, в будущем, смог бы освежить свою память, прочитав его (где ты, память???). Так же потому что это хорошо - делиться своим опытом с другими, что пошло бы на пользу (я надеюсь на это) если у кого-то возникнут те же проблемы.
Что же такое тэги подстановки, для тех, кто с ними не слишком знаком? Тэги подстановки это те символы, которые вы видите если откроете модуль знаний или процедуру в ODI, точнее вот эти символы - <%>, <@>, <?>, <$>. Вот как на этом рисунке.
О работе в Oracle Data Integrator (ODI) и других захватывающих вещах из мира BI.
Показаны сообщения с ярлыком odiRef. Показать все сообщения
Показаны сообщения с ярлыком odiRef. Показать все сообщения
понедельник, 29 сентября 2014 г.
вторник, 21 февраля 2012 г.
Создание представления через модуль знаний (Create View IKM).
God aften!
Представления (или, как их еще называют - вьюхи) очень важны, иногда они являются непосредственным воплощением ETL процесса. Например, на этапе загрузки данных из источников вполне вероятно использование представлений для простейших преобразований данных.
Нельзя сказать, что такое важное значение представлений никак не отражено в фольклоре. Как поет фронтмен группы ETaLlica - James_PK_Head_Field:
I am the View
I am the Table(t).
I am the View, I am the Table(t).
Даже из этого отрывка ясно, что представления многими ставятся на одно из первых мест.
Представления (или, как их еще называют - вьюхи) очень важны, иногда они являются непосредственным воплощением ETL процесса. Например, на этапе загрузки данных из источников вполне вероятно использование представлений для простейших преобразований данных.
Нельзя сказать, что такое важное значение представлений никак не отражено в фольклоре. Как поет фронтмен группы ETaLlica - James_PK_Head_Field:
I am the View
I am the Table(t).
I am the View, I am the Table(t).
Даже из этого отрывка ясно, что представления многими ставятся на одно из первых мест.
среда, 28 сентября 2011 г.
Использование утилит Oracle Data Integrator.
Сентябрь еще на дворе, а в нашей профессии без постоянного изучения чего-нибудь нового - никуда. Поэтому сегодня будет перевод части документации из файла Tools Reference Guide посвященной командам ODI.
Использование утилит Oracle Data Integrator.
Использование утилит Oracle Data Integrator.
пятница, 5 августа 2011 г.
Сбор статистики для таблиц MS SQL Server.
Приветствую.
Продолжим изучать описанный ранее подход сбора статистики для таблиц БД.
Моя цель - улучшить скрипт и разобраться немного с процессом сбора статистики для таблиц MS SQL Server. Статистику буду собирать по всем колонкам заданной таблицы.
Итак, документация дает следующее описание синтаксиса команды сбора статистики:
Продолжим изучать описанный ранее подход сбора статистики для таблиц БД.
Моя цель - улучшить скрипт и разобраться немного с процессом сбора статистики для таблиц MS SQL Server. Статистику буду собирать по всем колонкам заданной таблицы.
Итак, документация дает следующее описание синтаксиса команды сбора статистики:
пятница, 4 февраля 2011 г.
Используем методы подстановки для изменения модулей знаний ODI.
Приветствую.
В прошлом году один из читателей этого блога задал по почте такой вопрос:
Добавим немного практики в этот блог, и попробуем сделать два улучшения в один из модулей знаний, поставляемый вместе с ODI для MS SQL Server.
В прошлом году один из читателей этого блога задал по почте такой вопрос:
Как можно передать хинт на уровень запроса. К примеру, у нас есть интерфейс, он формирует запрос в LKM - шаг называется load data, но план не оптимальный, хочу улучшить, как я могу передать хинт в этот запрос?
Добавим немного практики в этот блог, и попробуем сделать два улучшения в один из модулей знаний, поставляемый вместе с ODI для MS SQL Server.
четверг, 13 января 2011 г.
GetObjectName и другие способы обращения к таблице.
Приветствую.
При подготовке сообщений в блог начальная идея иногда трансформируется в нечто совершенно другое. Более того, иногда, изучив документацию и примеры - понимаешь, что некоторые вещи, которые раньше делал, делал понимая не до конца, хотя и с правильными результатами.
Я планировал рассказать о двух методах для получения имен таблиц БД в процедурах. Эти методы отличаются от методов, которые используются в модулях знаний, так как модули знаний обычно применяются в интерфейсах, а, значит, можно пользоваться такими понятиями (и связанными с ними методами подстановки), как целевая таблица, или таблицы источники данных.
При подготовке сообщений в блог начальная идея иногда трансформируется в нечто совершенно другое. Более того, иногда, изучив документацию и примеры - понимаешь, что некоторые вещи, которые раньше делал, делал понимая не до конца, хотя и с правильными результатами.
Я планировал рассказать о двух методах для получения имен таблиц БД в процедурах. Эти методы отличаются от методов, которые используются в модулях знаний, так как модули знаний обычно применяются в интерфейсах, а, значит, можно пользоваться такими понятиями (и связанными с ними методами подстановки), как целевая таблица, или таблицы источники данных.
понедельник, 20 декабря 2010 г.
Как создать workflow в ODI. Часть 2.
Продолжим о построении workflow с помощью пакетов. Из первой части понятно, как организовать загрузку в таблицу(ы) последовательно, возможно, с дополнительными действиями, организованными в виде процедур ODI, теперь же попробуем сделать загрузку данных в параллельном режиме.
Для этого необходимо в пакет добавлять не вызовы интерфейсов, а запуск сценариев, созданных из этих интерфейсов или других пакетов.
Для этого необходимо в пакет добавлять не вызовы интерфейсов, а запуск сценариев, созданных из этих интерфейсов или других пакетов.
четверг, 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.
четверг, 5 августа 2010 г.
Получение текста ошибки при неправильном выполнении любого объекта ODI внутри пакета
Сегодня хочу опубликовать перевод вот этой статьи, авторства Kshitiz Devendra и Cezar Santos, которая освещает вопрос получения текстов ошибок при выполнении сценариев.
-= Начало перевода =-
Когда мы имеем несколько интерфейсов, переменных и других объектов в дочернем сценарии, и когда, при этом, дочерний сценарий завершается с ошибкой, в главном сценарии нам возвращается ошибка: "Сценарий не завершился должным образом". Чтобы узнать, что произошло, нам необходимо смотреть в Оператор.
-= Начало перевода =-
Когда мы имеем несколько интерфейсов, переменных и других объектов в дочернем сценарии, и когда, при этом, дочерний сценарий завершается с ошибкой, в главном сценарии нам возвращается ошибка: "Сценарий не завершился должным образом". Чтобы узнать, что произошло, нам необходимо смотреть в Оператор.
вторник, 3 августа 2010 г.
odiRef.getSession() Недокументированные параметры.
Для большей гибкости сценария мониторинга, удаление логов которого было описано в одном из предыдущих сообщений, захотел узнать, возможно ли с помощью функции ODI getSession получить наименование сценария.
В документации описаны только следующие возможные значения параметра этой функции:
Попробовал передать в функцию значение "SCEN_NAME" - получилось!
В документации описаны только следующие возможные значения параметра этой функции:
Попробовал передать в функцию значение "SCEN_NAME" - получилось!
Подписаться на:
Сообщения (Atom)