|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Подскажите как организован у вас обмен на больших объемах и большом количестве баз. Есть организация с большим количеством филиалов (приближается к 200 филиалов). У каждого филиала стоит своя БД. В целом по структуре они однотипные, могут отличаться в момент обновлений. Так как они растянуты по времени из-за часовых поясов. Особенности в том, что обмен должен происходить многие ко многим. То есть из одного филиала данные могут уйти в несколько и прийти в него из других. Нет централизованной БД и по политическим решениям руководства не будет. При изменении данных срабатывают определенные правила, где решается в какой филиал они будут отправлены. Еще важна пакетная отправка. То есть все данные в пределах одной транзакции должны быть доставлены одновременно. Плюс к этим данным, по правилам могут быть добавлены еще другие произвольны данные, для целостности информации по клиентам. Например изменили данные по платежам, указали город отправки Санкт-Петербург, срабатывает правило, которое отправляет данные в Санкт-Петербург и к этим данным нужно еще отправить всю контактную информацию по клиенту и данные его отгрузки. Смотрел в сторону CDC и CDR, но так и не смог понять, как там указывать правила куда отправляем и как привязывать дополнительные данные. Может есть какое то другое решение и я его просто не смог нагуглить? Поделитесь решением, как можно организовать обмен между многими БД. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 11:38 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, Посмотрите в сторону шины. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:00 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Есть у нас и обмен через шину, но количество записей для обмена велико для шины, за день может быть по 90 млн записей ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:05 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, средняя скорость обмена - 1К сооб/сек? Если объем сообщений не измеряется в мегабайтах, то ничего страшного нет. Помимо размера сообщений, надо еще посмотреть пиковую скорость + допустимые задержки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:29 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Я бы сказал 3-5к/с у нас. Тут больше вопрос не в транспорте, а как фиксировать изменения и накладывать правила. Сейчас регистрация и выгрузка/загрузка идет через собственный софт. Интересуют как раз промышленные решения, которые позволяют регистрировать и отправлять большой объем. Желательно поддерживающий целостность пакетных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:50 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, шина и есть промышленное решение, которое позволяет удобно работать с правилами маршрутизации сообщений. Кроме того, можно пересылать через шину не сами данные, а ссылки на них (пачки ссылок), выкачивая данные по ссылкам другими средствами. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 12:59 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, Сервис брокер смотрели? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:03 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, Регистрация - CDC, CT, триггеры. Обмен - Service Broker. Возможно и это подойдет - https://docs.microsoft.com/ru-ru/sql/relational-databases/replication/transactional/peer-to-peer-transactional-replication?view=sql-server-ver15 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:07 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
.Евгений Virikus, шина и есть промышленное решение, которое позволяет удобно работать с правилами маршрутизации сообщений. Кроме того, можно пересылать через шину не сами данные, а ссылки на них (пачки ссылок), выкачивая данные по ссылкам другими средствами. Но чтобы что-то отправить через шину, надо сначала понять какие данные отправлять и куда. Интересует больше эти моменты пока. Просто повешать события на триггеры недостаточно как я понимаю, так по данному изменению может вообще ничего не надо отправлять согласно правилам обмена. Можете подсказать, что почитать по выкачиванию данных по ссылкам? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:09 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, лучшее решение - перенести данные на централизованный сервер, организовать "облако" своего рода. То, как у вас сейчас работает, требует колоссальных трудозатрат и имеет риск получить несоответствие данных, требует постоянных синхронизаций, проверок, рассогласование резервных копий и мало ли чего ещё. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 13:58 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Владислав Колосов Virikus, лучшее решение - перенести данные на централизованный сервер, организовать "облако" своего рода. То, как у вас сейчас работает, требует колоссальных трудозатрат и имеет риск получить несоответствие данных, требует постоянных синхронизаций, проверок, рассогласование резервных копий и мало ли чего ещё. Да, есть такое. К сожалению на создание централизованного сервера получили категорический отказ руководства. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:04 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, А Kafka вам не подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:14 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, Каждое изменение объекта (создание/модификация/удаление) должно порождать сообщение в шину. В зависимости от правил (централизованных), это сообщение получает от нуля до N подписчиков, которые его обрабатывают и либо непосредственно применяют его на своих данных, либо передают ссылку в ЕТЛ процесс (например, линк к удаленной БД + таблица + идентификатор записи). Если правила децентрализованы (проблемный вариант), то источник сам должен определять адресатов сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:23 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Glebanski Virikus, А Kafka вам не подойдет? Kafka, RabbitMQ, Service Broker ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 14:58 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus Да, есть такое. К сожалению на создание централизованного сервера получили категорический отказ руководства. А обосновали как-то отказ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 15:11 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Критик, а какая разница, если руководство не вкуривает, что шина - тот же централизованный сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 16:55 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
andy st Критик, а какая разница, если руководство не вкуривает, что шина - тот же централизованный сервер . Да ну, фигня какая-то. Поставьте экспресс, пусть шарашит Ну, и выше написано про Kafka RabbitMQ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 17:24 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
У нас используется IBM MQ, для различных интеграций. Проблема как раз в удобном инструменте регистрации для обмена и большом объеме данных. Кроме этого есть еще особенность при загрузке, так как есть таблицы итогов, которые при загрузке необходимо пересчитывать по ключам. Насколько понимаю по данной статье https://habr.com/ru/post/514500/ нам подходит вариант CDC, но я пока не понял как настраивать правила, по которым определять куда и какие данные необходимо отправлять и как выполнять дополнительные действия при загрузке. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 18:02 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Критик Virikus Да, есть такое. К сожалению на создание централизованного сервера получили категорический отказ руководства. А обосновали как-то отказ? Хотят чтобы в случаем проблем с центральной базой, филиалы могли независимо работать, плюс беспокоятся насчет безопасности данных, чтобы никто не видел лишнюю информацию ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 18:06 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus У нас используется IBM MQ, для различных интеграций. Проблема как раз в удобном инструменте регистрации для обмена и большом объеме данных. Кроме этого есть еще особенность при загрузке, так как есть таблицы итогов, которые при загрузке необходимо пересчитывать по ключам. Насколько понимаю по данной статье https://habr.com/ru/post/514500/ нам подходит вариант CDC, но я пока не понял как настраивать правила, по которым определять куда и какие данные необходимо отправлять и как выполнять дополнительные действия при загрузке. Кстати, еще есть зверюга MSMQ, из сервисов доступен, в коллекцию ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2021, 18:24 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus Критик пропущено... А обосновали как-то отказ? Хотят чтобы в случаем проблем с центральной базой, филиалы могли независимо работать, плюс беспокоятся насчет безопасности данных, чтобы никто не видел лишнюю информацию а у вас на случай недоступности части баз есть механизмы переотправки сообщений?? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2021, 16:14 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Virikus, здравствуйте! Я много лет занимаюсь системами интеграции и обмена данными, в т.ч. разработкой и внедрением в различные информационные системы. Мне показался интересным ваш кейс. Не исключено, что смогу помочь... Чтобы более предметно сфокусироваться на возможных вариантах решения, хотелось бы понять: - Чем конкретно не устраивает текущее ваше решение ? Оно не справляется по скорости (какая задержка доставки данных) ? Не обеспечивает должное качество/консистентность данных ? Сложное в сопровождении ? Создает проблемы при обновлениях прикладной платформы ? В нём не реализован какой-то важный для бизнеса функционал ? Что-то другое? - Какого типа у вас прикладная платформа ? 1С, Акспата, что-то самописное, что-то другое ...? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 15:12 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Владислав Колосовлучшее решение - перенести данные на централизованный сервер, организовать "облако" своего рода. То, как у вас сейчас работает, требует колоссальных трудозатрат и имеет риск получить несоответствие данных, требует постоянных синхронизаций, проверок, рассогласование резервных копий и мало ли чего ещё. Полностью согласен. В течение нескольких лет поддерживал и самописную репликацию и репликацию слиянием на SQL-сервере. Это бесконечные проблемы. С первой попытки такое решение не сделать. При обсуждении этой темы бесполезны разговоры о триггерах, сервис-брокерах и т.п. Нужно обсуждать особенности уже готового решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 17:05 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Пробовали слезть с репликации слиянием на шину от Tibco, не прокатило - спецы неделями делали адаптер для всего лишь одной таблицы, получалась очень низкая скорость передачи данных, не было гарантии доставки данных. Может, спецы не те были. Репликация слиянием удручала жесткими ограничениями на изменение схемы данных, блокировками на общих системных таблицах и бесконечными конфликтами на изменении данных. Лучше всего работала самописка. Очень большой плюс был в том, что можно было ее переделывать как угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2021, 17:23 |
|
Каким образом лучше организовать обмен между базами?
|
|||
---|---|---|---|
#18+
Пробовали слезть с репликации слиянием на шину от Tibco, не прокатило - спецы неделями делали адаптер для всего лишь одной таблицы, получалась очень низкая скорость передачи данных, не было гарантии доставки данных. Может, спецы не те были. Репликация слиянием удручала жесткими ограничениями на изменение схемы данных, блокировками на общих системных таблицах и бесконечными конфликтами на изменении данных. Лучше всего работала самописка. Очень большой плюс был в том, что можно было ее переделывать как угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 10:03 |
|
|
start [/forum/topic.php?fid=46&startmsg=40043214&tid=1684686]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
141ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 330ms |
total: | 581ms |
0 / 0 |