ETL для переноса Организации из одной базы в другую
От: Alexbnd Израиль  
Дата: 10.10.24 12:14
Оценка:
Есть MultiAccount приложение. То есть в БД хранится информация в 100 таблицах и часть этой информации присязана к конкретной организации.
Нужно перенести все эти данные из одной базы в другую. Так чтобы оно органично вписалось и поднялось.
Сейчас есть самописное что-то с копированием информации во временные таблицы, экспортом этих таблиц, импортом на второй базе и переносом из временных таблиц в постоянные.
Работает медленно и криво.

Приложение на Java(Spring, Hibernate) на базе Postgres.

Есть что-то готовое, что можно допилить под конкретную систему и получить простой перенос?
Или велосипеды это наше все?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: ETL для переноса Организации из одной базы в другую
От: · Великобритания  
Дата: 10.10.24 12:50
Оценка:
Здравствуйте, Alexbnd, Вы писали:

A>Нужно перенести все эти данные из одной базы в другую.

dump/restore.

A>Так чтобы оно органично вписалось и поднялось.

Нюанс!

A>Есть что-то готовое, что можно допилить под конкретную систему и получить простой перенос?

Я не могу себе представить универсальный всемогутер. Эта задача алгоритмически неразрешима в общем случае. Собственно органичное вписывание и поднятие — в этом-то и заключается бизнес-логика, которую и нужно реализовывать в зависимости от конкретных требований.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: ETL для переноса Организации из одной базы в другую
От: Alexbnd Израиль  
Дата: 11.10.24 11:35
Оценка:
·>dump/restore.

Фишка в том, что нужно перенести часть данных из всех таблиц.

·>Я не могу себе представить универсальный всемогутер. Эта задача алгоритмически неразрешима в общем случае. Собственно органичное вписывание и поднятие — в этом-то и заключается бизнес-логика, которую и нужно реализовывать в зависимости от конкретных требований.


Понятно, что готового решения нет, но задача не то, чтобы уникальная.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: ETL для переноса Организации из одной базы в другую
От: · Великобритания  
Дата: 11.10.24 13:25
Оценка: 2 (1)
Здравствуйте, Alexbnd, Вы писали:

A>·>dump/restore.

A>Фишка в том, что нужно перенести часть данных из всех таблиц.
Проблема в том, что субд как правило поддерживают целостность (consistency). Если ты делаешь dump/restore, то это тривиальный случай. Копия консистентных данных — гарантированно консистентная.
Как только ты начинаешь данные как-то делить, то беспокоиться о целостности придётся тебе, как программисту. И целостность данных зависит исключительно от предметной области и это в каждом случае — уникально.

Может что-то вроде: db copy, delete from * where data not mine, dump, transfer, restore.

A>·>Я не могу себе представить универсальный всемогутер. Эта задача алгоритмически неразрешима в общем случае. Собственно органичное вписывание и поднятие — в этом-то и заключается бизнес-логика, которую и нужно реализовывать в зависимости от конкретных требований.

A>Понятно, что готового решения нет, но задача не то, чтобы уникальная.
Уникальная. Не уникальная лишь в том смысле, что всё сводится к пачке sql-запросв.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: ETL для переноса Организации из одной базы в другую
От: · Великобритания  
Дата: 11.10.24 13:41
Оценка:
Здравствуйте, Alexbnd, Вы писали:

A>Сейчас есть самописное что-то с копированием информации во временные таблицы, экспортом этих таблиц, импортом на второй базе и переносом из временных таблиц в постоянные.

Неясно зачем последний шаг. Там мержатся данные из двух баз что-ли?
Почему нелья просто импортировать в постоянные напрямую?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: ETL для переноса Организации из одной базы в другую
От: Miroff Россия  
Дата: 11.10.24 14:43
Оценка:
Здравствуйте, Alexbnd, Вы писали:

A>Есть что-то готовое, что можно допилить под конкретную систему и получить простой перенос?


Если база хорошо спроектирована, то у SQL сервера есть возможность выгрузить связанные сущности в XML и загрузить их обратно. А если нет, то:

A>Или велосипеды это наше все?
Re[2]: ETL для переноса Организации из одной базы в другую
От: Alexbnd Израиль  
Дата: 13.10.24 10:19
Оценка:
·>Неясно зачем последний шаг. Там мержатся данные из двух баз что-ли?
·>Почему нелья просто импортировать в постоянные напрямую?
Еще одна проверка на консистентность и перепривязка данных на айди из новой базы.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re[3]: ETL для переноса Организации из одной базы в другую
От: · Великобритания  
Дата: 13.10.24 10:52
Оценка:
Здравствуйте, Alexbnd, Вы писали:

A>·>Неясно зачем последний шаг. Там мержатся данные из двух баз что-ли?

A>·>Почему нелья просто импортировать в постоянные напрямую?
A>Еще одна проверка на консистентность и перепривязка данных на айди из новой базы.
Использовать распределённый дизайн данных, uuid там вместо инкрементальных id и можно будет этот шаг выкинуть.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: ETL для переноса Организации из одной базы в другую
От: Alexbnd Израиль  
Дата: 13.10.24 11:19
Оценка:
M>Если база хорошо спроектирована, то у SQL сервера есть возможность выгрузить связанные сущности в XML и загрузить их обратно. А если нет, то:

Данные связанны, конечно.
Не вижу в Постгрес такой опции: экспорт всей базы в XML есть, таблицы есть, даже запроса есть. Но как сказать ему, чтобы выгружал еще и связанные данные — не вижу.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Re: ETL для переноса Организации из одной базы в другую
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.10.24 01:14
Оценка:
Здравствуйте, Alexbnd, Вы писали:
A>Есть что-то готовое, что можно допилить под конкретную систему и получить простой перенос?
A>Или велосипеды это наше все?
100500 их.
https://www.astera.com/type/blog/data-migration-tools/

Но обычно на практике есть ряд нюансов, из-за которых инструменты не шибко-то всё упрощают по сравнению с честным велосипедным скриптованием.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: ETL для переноса Организации из одной базы в другую
От: Osaka  
Дата: 05.11.24 13:14
Оценка:
A>Нужно перенести все эти данные из одной базы в другую. Так чтобы оно органично вписалось и поднялось.
A>Есть что-то готовое, что можно допилить под конкретную систему и получить простой перенос?
Программирование без платы программистам написания и отладки кода — несбыточная мечта менеджеров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.