Интересный метод создания временных таблиц подсмотрел вот в этой публикации.
Я, до начала перевода статьи, так никогда сам не делал, но, возможно, это кому-нибудь будет полезно.
Как создать временную таблицу в интерфейсе ODI.
Создайте новый интерфейс, задайте его имя, выберите контекст оптимизации и выберите подходящую схему для установленной опции Стейджинговая область отлична от целевой области (Staging Area Different From Target).
На диаграмме в область источников данных поместить таблицу источник, из данных которой необходимо создать временную таблицу. В области целевой таблицы кликните на пустой области, чтобы увидеть свойства целевой таблицы, в частности, имя таблицы, контекст и временную область хранения:
Введите имя временной таблицы. Оставьте значение контекста таким, как оно выбрано, если вы не собираетесь запускать этот интерфейс только для определенного контекста.
В качестве места хранения выберите опцию временную БД (Work Schema), в случае если вы не планируете создавать временную таблицу в одной из главных БД.
Чтобы создать временную таблицу из всех колонок нажмите правой кнопкой на заголовке таблицы источника и выберите команду добавить в целевую таблицу (Add to target).
Для добавления отдельных колонок нажимайте правой кнопкой на каждую колонку и добавляйте их по одной.
Модифицируйте, при необходимости, имена и типы колонок временной таблицы, а также их расположение (Источник, Стейджинг область или целевая область (Source , Staging area or Target)).
На вкладке Flow, выберите соответствующие модули знаний, при этом правильно указав необходимые значения опций модуля знаний. Например, при использовании стандартного интеграционного модуля знаний необходимо установить опцию создания целевой таблицы в Да. Также необходимо включить опцию удаления всех данных из таблицы перед загрузкой и выключить Flow_Control.
Сохраните и запустите интерфейс. Если все прошло без ошибок, то интерфейс должен создать временную таблицу в выбранной схеме. Проверьте данные в этой временной таблице.
Временные интерфейсы (т.е. интерфейсы, создающие временные таблицы) отображаются в дереве объектов проекта желтым цветом, в отличие от стандартных интерфейсов, которые отображаются голубым цветом.
Чтобы использовать эту временную таблицу просто перетащите интерфейс временной таблицы в область источников данных постоянного интерфейса. Вам нет необходимости создавать через реверс инжиниринг модель для этой временной таблицы.
Новая и интересная возможность ODI. К сожалению, пока нет возможности самому проверить особенности такого использования интерфейсов. Я предпочитаю создавать временные таблицы с помощью процедур.
А он создает именно TEMPORARY TABLE или просто таблицу? Интересно для терадаты есть возможность делать GLOBAL TEMP TABLE и VOLATILE.
ОтветитьУдалитьЯ тоже все делаю руками в процедурах. Ибо так проще контролировать что оно насоздает.
Судя по тому, что используется опция модуля знаний, которая создает таблицу, то в данном случае речь идет как раз об обычной именованной таблице в БД, которая используется как временное хранилище неких данных, и которая должна быть удалена после использования.
ОтветитьУдалитьА чем же эта возможность новая? Я ей в 10.1.3.5 давно пользуюсь...
ОтветитьУдалитьИмелось ввиду, что новая для меня возможность. В начале ноября будет пост о том, каким образом приходилось работать со временными таблицами в ОДИ не через интерфейсы.
ОтветитьУдалитьЕсли из опыта уже известно о каких-то особенностях в использовании "желтых" интерфейсов - милости просим поделиться ими.