|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Есть большой проект, который работает на оракле+делфи Стоит задача перевода его на совершенно новый стек технологий (postgres + asp.net core web api + react) Но при этом нет возможности полностью прекратить разработку старого проекта, заняться ХХ месяцев переписыванием этого добра а потом выпустить переписанный Поэтому принято решение перевод делать постепенно, перевести один модуль на новые рельсы, но при этом все остальное оставить по старому. Однако структура модулей проекта сильносвязная, т.е нельзя просто избавится от набора таблиц в оракле и вести их в постгри, таблицы из покинувшего старую гавань модуля нужны в других модулях и наоборот. Поэтому данные надо как то поддерживать связанными между базами Какие я вижу варианты: схему таблиц oracle использовать непосредственно в postgre через foreign_tables с помощью oracle_fdw. При этом есть такие плюсы и минусы: + Данные правятся и выбираются сразу в оракловой базе, все типа как работает без излишних усилий - Будет гемор с производительностью, на foreign_table не повесишь индекс, джойн больше двух таблиц согласно доке не будет пихаться как есть в оракл а будет разбиваться на несколько незасимых запросов, что потенциально будет приводить к катастрофическим проседаниям производительности. - Структуру данных нельзя будет поменять так удобно в новом проекте Пробовать сторонние утилиты для мерж репликации баз, типа SymmetricDS + Теоретически если настроить все правильно, данные можно брать только те которые нужно, в нужной структуре - Настроить это дело еще тот ад, следить постоянно чтоб не упало и все такое Не делать онлайн синхронизацию данных, воспользоваться со стороны постгри мат вьюхами на foreign_tables с рефрешем on demand (выглядит относительно несложно) в оракле писать скрипты по вытягиванию данных с постри через гетерогенный сервис + Выглядит не так жопошно в настройке как настраивание автоматической репликации - Конфликты в данных, необходимость доработки старого проекта, обновление данных не на лету Поделитесь опытом, может кто-то занимался подобным, как лучше поступить ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 01:32 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
как вариант сначала избавиться от сильной связности, а потом уже мигрировать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 02:41 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
"Быдло__кодер" а для самого начал сменить ник name . начать уважать хотя бы себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 04:59 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер Есть большой проект, который работает на оракле+делфи Стоит задача перевода его на совершенно новый стек технологий (postgres + asp.net core web api + react) Но при этом нет возможности полностью прекратить разработку старого проекта, заняться ХХ месяцев переписыванием этого добра а потом выпустить переписанный Не заниматься фигней, а спокойно пилить на старом стеке. Последний пункт губит всю идею миграции на корню. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 07:41 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер, Сначала выкидываешь дельфи, потом оракл. Т.е. делаешь вебчик под дельфийную схему данных, потом пытаешься мигрировать на постгрю. Только 20 месяцев тебе на это не хватит, я бы поставил на то, что лет через 5 закончишь. В свете этого, можешь выкидывать asp.net и реакт и начинать на чём-нибудь более модным. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 10:03 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Не заниматься фигней, а спокойно пилить на старом стеке. Последний пункт губит всю идею миграции на корню. Ну, я тоже считаю что вся эта идея тлен. Перевод займет овердофига времени, набирать дополнительные силы для участия в этом на постоянной основе никто не хочет, поэтому это все будет бесконечно долго. Но руководство считает по другому) Лицензия на оракл стоит как крыло от самолета, разработчики на делфях умирают от старости и их становится все меньше и все такое)) Энивей, я могу нашару поразбираться в постгри, почему б нет Сначала выкидываешь дельфи, потом оракл. Т.е. делаешь вебчик под дельфийную схему данных, потом пытаешься мигрировать на постгрю. Только 20 месяцев тебе на это не хватит, я бы поставил на то, что лет через 5 закончишь. В свете этого, можешь выкидывать asp.net и реакт и начинать на чём-нибудь более модным. В новом месте старый код без изменений не применишь, это тогда будет лишние телодвижения по дописыванию его на оракле, потом это же еще на постгри переписывать. Вообще у проекта уже есть веб часть, и там используется именно такой подход, просто дописали для веб куска дополнительные таблицы/пакеты. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 10:26 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер В новом месте старый код без изменений не применишь, это тогда будет лишние телодвижения по дописыванию его на оракле, потом это же еще на постгри переписывать Ну да. Или одним рывком переписывать всё на постргю и новый стек. Но это не про нас. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 10:56 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер, не указаны важные детали: - на сколько критично время задержки синхронизации данных - какие фичи оракла используются, которых нет в чистом пг (автономные транзакции, джобы, очереди ...). как собираетесь их реализовать в пг? - логика проекта в базе или в приложении? имхо трудоемкость "постепенного" перехода будет раза в 2 выше чем полный переход ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 11:34 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Misha111 имхо трудоемкость "постепенного" перехода будет раза в 2 выше чем полный переход Больше, сильно больше. Потому что вместо "как реализовать задачу, который решал старый софт" будут думать, как обычно, над "как сделать оракл из pg" и прочих "как продолжить писать на делфях, но типа .net" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 11:55 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Melkij Больше, сильно больше. Удваиваю. Еще придётся старую систему развивать, поддерживать и всё это синхрить между двумя системами. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 11:59 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
авторне указаны важные детали: - на сколько критично время задержки синхронизации данных - какие фичи оракла используются, которых нет в чистом пг (автономные транзакции, джобы, очереди ...). как собираетесь их реализовать в пг? - логика проекта в базе или в приложении? 1. Это сложный вопрос, есть данные меняющиеся в жизни довольно редко (типа справочников) и если они будут переливаться по требованию или периодически не страшно теоретически. Есть то что меняется постоянно. Гипотетически то что меняется постоянно можно обновлять не транзакционно а периодически с интервалами раз в час скажем, при этом придется как-то мучится с конфликтами редактирования... 2. Автономные транзакции, пакетные переменные. Еще широко используется фича с тем что код в пакетах выполняется под правами создателя, не успел еще прочитать как с этим дело внутри постгревых функций. Мест с автономными транзакциями относительно немного, пока не думал о них, пакетные переменные через set_config по идее можно реализовать. 3. Вся логика редактирования данных лежит в ораклах пакетах, запросы для выборки данных в приложении. Более того, в оракле еще и полностью реализована интеграция со сторонними рест сервисами других систем Ну да. Или одним рывком переписывать всё на постргю и новый стек. Но это не про нас. Тут есть пару моментов - мы ж не можем сказать пользователям "подождите пару лет пока мы поиграемся с новыми технологиями и сделаем вам все зашибись", есть постоянно необходимость в доработках "здесь и сейчас" - практика показывает что если делать долгое время что-то и не тестировать это на реальных пользователях в реальных условиях это "что-то" либо вообще никогда не будет сделано, либо то что сделано окажется не рабочим в реальных условиях, хочется как можно быстрее начинать использование реализованного ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 12:43 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер, встречал я похожие ситуации. если используются оракл фичи + логика в БД, то переделывать с 0 начиная с архитектуры - это единственный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 12:55 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер Не заниматься фигней, а спокойно пилить на старом стеке. Последний пункт губит всю идею миграции на корню. Ну, я тоже считаю что вся эта идея тлен. Перевод займет овердофига времени, набирать дополнительные силы для участия в этом на постоянной основе никто не хочет, поэтому это все будет бесконечно долго. Но руководство считает по другому) Лицензия на оракл стоит как крыло от самолета, разработчики на делфях умирают от старости и их становится все меньше и все такое)) Энивей, я могу нашару поразбираться в постгри, почему б нет Тогда надо донести руководству - либо пилим новое и забиваем на старое, либо нового никогда не будет. План такой: 1) Пишем процедуры переноса данных (без ХП) из Oracle в PostgreSQL (Обратно данные течь не должны!). Которые будут работать пока эксплуатируются обе системы. 2) Создается MVP для новой системы только самое основное, без чего вообще нельзя работать 3) Все новые фичи создаются в новой системе. То чего нет в новой системе делают в старой. Данные в новой системе должны появляется пункту 1. 4) Старые фичи потихоньку переносятся в новую систему. Тогда есть шанс, что новая система будет работать. Иначе старая система не умрет никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 13:56 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер Но руководство считает по другому) Лицензия на оракл стоит как крыло от самолета, разработчики на делфях умирают от старости и их становится все меньше и все такое)) Энивей, я могу нашару поразбираться в постгри, почему б нет Думаю руководство право в первую очередь по части дельфи. Вопрос использования оракла - вопрос денег, их можно "наскрести". "Наскрести" разработчиков по практически мертвому языку за деньги нельзя. Может сначала переписать "фронт", а потом думать над миграцией БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 14:20 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
mefman, а смысл им переписывать сначала фронт если основная "боль" это цена за оракл? им нужно либо останавливать разработку новых фич на оракле и кидать весь ресурс в разработку нового с нуля, либо (как советовалось тут 22423521 ) сделать возможной помодульную миграцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 14:46 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
mefman Быдло__кодер, встречал я похожие ситуации. если используются оракл фичи + логика в БД, то переделывать с 0 начиная с архитектуры - это единственный вариант. ожесточенно лайкнул ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 14:52 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Дедушка mefman, а смысл им переписывать сначала фронт если основная "боль" это цена за оракл? им нужно либо останавливать разработку новых фич на оракле и кидать весь ресурс в разработку нового с нуля, либо (как советовалось тут 22423521 ) сделать возможной помодульную миграцию. Можно продать штаны и купить оракл. Купить разрабов дельфи в нужном количестве сложнее. Скоро будет вообще невозможно. А вообще проблемы ТС не решить в рамках форума. Нужны либо хорошие внутренние компетенции, либо дорогой консалтинг(без гарантий результата). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 15:04 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Дедушка mefman, а смысл им переписывать сначала фронт если основная "боль" это цена за оракл? .... Что может болеть, если он уже куплен? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 16:10 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Siemargl Дедушка mefman, а смысл им переписывать сначала фронт если основная "боль" это цена за оракл? .... Что может болеть, если он уже куплен? он не может быть "куплен". за него постоянно отстегивать надо. это вам не виндовс )) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 16:32 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
mefman Siemargl пропущено... Что может болеть, если он уже куплен? он не может быть "куплен". за него постоянно отстегивать надо. это вам не виндовс )) Ежегодная оплата техподдержки дает кроме ТП еще право перехода на новые версии. Но не хочешь - не плати и сиди на старой версии вечно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 21:56 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Насчет цены за оракл, у нас коробочный продукт, т.е каждый новый клиент еще покупает вместе с продуктом новую лицензию на ораклу, что делает стоимость продукта космической. Раньше была какая то вроде партнерская программа от оракла с меньшей ценой но это все в прошлом. По сути сейчас новые клиенты покупают исключительно вариант с oracle xe чтоб не платить конскую цену, но это дело подходит только каким то микроскопическим организациям, и это один из основных гвоздей в крышку ораклогроба. 1) Пишем процедуры переноса данных (без ХП) из Oracle в PostgreSQL (Обратно данные течь не должны!). Которые будут работать пока эксплуатируются обе системы. Не особо понятно как же в новой системе данные то менять, если они обратно в старую не будут передаваться.. авторкак вариант сначала избавиться от сильной связности, а потом уже мигрировать Да, этот вариант тоже обсуждается, типа разбить архитектуру на ряд отдельных слабозвязных кусочков, и переводить по кусочку, но мне кажется это довольно напряжной затеей, которая в любом случае требует привлечения всяких BA и прочих чертей) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2022, 23:36 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер 1) Пишем процедуры переноса данных (без ХП) из Oracle в PostgreSQL (Обратно данные течь не должны!). Которые будут работать пока эксплуатируются обе системы. Не особо понятно как же в новой системе данные то менять, если они обратно в старую не будут передаваться.. В этом весь и смысл, создать систему нипель. Чтобы актуальные данные и новые фичи были в новой системе. Старая использовалась только для каких-то специфичных фич. Причем сложность использования старой системы росла всё больше. Можно конечно сделать двусторонний обмен данными, но тогда у вас будет одна система из двух частей. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 09:21 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
Быдло__кодер Есть большой проект, который работает на оракле+делфи Стоит задача перевода его на совершенно новый стек технологий (postgres + asp.net core web api + react) Но при этом нет возможности полностью прекратить разработку старого проекта, заняться ХХ месяцев переписыванием этого добра а потом выпустить переписанный Поэтому принято решение перевод делать постепенно, перевести один модуль на новые рельсы, но при этом все остальное оставить по старому. Однако структура модулей проекта сильносвязная, т.е нельзя просто избавится от набора таблиц в оракле и вести их в постгри, таблицы из покинувшего старую гавань модуля нужны в других модулях и наоборот. Поэтому данные надо как то поддерживать связанными между базами Какие я вижу варианты: схему таблиц oracle использовать непосредственно в postgre через foreign_tables с помощью oracle_fdw. При этом есть такие плюсы и минусы: + Данные правятся и выбираются сразу в оракловой базе, все типа как работает без излишних усилий - Будет гемор с производительностью, на foreign_table не повесишь индекс, джойн больше двух таблиц согласно доке не будет пихаться как есть в оракл а будет разбиваться на несколько незасимых запросов, что потенциально будет приводить к катастрофическим проседаниям производительности. - Структуру данных нельзя будет поменять так удобно в новом проекте Пробовать сторонние утилиты для мерж репликации баз, типа SymmetricDS + Теоретически если настроить все правильно, данные можно брать только те которые нужно, в нужной структуре - Настроить это дело еще тот ад, следить постоянно чтоб не упало и все такое Не делать онлайн синхронизацию данных, воспользоваться со стороны постгри мат вьюхами на foreign_tables с рефрешем on demand (выглядит относительно несложно) в оракле писать скрипты по вытягиванию данных с постри через гетерогенный сервис + Выглядит не так жопошно в настройке как настраивание автоматической репликации - Конфликты в данных, необходимость доработки старого проекта, обновление данных не на лету Поделитесь опытом, может кто-то занимался подобным, как лучше поступить Ответ очевиден: оставайтесь на оракле и делфи. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 12:47 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
К.К2 Ответ очевиден: оставайтесь на оракле и делфи. В свете того что сказал ТС все с "точностью до наоборот" ТСу нас коробочный продукт, т.е каждый новый клиент еще покупает вместе с продуктом новую лицензию на ораклу, что делает стоимость продукта космической. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 12:50 |
|
Постепенная миграция с oracle -> postgres
|
|||
---|---|---|---|
#18+
mefman К.К2 Ответ очевиден: оставайтесь на оракле и делфи. В свете того что сказал ТС все с "точностью до наоборот" ТСу нас коробочный продукт, т.е каждый новый клиент еще покупает вместе с продуктом новую лицензию на ораклу, что делает стоимость продукта космической. + за техподдержку оракловую ежегодно.... наверняка ТС партнер оракал, так что норм. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2022, 12:54 |
|
|
start [/forum/search_topic.php?author=igor+strokow&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 5617ms |
total: | 5789ms |
0 / 0 |