Относительно новое, уже включает версию Oracle Data Integrator 12c. Требует знания ODI, так как при относительно сжатом описании охватывает большинство вариантов увеличения производительности операций, выполняемых данным инструментом.
От производителя.
О работе в Oracle Data Integrator (ODI) и других захватывающих вещах из мира BI.
Показаны сообщения с ярлыком Tips. Показать все сообщения
Показаны сообщения с ярлыком Tips. Показать все сообщения
суббота, 15 августа 2015 г.
пятница, 23 января 2015 г.
ODI - лучшие практики.
Попался на глаза обстоятельный ответ на вопрос о лучших практиках Oracle Data Integrator, который дал Jérôme Françoisse в одной из групп ЛинкедИна.
Возможно, будет кому-то инетересен, поэтому я решил его перевести.
Не воспринимайте лучшие практики как некие трюки, которые неким магическим образом улучшат производительность. Нужно попробовать каждый из подходов, понять их и провести сравнение, чтобы решить, подходят ли они под ваши нужды.
Предупреждение сказано, теперь ссылки:
Возможно, будет кому-то инетересен, поэтому я решил его перевести.
Не воспринимайте лучшие практики как некие трюки, которые неким магическим образом улучшат производительность. Нужно попробовать каждый из подходов, понять их и провести сравнение, чтобы решить, подходят ли они под ваши нужды.
Предупреждение сказано, теперь ссылки:
среда, 14 января 2015 г.
Календарь для хранилища.
Создание календаря для Хранилища Данных. Или Date dimension. Или измерения времени.
В процессе работы понадобилось найти алгоритмы создания таблицы с перечнем дат, в котором бы присутствовала информация о днях недели, начале и конце месяца и другой календарной информации, используемой при загрузке данных в ХД (в основном в датамарты) и при построении отчетности для конечных пользователей.
Результаты поисков, все что нашлось поиском по интернету и сообщениям наших коллег с SQL.ru (спасибо им) представлены ниже.
Наибольшее количество ссылок применимо для MS SQL Server:
Календарь для хранилища данных на основе MS SQL.
DATE AND TIME DIMENSION TEMPLATE.
MS SQL запрос, формирующий список дат (порадовал наличием украинских и белорусских наименований для дней и сезонов).
SSAS - пример измерения времени.
Вьюха для календаря (с рекурсивным запросом).
Элегантный скрипт для БД PostgreSQL
PostgreSQL: Auto generate a sample Dataset.
Пример для Oracle DB.
Пример создания календаря (time dimension table)
Vertica
Пример создания календаря для Vertica с использованием временных таблиц, которые при перемножении дают нужное количество записей. Метод выглядит наиболее универсальным.
CREATING A CALENDAR TABLE.
Второй пример для Вертики, использующий неизвестный мне ранее механизм TIMESERIES
Vertica - Creating a calendar table
И напоследок Teradata. Эта СУБД имеет стандартный календарь в виде представления SYS_CALENDAR.CALENDAR, хранящее даты с 1 января 1900 по 31 декабря 2100 года. По одной записи на каждый день.
System Calendar - SYS_CALENDAR.CALENDAR
Вот такой вот первый в этом году пост. С Новым Годом!
В процессе работы понадобилось найти алгоритмы создания таблицы с перечнем дат, в котором бы присутствовала информация о днях недели, начале и конце месяца и другой календарной информации, используемой при загрузке данных в ХД (в основном в датамарты) и при построении отчетности для конечных пользователей.
Результаты поисков, все что нашлось поиском по интернету и сообщениям наших коллег с SQL.ru (спасибо им) представлены ниже.
Наибольшее количество ссылок применимо для MS SQL Server:
Календарь для хранилища данных на основе MS SQL.
DATE AND TIME DIMENSION TEMPLATE.
MS SQL запрос, формирующий список дат (порадовал наличием украинских и белорусских наименований для дней и сезонов).
SSAS - пример измерения времени.
Вьюха для календаря (с рекурсивным запросом).
Элегантный скрипт для БД PostgreSQL
PostgreSQL: Auto generate a sample Dataset.
Пример для Oracle DB.
Пример создания календаря (time dimension table)
Vertica
Пример создания календаря для Vertica с использованием временных таблиц, которые при перемножении дают нужное количество записей. Метод выглядит наиболее универсальным.
CREATING A CALENDAR TABLE.
Второй пример для Вертики, использующий неизвестный мне ранее механизм TIMESERIES
Vertica - Creating a calendar table
И напоследок Teradata. Эта СУБД имеет стандартный календарь в виде представления SYS_CALENDAR.CALENDAR, хранящее даты с 1 января 1900 по 31 декабря 2100 года. По одной записи на каждый день.
System Calendar - SYS_CALENDAR.CALENDAR
Вот такой вот первый в этом году пост. С Новым Годом!
четверг, 18 декабря 2014 г.
Ускоряем экстракт при помощи ORDERBY.
Всем привет.
На хабре небольшая заметка о случаях, при которых передача данных по сети по протоколу SQL*Net значительно ускоряется если запрос, формирующий эти данные, готовит его упорядоченным по каким-то полям. То есть, применяя инструкцию ORDER BY мы вполне можем ускорить получение данных из системы источника, если мы эти данные забираем через сеть.
Для добавления упорядочивания вам конечно нужно будет модифицировать модуль знаний. Я бы список полей перечислял простым текстом в отдельном параметре LKM, и добавлял ORDER BY конструкцию в зависимости от того, не пуст ли этот параметр.
Другие полезные мысли по оптимизации и ускорению Oracle Data Integrator.
На хабре небольшая заметка о случаях, при которых передача данных по сети по протоколу SQL*Net значительно ускоряется если запрос, формирующий эти данные, готовит его упорядоченным по каким-то полям. То есть, применяя инструкцию ORDER BY мы вполне можем ускорить получение данных из системы источника, если мы эти данные забираем через сеть.
Для добавления упорядочивания вам конечно нужно будет модифицировать модуль знаний. Я бы список полей перечислял простым текстом в отдельном параметре LKM, и добавлял ORDER BY конструкцию в зависимости от того, не пуст ли этот параметр.
Другие полезные мысли по оптимизации и ускорению Oracle Data Integrator.
понедельник, 6 октября 2014 г.
Бесплатные курсы самообучения ODI 12c.
1 августа 2014 года Oracle выпустил бесплатный обучающий материал по свежей версии ODI 12c и его совместной работе с Oracle Golden Gate.
Описание:
В этом обучающем курсе вы создадите тестовую базу данных с пользователями и таблицами, сконфигурируете менеджера и агентов Oracle Golden Gate (OGG), настроите сервера данных, модели, таблицы, маппинги, агентов и пакеты Oracle Data Integrator и сможете запускать, останавливать и управлять процессом интеграции данных. Эта интеграция включает в себя как OGG реплицирование (захват и доставка изменений), так и ODI реплицирование (управление изменениями в данных через журнализацию). Oracle Golden Gate будет работать практически в режиме реального времени, Oracle Data Integrator будет запускаться по изменению отдельных строк, примерно раз в секунду.
Для прохождения обучения необходимо скачать образ виртуальной машины (примерно 9Gb), иметь установленный Virtual Box и достаточное количество оперативной памяти, или развернуть необходимые приложения и источники данных самостоятельно. Подробнее в разделе Overview указанного курса.
Oracle Learning Library::Oracle Data Integrator and Oracle GoldenGate Integration
И курс номер два.
Укрощение больших данных с помощью ODI.
Данный курс базируется на выпущенной 25 сентября 2014 года виртуальной машине "Big Data Lite 4.0".
Описание:
Данный демонстрационный курс покажет как вы можете передавать и преобразовывать данные используя Oracle Data Integration - вне зависимости от места расположения данных, будь-то Oracle БД, Hadoop, БД других вендоров, приложения, файлы или комбинация всего перечисленного. Парадигма "создал однажды - запускаешь везде" позволяет фокусироваться на логике преобразования и передачи данных.
Данный курс подчеркивает возможности интеграции Oracle Data Integrator и Oracle GoldenGate с Hadoop, Oracle Big Data SQL, Hive, Sqoop, Flume, Pig, HDFS.
Oracle Learning Library::Tame Big Data using Oracle Data Integration
Описание:
В этом обучающем курсе вы создадите тестовую базу данных с пользователями и таблицами, сконфигурируете менеджера и агентов Oracle Golden Gate (OGG), настроите сервера данных, модели, таблицы, маппинги, агентов и пакеты Oracle Data Integrator и сможете запускать, останавливать и управлять процессом интеграции данных. Эта интеграция включает в себя как OGG реплицирование (захват и доставка изменений), так и ODI реплицирование (управление изменениями в данных через журнализацию). Oracle Golden Gate будет работать практически в режиме реального времени, Oracle Data Integrator будет запускаться по изменению отдельных строк, примерно раз в секунду.
Для прохождения обучения необходимо скачать образ виртуальной машины (примерно 9Gb), иметь установленный Virtual Box и достаточное количество оперативной памяти, или развернуть необходимые приложения и источники данных самостоятельно. Подробнее в разделе Overview указанного курса.
Oracle Learning Library::Oracle Data Integrator and Oracle GoldenGate Integration
И курс номер два.
Укрощение больших данных с помощью ODI.
Данный курс базируется на выпущенной 25 сентября 2014 года виртуальной машине "Big Data Lite 4.0".
Описание:
Данный демонстрационный курс покажет как вы можете передавать и преобразовывать данные используя Oracle Data Integration - вне зависимости от места расположения данных, будь-то Oracle БД, Hadoop, БД других вендоров, приложения, файлы или комбинация всего перечисленного. Парадигма "создал однажды - запускаешь везде" позволяет фокусироваться на логике преобразования и передачи данных.
Данный курс подчеркивает возможности интеграции Oracle Data Integrator и Oracle GoldenGate с Hadoop, Oracle Big Data SQL, Hive, Sqoop, Flume, Pig, HDFS.
Oracle Learning Library::Tame Big Data using Oracle Data Integration
понедельник, 29 сентября 2014 г.
Демистификация тэгов подстановки.
Сегодня в блоге перевод свежей статьи Rodrigo Radtke de Souza под названием ODI Substitution Tags demystified
Использовались рисунки оригинального поста.
Всем привет.
Бьюсь об заклад, что все ODI разработчики путаются, когда работают с тэгами методов подстановки. Каждый раз, когда мне нужно с ними поработать, я должен повторить все мои проверки еще раз, так как я забываю, для чего какой тэг используется (несмотря на мой многолетний опыт работы с ODI). Это стало одной из причин, по которым я решил написать этот пост - я, в будущем, смог бы освежить свою память, прочитав его (где ты, память???). Так же потому что это хорошо - делиться своим опытом с другими, что пошло бы на пользу (я надеюсь на это) если у кого-то возникнут те же проблемы.
Что же такое тэги подстановки, для тех, кто с ними не слишком знаком? Тэги подстановки это те символы, которые вы видите если откроете модуль знаний или процедуру в ODI, точнее вот эти символы - <%>, <@>, <?>, <$>. Вот как на этом рисунке.
Использовались рисунки оригинального поста.
Всем привет.
Бьюсь об заклад, что все ODI разработчики путаются, когда работают с тэгами методов подстановки. Каждый раз, когда мне нужно с ними поработать, я должен повторить все мои проверки еще раз, так как я забываю, для чего какой тэг используется (несмотря на мой многолетний опыт работы с ODI). Это стало одной из причин, по которым я решил написать этот пост - я, в будущем, смог бы освежить свою память, прочитав его (где ты, память???). Так же потому что это хорошо - делиться своим опытом с другими, что пошло бы на пользу (я надеюсь на это) если у кого-то возникнут те же проблемы.
Что же такое тэги подстановки, для тех, кто с ними не слишком знаком? Тэги подстановки это те символы, которые вы видите если откроете модуль знаний или процедуру в ODI, точнее вот эти символы - <%>, <@>, <?>, <$>. Вот как на этом рисунке.
вторник, 11 февраля 2014 г.
Узнать версию ODI и других приложений ПО Fusion Middleware.
Перевод заметки Richard Williams с сайта A-Team под названием Identifying Underlying Middleware BI Software Versions within Fusion Applications. Использованы скриншоты оригинальной заметки.
Иногда администратору может понадобиться узнать версию ПО для какого-либо компонента из набора Fusion Middleware. Например, перед загрузкой и инсталляцией ODI Studio неплохо было бы узнать какая версия ODI используется с текущим набором приложений Fusion.
Узнавать описываемым образом можно не только версии BI компонент, но и большинства других приложений Fusion.
Иногда администратору может понадобиться узнать версию ПО для какого-либо компонента из набора Fusion Middleware. Например, перед загрузкой и инсталляцией ODI Studio неплохо было бы узнать какая версия ODI используется с текущим набором приложений Fusion.
Узнавать описываемым образом можно не только версии BI компонент, но и большинства других приложений Fusion.
понедельник, 27 января 2014 г.
Технология Excel для ODI.
Перевод статьи Excel technology in Oracle Data Integrator. В переводе использованы скриншоты из оригинальной заметки.
Работа с данными Excel в ODI нелегка, плюс именованные диапазоны данных (named ranges) должны быть созданы в файле Excel. Это происходит по причине того, что существующая технология ODI работает на основе преобразования именованных диапазонов в таблицы.
Мы можем изменить стандартную конфигурацию чтобы работать с данными Excel так же легко, как это происходит с данными других технологий.
Конфигурационные изменения, которые я имею ввиду, были опробованы в ODI 10.3 и java 1.4. Сделать необходимо следующее.
Конфигурация ODI.
Работа с данными Excel в ODI нелегка, плюс именованные диапазоны данных (named ranges) должны быть созданы в файле Excel. Это происходит по причине того, что существующая технология ODI работает на основе преобразования именованных диапазонов в таблицы.
Мы можем изменить стандартную конфигурацию чтобы работать с данными Excel так же легко, как это происходит с данными других технологий.
Конфигурационные изменения, которые я имею ввиду, были опробованы в ODI 10.3 и java 1.4. Сделать необходимо следующее.
Конфигурация ODI.
суббота, 16 ноября 2013 г.
Какой-ты, комит?
Честно говоря, думал, получится средних размеров заметка.
С кучей скриншотов и разными экспериментами по использованию опции Автокоммит в процедурах ODI. А на самом деле вышло вот что.
В, например, стандартном модуле знаний "IKM SQL Control Append" есть такая последовательность шагов
С кучей скриншотов и разными экспериментами по использованию опции Автокоммит в процедурах ODI. А на самом деле вышло вот что.
В, например, стандартном модуле знаний "IKM SQL Control Append" есть такая последовательность шагов
пятница, 4 октября 2013 г.
Радует.
Oracle Data Integrator потихоньку завоевывает место в компаниях пост-советского пространства, что находит отражение и на таком ресурсе как SQL.ru. Помимо (по большей части) лулзонаполненных комментариев в ветках от казахстанского пользователя Elibay начали появляться действительно полезные ветки форума, на которые я бы хотел обратить ваше внимание:
Решение проблемы неправильного использования типа varchar2 в модулях знаний.
Импортирование-экспортирование мастер и рабочих репозиториев.
Решение проблемы неправильного использования типа varchar2 в модулях знаний.
Импортирование-экспортирование мастер и рабочих репозиториев.
понедельник, 9 сентября 2013 г.
Маленькие хитрOсDI.
Сегодня хочу рассказать (или напомнить) о некоторых приемах, помогающих в работе с Oracle Data Integrator.
Большая часть этих приемов касается пользовательского интерфейса, но есть и связанные с архитектурой, а потому отличающиеся от версии к версии, особенности.
Где - Вкладка Топология, раздел Репозитории.
Большая часть этих приемов касается пользовательского интерфейса, но есть и связанные с архитектурой, а потому отличающиеся от версии к версии, особенности.
Перенумерация репозиториев
В 11g появилась возможность перенумерации репозиториев. Эта возможность позволит иметь для каждого вашего репозитория свой уникальный идентификатор, что является необходимым условием для успешного импорта-экспорта объектов между разными репозиториями. Все внутренние идентификаторы объектов, созданных в репозитории, будут автоматически изменены.Где - Вкладка Топология, раздел Репозитории.
понедельник, 8 июля 2013 г.
Выбрать все джоины и фильтры для интерфейса 11g.
Приветствую.
Когда-то давно я написал скрипт, который должен был помочь найти в репозитории Oracle Data Intergator-а все тексты для соединений таблиц источников в интерфейсе. Этот скрипт мне пригодился не раз, но всегда речь шла о работе со структурой репозитория 10й версии. В ODI 11g структура несколько изменилась, в частности, добавилась возмножность работы с множествами, поэтому мой старый скрипт никаких результатов не возвращал.
Скажу даже больше, новая структура репозитория совсем не содержит информации в двух самых примечательных (ранее) таблицах: SNP_TXT и SNP_EXP_TXT. Они теперь пусты, по крайней мере, на моем текущем проекте в них нет ни одной записи.
Когда-то давно я написал скрипт, который должен был помочь найти в репозитории Oracle Data Intergator-а все тексты для соединений таблиц источников в интерфейсе. Этот скрипт мне пригодился не раз, но всегда речь шла о работе со структурой репозитория 10й версии. В ODI 11g структура несколько изменилась, в частности, добавилась возмножность работы с множествами, поэтому мой старый скрипт никаких результатов не возвращал.
Скажу даже больше, новая структура репозитория совсем не содержит информации в двух самых примечательных (ранее) таблицах: SNP_TXT и SNP_EXP_TXT. Они теперь пусты, по крайней мере, на моем текущем проекте в них нет ни одной записи.
суббота, 1 июня 2013 г.
Готовим описание MS SQL серверов.
Публикую перевод заметки Jes Schultz Borland о важности документирования при использовании MS SQL Server под названием Documentation: It Doesn’t Suck!.
Некоторая часть нашей работы не слишком очаровательна, но необходима. Например, мне приходится чистить парик Боба Дилана каждую неделю, чтобы быть уверенным в его красоте и блеске. Документирование - это как раз та задача, которую многие не хотят начинать, которую тяжело поддерживать актуальной и, в общем, работы над которой стараются избегать.
Прекратите отлынивать и получите от этого пользу.
Некоторая часть нашей работы не слишком очаровательна, но необходима. Например, мне приходится чистить парик Боба Дилана каждую неделю, чтобы быть уверенным в его красоте и блеске. Документирование - это как раз та задача, которую многие не хотят начинать, которую тяжело поддерживать актуальной и, в общем, работы над которой стараются избегать.
Прекратите отлынивать и получите от этого пользу.
вторник, 19 марта 2013 г.
10 принципов производительного ETL от Ральфа Кимбала.
Приветствую.
Перевод статьи "Increasing ETL Throughput" от Ezequiel Gallardo.
Ключевые концепции, которые
От ETL команды ожидают создания максимально производительного набора ETL процессов. Мы рекомендуем эти 10 правил, которые применимы как для самописных решений так и при использовании некоторых ETL инструментов, для поднятия производительности на максимальный уровень.
Ральф Кимбал.
Я настаиваю на том, что ввод-вывод должен быть сведен к абсолютному минимуму. Безусловно, вам может понадобиться сохранить данные источников по многим причинам. Одна из допустимых причин этого может заключаться в том, что вам необходимо минимизировать доступ к источнику, или ваш источник позволяет сделать только одно чтение данных.
Перевод статьи "Increasing ETL Throughput" от Ezequiel Gallardo.
Ключевые концепции, которые
должен знать разработчик перед тем,
как создавать "ETL процесс"
От ETL команды ожидают создания максимально производительного набора ETL процессов. Мы рекомендуем эти 10 правил, которые применимы как для самописных решений так и при использовании некоторых ETL инструментов, для поднятия производительности на максимальный уровень.
Ральф Кимбал.
10. Уменьшайте операции ввода - вывода.
Минимизируйте использование стейджевых таблиц. Держите данные в памяти, обрабатывая их на конвеере ETL преобразований, начиная с момента загрузки данных из источников до момента записи в целевые таблицы.Я настаиваю на том, что ввод-вывод должен быть сведен к абсолютному минимуму. Безусловно, вам может понадобиться сохранить данные источников по многим причинам. Одна из допустимых причин этого может заключаться в том, что вам необходимо минимизировать доступ к источнику, или ваш источник позволяет сделать только одно чтение данных.
суббота, 29 декабря 2012 г.
Архивация ODI логов.
Перевод заметки Gürcan Orhan, не сотрудника Оракл, имеющего звание Oracle ACE Director. В оригинальной заметке есть иллюстрации, я же постарался вытащить скрипты без программы распознавания образов, так что возможны мелкие ошибки в текстах.
Были ли у вас проблемы с большим количеством логов в Операторе ODI? Что бы вы сказали о методе сохранения этих логов так долго и в таком количестве, который вам нужен?
Были ли у вас проблемы с большим количеством логов в Операторе ODI? Что бы вы сказали о методе сохранения этих логов так долго и в таком количестве, который вам нужен?
среда, 12 декабря 2012 г.
Обновление таблицы в модели (когда реверс работает не так).
Приветствую.
Особенности реверса таблиц (и других объектов БД) в Oracle Data Integrator не всегда понятны, и требуют отдельного рассмотрения, в этой же заметке я хочу описать подход, при котором вы сможете достаточно быстро решить проблему несовпадения структур таблиц из модели и из физической БД.
Особенности реверса таблиц (и других объектов БД) в Oracle Data Integrator не всегда понятны, и требуют отдельного рассмотрения, в этой же заметке я хочу описать подход, при котором вы сможете достаточно быстро решить проблему несовпадения структур таблиц из модели и из физической БД.
пятница, 30 ноября 2012 г.
Использование MS Excel для ETL.
Думаю, все знают программу для работы с электронными таблицами, название которой стоит в заголовке этой записи. А такая программа, даже по названию, очень близка к специфике работы ETL разработчиков, так как тоже работает с таблицами, как и мы.
Итак, как же можно использовать Microsoft Excel для ETL? Я предпочитаю версию 2003, но и с более поздними тоже можно работать.
Итак, как же можно использовать Microsoft Excel для ETL? Я предпочитаю версию 2003, но и с более поздними тоже можно работать.
суббота, 21 июля 2012 г.
5+1.
Как обещал, возвращаюсь к вопросу по новой функциональности ODI версии 11.1.1.6 под названием - отслеживание значений переменных во время выполнения сессии.
Для демонстрации того, как это работает, у меня как раз есть специально не для этого приготовленный пакет. Вот как выглядит его диаграмма:
Для демонстрации того, как это работает, у меня как раз есть специально не для этого приготовленный пакет. Вот как выглядит его диаграмма:
четверг, 14 июня 2012 г.
Начиная ETL проект.
Самым популярным, по количеству скачиваний, документом со страницы документации по ODI оказался файл с названием Getting Started an ETL project. Думаю, люди ее скачивали, потому что путали с давно анонсированной, но только недавно вышедшей книгой по ODI.
А на работе появилась возможность начать такой небольшой пилотный проектик с использованием ODI. Происходило дело полгода тому назад, заняло примерно месяц, и задействована была вся команда.
Вот перед началом этого пилота я и подумал - посмотрю, что в Getting-ах то пишут, наверное, что-то полезное там будет, что-то, что я бы мог применить на проекте.
А на работе появилась возможность начать такой небольшой пилотный проектик с использованием ODI. Происходило дело полгода тому назад, заняло примерно месяц, и задействована была вся команда.
Вот перед началом этого пилота я и подумал - посмотрю, что в Getting-ах то пишут, наверное, что-то полезное там будет, что-то, что я бы мог применить на проекте.
воскресенье, 10 июня 2012 г.
Философия оптимизации - Хинты.
Перевод.
Оригинал находится по ссылке.
Одна из частей моей работы здесь в Rittman Mead состоит в чтобы следить за производительностью ХД, как с точки зрения запросов, сформированных пользователями, так и с точки зрения ETL процессов, загружающих данные в хранилище данных. Иногда я изучаю ситуацию в уже существующей системе, иногда же моя работа является частью процесса разработки нового комплекса.
Недавно, меня попросили посмотреть на таблицу, использующую очень сложную логику агрегации и расчетов, при этом расчеты проводились в ситуации почти реального времени. Передо мной поставили три жестких условия: генерировать как можно более малый объем redo лога, обновление таблицы должно быть максимально быстрым и данные в целевой таблице должны быть доступны все время – нет такого периода времени, даже во время обновления, в течение которого к данным нельзя обратиться через запрос. Я решил, что в этом случае подход с обменом секциями (партициями), с использованием операции truncate и вставки добавлением в обменную таблицу сработает лучше всего.
Подписаться на:
Сообщения (Atom)
