О работе в Oracle Data Integrator (ODI) и других захватывающих вещах из мира BI.
понедельник, 17 ноября 2014 г.
Опубликованы структуры репозитория ODI версий 11 и 12.
Использовать данную информацию рекомендуется строго для чтения. Другие варианты использования также, я думаю, есть, как описанные в этом блоге, так и в виде книги - http://odi-usage.blogspot.com/2013/12/bi-quotient-sonra.html
вторник, 14 января 2014 г.
ODI 12c, Часть 2.
WebLogic Management Framework
Другое большое новшество в этом релизе это то, что инфраструктура управления WebLogic сервера используется для контроля агентов ODI вместо ранее использовавшегося OPMN сервера. Теперь агенты управляются тем же образом, что и остальные компоненты промежуточного ПО Fusion Middleware и для настройки используется специальный мастер - Fusion Middleware Configuration Wizzard.
суббота, 14 декабря 2013 г.
BI-Quotient становится Sonra и выпускает книгу.
Обучающие материалы идут волна за волной. Вот и ирландские блоггеры Ули Бетке и Мачик Кокон выпустили свою книгу по глубинам репозитория ODI. Книгу они эту раздают даром, или предлагают купить ее киндл версию через Амазон.
Чтобы получить PDF версию книги необходимо связаться с ее авторами, предварительно разместив ссылку на книгу в одноклассниках (sic!), ВКонтактах, фейсбуках или собственных блогах.
Я думаю, что в наше время, когда времени заниматься изучением инструмента, которым пользуешься, совсем нет - данная книга будет особенно полезной.
пятница, 4 октября 2013 г.
Радует.
Решение проблемы неправильного использования типа varchar2 в модулях знаний.
Импортирование-экспортирование мастер и рабочих репозиториев.
понедельник, 9 сентября 2013 г.
Маленькие хитрOсDI.
Большая часть этих приемов касается пользовательского интерфейса, но есть и связанные с архитектурой, а потому отличающиеся от версии к версии, особенности.
Перенумерация репозиториев
В 11g появилась возможность перенумерации репозиториев. Эта возможность позволит иметь для каждого вашего репозитория свой уникальный идентификатор, что является необходимым условием для успешного импорта-экспорта объектов между разными репозиториями. Все внутренние идентификаторы объектов, созданных в репозитории, будут автоматически изменены.Где - Вкладка Топология, раздел Репозитории.
понедельник, 8 июля 2013 г.
Выбрать все джоины и фильтры для интерфейса 11g.
Когда-то давно я написал скрипт, который должен был помочь найти в репозитории Oracle Data Intergator-а все тексты для соединений таблиц источников в интерфейсе. Этот скрипт мне пригодился не раз, но всегда речь шла о работе со структурой репозитория 10й версии. В ODI 11g структура несколько изменилась, в частности, добавилась возмножность работы с множествами, поэтому мой старый скрипт никаких результатов не возвращал.
Скажу даже больше, новая структура репозитория совсем не содержит информации в двух самых примечательных (ранее) таблицах: SNP_TXT и SNP_EXP_TXT. Они теперь пусты, по крайней мере, на моем текущем проекте в них нет ни одной записи.
суббота, 29 декабря 2012 г.
Архивация ODI логов.
Были ли у вас проблемы с большим количеством логов в Операторе ODI? Что бы вы сказали о методе сохранения этих логов так долго и в таком количестве, который вам нужен?
среда, 12 декабря 2012 г.
Обновление таблицы в модели (когда реверс работает не так).
Особенности реверса таблиц (и других объектов БД) в Oracle Data Integrator не всегда понятны, и требуют отдельного рассмотрения, в этой же заметке я хочу описать подход, при котором вы сможете достаточно быстро решить проблему несовпадения структур таблиц из модели и из физической БД.
воскресенье, 3 июня 2012 г.
Доступ к собственному репозиторию из сценария.
В моем первом полезном посте я постарался рассказать, каким образом можно выборочно удалять логи выполнения сценариев из репозитория, путем прямого доступа в рабочий репозиторий.
Кстати, для тех, кто пока не считает себя великим ODI гуру - крайне полезно будет пройти по всем записям этого блога за 2010 год, начиная прямо с июля месяца. Я уверен, вы найдете там массу интересного.
Пример был работающий, но его применимость была несколько ограниченной. Объясню почему. У нас на проекте настройка контекстов, например, DEV и TEST была, в основном, связана с взаимоувязкой физической схемы дев источника данных с физической схемой приемника данных опять же на дев сервере. Тоже самое касалось контекста TEST, где связывались между собой две физических схемы на том же сервере: тест-источник <-> тест приемник.
суббота, 28 апреля 2012 г.
Что такое модули знаний реверса (RKM) и зачем они нужны?
Другими словами, то, что JDBC драйвер получить не может, модуль знаний реверса получить сможет. Должен смочь.
Рассмотрим, как же работает модуль знаний реверса. Для этого я создам копию одной из существующих моделей, и включу у нее режим использования модуля знаний реверса и последовательно, в картинках, расскажу, что происходит.
среда, 18 апреля 2012 г.
История о двух мастер репозиториях использующих один рабочий репозиторий и несколько слов об Ordered и Not-ordered соединениях в ODI, иллюстрированных скриншотами и несколькими кусками сложного для разбора SQL кода, приведенного для демонстрации и более глубокого понимания читателями описываемой проблемы и ее успешного завершения.
Итак, представьте себе, что на одном из проектов получилось так, что часть ETL разрабатывалась другой командой, и, по несчастливой случайности, оказалось, что настройки технологии Oracle у этих двух команд отличались.
понедельник, 26 декабря 2011 г.
Топология ODI (Topology).
Используя Менеджер Топологии вы можете описывать используемые вами информационные системы. Технологии и их типы данных, дата серверы (серверы данных) связанные с этими технологиями и схемы, входящие в эти серверы; контексты, языки и агентов. Дополнительно, Менеджер Топологии позволяет вам управлять репозиториями.
пятница, 1 июля 2011 г.
Структура таблиц рабочего репозитория ODI.
Не все статьи в блоге одинаково полезны. Но даже из не очень популярной, зато длинной и расцвеченной, статьи о перенумерации строк в SNP_EXP_TXT, можно добыть полезную информацию.
Если внимательно посмотреть на комментарии к коду в указанной заметке, можно получить некоторое представление о том, что именно хранится в некоторых таблицах репозитория разработки ODI.
понедельник, 30 мая 2011 г.
Переполнение главной таблицы SNP_EXP_TXT.
Как известно, таблица SNP_EXP_TXT содержит текстовые части команд ODI.
В старых версиях, с 10.1.3.2.0 по 10.1.3.5.1 для ключевой колонки I_TXT из этой таблицы выделялось недостаточно места, таким образом, с течением времени могла возникнуть ситуация, когда свободные номера в колонке заканчивались, и она начинала выделять значения с 0, что приводило к ошибке ORA-00001: unique constraint (SDS1.PK_EXP_TXT) violated.
четверг, 10 февраля 2011 г.
Как подключиться к репозиторию ODI без пароля (without password).
Как известно, громкий заголовок - половина посещаемости. Но я не буду долго держать интригу, скажу лишь, что речь идет о подключении к мастер репозиторию, и иметь пароль этого подключения необходимо, даже если вы его не знаете или забыли.
Описываемый ниже подход решает не слишком распространённую задачу. Встретиться такая ситуация может, когда у вас уже есть подключение к рабочему репозиторию разработки, а вы хотите подключиться к репозиторию выполнения, и мастер репозиторий в инфраструктуре один.
понедельник, 31 января 2011 г.
ODI 11g. Настройка репозиториев (Setting up Repositories).
Стандартная схема использования репозиториев Oracle Data Integrator
Обычно, в проектах по построению ХД, вам может понадобиться создать следующие репозитории:
суббота, 25 декабря 2010 г.
Чего нам не хватает в ODI. Опрос (polling).
Многие из читающих этот блог работают с Oracle Data Integrator. Некоторые даже с его новой версией, которая 11g.
Но есть люди, готовые попробовать улучшить что-то в этом инструменте загрузки и преобразования данных.
Для того, чтобы донести до разработчиков наши пожелания, попробуйте в комментариях сформулировать то, что вам не нравится в ODI, или то, что хотелось бы улучшить или добавить.
Текущий список пожеланий и ошибок в Oracle Data Integrator находится на странице по ссылке.
пятница, 8 октября 2010 г.
Удаление потерянных данных в SNP_EXP_TXT.
Сегодня я хочу опубликовать перевод статьи, посвященной удалению данных из одной из таблиц репозитория ODI. Почему возникла такая мысль и какие именно данные будут удаляться читайте ниже.
Привет народ. Есть небольшой "баг" в ODI, который заключается в том, что не очищается таблица SNP_EXP_TXT, когда удаляется "родительская" запись.
Так происходит потому, что в модели репозитория нет внешнего ключа между SNP_EXP_TXT и ее несколькими родительскими таблицами, именно потому, что таких таблиц несколько.
понедельник, 27 сентября 2010 г.
Поиск одинаковых JOIN-ов в ODI.
В этом случае, чтобы внести исправления во все интерфейсы, которые используют эту таблицу измерений достаточно пойти в модель, найти нужную нам таблицу, и посмотреть, в каких интерфейсах она используется как источник:
четверг, 23 сентября 2010 г.
Узнаем свойства переменной через таблицу SNP_VAR.
SELECT DISTINCT
CASE
WHEN SNP_VAR.I_PROJECT IS NULL
THEN 'GLOBAL'
ELSE SNP_PROJECT.PROJECT_NAME
END AS PROJECT_NAME,
SNP_VAR.VAR_NAME AS VARIABLE_NAME,
CASE
WHEN SNP_VAR.VAR_DATATYPE='A' THEN 'ALPHANUMERIC'
WHEN SNP_VAR.VAR_DATATYPE='N' THEN 'NUMERIC'
WHEN SNP_VAR.VAR_DATATYPE='D' THEN 'DATE'
ELSE 'TEXT' END AS DATATYPE,
CASE
WHEN SNP_VAR.IND_STORE = 'S' THEN 'Non persistent'
WHEN SNP_VAR.IND_STORE = 'H' THEN 'Historize'
WHEN SNP_VAR.IND_STORE = 'L' THEN 'Last value'
ELSE '?' END AS ACTION,
CASE WHEN SNP_VAR.VAR_DATATYPE='T' THEN V_TXT.TXT
ELSE SNP_VAR.DEF_v END AS DEFAULT_VALUE,
SNP_VAR.lschema_name AS VARIABLE_QUERY_SCHEMA,
SNP_TXT.TXT AS VARIABLE_QUERY,
S_TXT.TXT AS DESCRIPTION
FROM SNP_VAR
LEFT OUTER JOIN SNP_PROJECT ON SNP_VAR.I_PROJECT=SNP_PROJECT.I_PROJECT
LEFT OUTER JOIN SNP_TXT ON SNP_TXT.I_TXT=SNP_VAR.I_TXT_VAR_IN
LEFT OUTER JOIN SNP_TXT S_TXT ON S_TXT.I_TXT=SNP_VAR.I_TXT_VAR
LEFT OUTER JOIN SNP_TXT V_TXT ON V_TXT.I_TXT=SNP_VAR.i_txt_var_val_txt
ORDER BY project_name
Ну и еще один запрос, показывающий значения исторических переменных. Хотя, до конца, я в нем пока не уверен.
SELECT
d.Var_Name AS "NAME",
d.FIRST_DATE AS "DATE",
CONTEXT_CODE AS "CONTEXT",
CASE
WHEN v.VAR_DATATYPE='A' THEN d.VAR_V
WHEN v.VAR_DATATYPE='N' THEN to_char(d.VAR_N)
WHEN v.VAR_DATATYPE='D' THEN to_char(d.VAR_D)
ELSE 'RUN: select TXT from snp_exp_txt where I_TXT = ' || to_char(d.i_txt_var_t) END AS "VALUE"
FROM snp_var v LEFT OUTER JOIN snp_project p ON v.I_PROJECT=p.I_PROJECT,
SNP_VAR_DATA d
WHERE d.var_name = UPPER(nvl(p.PROJECT_NAME, 'GLOBAL')) || '.' || v.Var_Name
См. также: структура таблиц рабочего репозитория ODI.