Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Вт Окт 06, 2009 11:24  Интеграция |
|
Полезность: Нет оценки
|
Добрый день!
Подскажите, пожалуйста, какие есть способы для связи с внешними системами в ЦФТ?
Например,
1. выгрузка через "linked server", посредством вызова удалённыx процедур;
2. выгрузка через файл обмена;
3. выгрузка по какому-нибудь http протоколу и т.п.
Смысл задачи в том, чтобы в автоматизированном режиме передавать информацию из ЦФТ в другую систему(хранилище на MsSql 2005). |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Вт Окт 06, 2009 11:51   |
|
Полезность: Нет оценки
|
Можно через файл (это типа on line то можно job настроить), можно через Интегратор (DB-link - триггер на событие) и т.д. все можно только надо проанализировать как легче и быстрее в зависимости от данных. |
|
 |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Вт Окт 06, 2009 11:55   |
|
Полезность: Нет оценки
|
IBSO пишет: | Можно через файл (это типа on line то можно job настроить), можно через Интегратор (DB-link - триггер на событие) и т.д. все можно только надо проанализировать как легче и быстрее в зависимости от данных. |
Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас? |
|
 |
r00st Эксперт
Вступление в Клуб: 14.09.2007
|
Вт Окт 06, 2009 12:26   |
|
Полезность: Нет оценки
|
По логике, управлять импортом следует из хранилища.
IBSO не должно знать куда и зачем пересылаются данные. Его задача - предоставить выборку, а задача хранилища - ее обработать и разместить.
При таком подходе обработка и размещение данных будут универсальны для всех систем. Дифференцированным останется обращение к источникам. Опять же, можно предусмотреть единый набор настроек для управления процессом.
Это в общем случае. Если же иного импорта в перспективе нет - подойдет и второй вариант.
Суть в чем? Текущая реализация не устраивает скоростью? |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Вт Окт 06, 2009 12:27   |
|
Полезность: Нет оценки
|
maslov пишет: | Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас? |
Удаленное ПО где находится? ПО уже разработанно и его нельзя дорабатывать? ЦФТ будет складывать данные в таблицу, ПО забирать и передавать в MS SQL? |
|
 |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Вт Окт 06, 2009 12:37   |
|
Полезность: Нет оценки
|
r00st пишет: | По логике, управлять импортом следует из хранилища.
IBSO не должно знать куда и зачем пересылаются данные. Его задача - предоставить выборку, а задача хранилища - ее обработать и разместить.
При таком подходе обработка и размещение данных будут универсальны для всех систем. Дифференцированным останется обращение к источникам. Опять же, можно предусмотреть единый набор настроек для управления процессом.
Это в общем случае. Если же иного импорта в перспективе нет - подойдет и второй вариант.
Суть в чем? Текущая реализация не устраивает скоростью? |
Так сейчас всё и происходит, но в нашей текущей АБС. Всё устраивает, но мы переходим на ЦФТ. Возможно ли реализовать такой же механизм в ЦФТ. Нужно писать процедуры на Oracle для обращения к данным минуя ЦФТ или можно средствами ЦФТ подготовить такие процедуры? Если да, то как вызывать из хранилища(оно на MsSQL)? |
|
 |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Вт Окт 06, 2009 12:38   |
|
Полезность: Нет оценки
|
IBSO пишет: | maslov пишет: | Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас? |
Удаленное ПО где находится? ПО уже разработанно и его нельзя дорабатывать? ЦФТ будет складывать данные в таблицу, ПО забирать и передавать в MS SQL? |
У нас. Дорабатывать можно. Как вариант, но возможно есть более красивое решение?! |
|
 |
IBSO Профи
Вступление в Клуб: 20.08.2009
|
Вт Окт 06, 2009 12:42   |
|
Полезность: Нет оценки
|
maslov пишет: | IBSO пишет: | maslov пишет: | Нужен следующий механизм:
1. Удалённое ПО вызывает процедуру, которая возвращает необходимый набор данных?
2. Некий Job перекачивает данные в некую таблицу на сервере хранилища;
и т.п.
В настоящий момент работает первый вариант. По вашему мнению, что лучше использовать сейчас? |
Удаленное ПО где находится? ПО уже разработанно и его нельзя дорабатывать? ЦФТ будет складывать данные в таблицу, ПО забирать и передавать в MS SQL? |
У нас. Дорабатывать можно. Как вариант, но возможно есть более красивое решение?! |
Я думаю что надо без ПО, через Интегратор ЦФТ. Там хоть разработан механизм распределенных очередей AQ. |
|
 |
r00st Эксперт
Вступление в Клуб: 14.09.2007
|
Вт Окт 06, 2009 12:50   |
|
Полезность: Нет оценки
|
Если данные не требуют предварительной обработки, их можно выудить с помощью представлений для отчетов. Это самый быстрый и простой способ.
Если же требуется предварительная обработка - в IBSO реализуется сооветствующий функционал в ввиде библиотечных операций с функциями/процедурами, вызов которых без проблем осуществляется из других систем. Результат обработки - в промежуточную таблицу. Из нее - представление.
Реализовывать свои наработки на pl/sql, непривязанные к IBSO, нет смысла. Есть только риск их потерять. |
|
 |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Вт Окт 06, 2009 14:28   |
|
Полезность: Нет оценки
|
r00st пишет: | Если же требуется предварительная обработка - в IBSO реализуется сооветствующий функционал в ввиде библиотечных операций с функциями/процедурами, вызов которых без проблем осуществляется из других систем. |
А вот тут можно поподробнее про вызов?! Как это делается? |
|
 |
r00st Эксперт
Вступление в Клуб: 14.09.2007
|
Вт Окт 06, 2009 15:33   |
|
Полезность: 1
|
maslov пишет: | Как это делается? |
Операции в IBSO с точки зрения СУБД являются пакетами.
Вызов [AC_FIN]::[LIB].tmp_func (par1, par2) на pl/sql выглядит следующим образом:
Код: | z$ac_fin_lib.tmp_func(par1, par2) |
В свое время у меня возникали сложности с вызовом Oracle-процедуры из MS/SQL (причин уже не помню), потому использовал именно функцию:
Код: | select * from openquery (DB_LINK_NAME, 'select z$ac_fin_lib.tmp_func (123, 456) from dual')
|
Обращение к представлению c выборкой:
Код: | select * from openquery (DB_LINK_NAME, 'select * from ibs.vw_rpt_view_name') |
Разумеется, на указанные объекты должен быть доступ у пользователя, под которым организован DB_LINK |
|
 |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Вт Окт 06, 2009 15:35   |
|
Полезность: Нет оценки
|
r00st пишет: | maslov пишет: | Как это делается? |
Операции в IBSO с точки зрения СУБД являются пакетами.
Вызов [AC_FIN]::[LIB].tmp_func (par1, par2) на pl/sql выглядит следующим образом:
Код: | z$ac_fin_lib.tmp_func(par1, par2) |
В свое время у меня возникали сложности с вызовом Oracle-процедуры из MS/SQL (причин уже не помню), потому использовал именно функцию:
Код: | select * from openquery (DB_LINK_NAME, 'select z$ac_fin_lib.tmp_func (123, 456) from dual')
|
Обращение к представлению c выборкой:
Код: | select * from openquery (DB_LINK_NAME, 'select * from ibs.vw_rpt_view_name') |
Разумеется, на указанные объекты должен быть доступ у пользователя, под которым организован DB_LINK |
Спасибо
А есть какие-либо особенности при настройке DB_LINK_NAME? _________________ Maslov Andrey Aleksandrovich
Senior Architect of Department of the system architecture OJSC «Nordea Bank» |
|
 |
r00st Эксперт
Вступление в Клуб: 14.09.2007
|
Вт Окт 06, 2009 15:55   |
|
Полезность: Нет оценки
|
Цитата: | А есть какие-либо особенности при настройке DB_LINK_NAME? |
Не силен.
Организуйте для начала под IBS. Как импорт заработает - можно и об ограничении доступа подумать. |
|
 |
korobenkov Участник
Вступление в Клуб: 29.09.2009
|
Ср Окт 07, 2009 04:18   |
|
Полезность: Нет оценки
|
maslov пишет: | А есть какие-либо особенности при настройке DB_LINK_NAME? |
Нет никаких особенностей
Устанавливаете Oracle-client на сервере с MSSQL
Настраиваете linked server
По теме могу высказать следующюю точку зрения:
Наименее трудозатратный, имхо, способ достижения поставленной задачи, как в плане реализации, так и в плане последующего сопровождения - это:
1) Реализация одного/нескольких представлений в ЦФТ, возвращающих draft-данные.
2) Импорт этих представлений посредством OpenQuery(). Это самый быстрый/надежный способ получения данных.
3) Дальнейшая обработка полученного в MSSQL
Программирование операций в ЦФТ, подготавливающих данные для экспорта - тоже хороший вариант, но менее надежный, по сравнению с п. 1., поскольку пакетам свойственно иногда вываливаться в невалидонсть при накате обновлений - нужен суровый контроль. Контролировать представления в этом отношении проще.
Файловый обмен, вместо п. 2., тоже имеет право на жизнь, но поверьте - на очень тяжелую жизнь Ибо тогда в процесс обмена вмешиваются скачки напряжения, ширина канала, дисковые квоты, кривые наманикюренные ручонки специалиста, глюки брэндмауэра и операциооной системы... Да много чего еще  |
|
 |
maslov Участник со стажем
Вступление в Клуб: 19.05.2009
|
Ср Окт 07, 2009 10:42   |
|
Полезность: Нет оценки
|
korobenkov пишет: | maslov пишет: | А есть какие-либо особенности при настройке DB_LINK_NAME? |
Нет никаких особенностей
Устанавливаете Oracle-client на сервере с MSSQL
Настраиваете linked server
По теме могу высказать следующюю точку зрения:
Наименее трудозатратный, имхо, способ достижения поставленной задачи, как в плане реализации, так и в плане последующего сопровождения - это:
1) Реализация одного/нескольких представлений в ЦФТ, возвращающих draft-данные.
2) Импорт этих представлений посредством OpenQuery(). Это самый быстрый/надежный способ получения данных.
3) Дальнейшая обработка полученного в MSSQL
Программирование операций в ЦФТ, подготавливающих данные для экспорта - тоже хороший вариант, но менее надежный, по сравнению с п. 1., поскольку пакетам свойственно иногда вываливаться в невалидонсть при накате обновлений - нужен суровый контроль. Контролировать представления в этом отношении проще.
Файловый обмен, вместо п. 2., тоже имеет право на жизнь, но поверьте - на очень тяжелую жизнь Ибо тогда в процесс обмена вмешиваются скачки напряжения, ширина канала, дисковые квоты, кривые наманикюренные ручонки специалиста, глюки брэндмауэра и операциооной системы... Да много чего еще  |
Понятно. Спасибо. А есть ли ещё какие-либо варианты? _________________ Maslov Andrey Aleksandrovich
Senior Architect of Department of the system architecture OJSC «Nordea Bank» |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|