powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Каким образом лучше организовать обмен между базами?
25 сообщений из 26, страница 1 из 2
Каким образом лучше организовать обмен между базами?
    #40043214
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, добрый день.

Подскажите как организован у вас обмен на больших объемах и большом количестве баз.

Есть организация с большим количеством филиалов (приближается к 200 филиалов).

У каждого филиала стоит своя БД. В целом по структуре они однотипные, могут отличаться в момент обновлений. Так как они растянуты по времени из-за часовых поясов.

Особенности в том, что обмен должен происходить многие ко многим. То есть из одного филиала данные могут уйти в несколько и прийти в него из других. Нет централизованной БД и по политическим решениям руководства не будет.

При изменении данных срабатывают определенные правила, где решается в какой филиал они будут отправлены. Еще важна пакетная отправка. То есть все данные в пределах одной транзакции должны быть доставлены одновременно. Плюс к этим данным, по правилам могут быть добавлены еще другие произвольны данные, для целостности информации по клиентам.
Например изменили данные по платежам, указали город отправки Санкт-Петербург, срабатывает правило, которое отправляет данные в Санкт-Петербург и к этим данным нужно еще отправить всю контактную информацию по клиенту и данные его отгрузки.

Смотрел в сторону CDC и CDR, но так и не смог понять, как там указывать правила куда отправляем и как привязывать дополнительные данные.

Может есть какое то другое решение и я его просто не смог нагуглить? Поделитесь решением, как можно организовать обмен между многими БД.

Спасибо.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043221
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

Посмотрите в сторону шины.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043224
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть у нас и обмен через шину, но количество записей для обмена велико для шины, за день может быть по 90 млн записей
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043233
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

средняя скорость обмена - 1К сооб/сек? Если объем сообщений не измеряется в мегабайтах, то ничего страшного нет. Помимо размера сообщений, надо еще посмотреть пиковую скорость + допустимые задержки.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043241
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы сказал 3-5к/с у нас.

Тут больше вопрос не в транспорте, а как фиксировать изменения и накладывать правила. Сейчас регистрация и выгрузка/загрузка идет через собственный софт. Интересуют как раз промышленные решения, которые позволяют регистрировать и отправлять большой объем. Желательно поддерживающий целостность пакетных данных.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043249
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

шина и есть промышленное решение, которое позволяет удобно работать с правилами маршрутизации сообщений.

Кроме того, можно пересылать через шину не сами данные, а ссылки на них (пачки ссылок), выкачивая данные по ссылкам другими средствами.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043251
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

Сервис брокер смотрели?
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043254
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043256
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Евгений
Virikus,

шина и есть промышленное решение, которое позволяет удобно работать с правилами маршрутизации сообщений.

Кроме того, можно пересылать через шину не сами данные, а ссылки на них (пачки ссылок), выкачивая данные по ссылкам другими средствами.


Но чтобы что-то отправить через шину, надо сначала понять какие данные отправлять и куда. Интересует больше эти моменты пока. Просто повешать события на триггеры недостаточно как я понимаю, так по данному изменению может вообще ничего не надо отправлять согласно правилам обмена.

Можете подсказать, что почитать по выкачиванию данных по ссылкам?
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043273
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

лучшее решение - перенести данные на централизованный сервер, организовать "облако" своего рода. То, как у вас сейчас работает, требует колоссальных трудозатрат и имеет риск получить несоответствие данных, требует постоянных синхронизаций, проверок, рассогласование резервных копий и мало ли чего ещё.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043277
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов
Virikus,

лучшее решение - перенести данные на централизованный сервер, организовать "облако" своего рода. То, как у вас сейчас работает, требует колоссальных трудозатрат и имеет риск получить несоответствие данных, требует постоянных синхронизаций, проверок, рассогласование резервных копий и мало ли чего ещё.


Да, есть такое. К сожалению на создание централизованного сервера получили категорический отказ руководства.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043280
Glebanski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

А Kafka вам не подойдет?
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043282
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus,

Каждое изменение объекта (создание/модификация/удаление) должно порождать сообщение в шину. В зависимости от правил (централизованных), это сообщение получает от нуля до N подписчиков, которые его обрабатывают и либо непосредственно применяют его на своих данных, либо передают ссылку в ЕТЛ процесс (например, линк к удаленной БД + таблица + идентификатор записи).

Если правила децентрализованы (проблемный вариант), то источник сам должен определять адресатов сообщения.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043310
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glebanski
Virikus,

А Kafka вам не подойдет?


Kafka, RabbitMQ, Service Broker
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043316
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus
Да, есть такое. К сожалению на создание централизованного сервера получили категорический отказ руководства.


А обосновали как-то отказ?
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043383
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик,
а какая разница, если руководство не вкуривает, что шина - тот же централизованный сервер.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043400
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
Критик,
а какая разница, если руководство не вкуривает, что шина - тот же централизованный сервер .


Да ну, фигня какая-то.

Поставьте экспресс, пусть шарашит

Ну, и выше написано про
Kafka
RabbitMQ
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043436
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас используется IBM MQ, для различных интеграций.

Проблема как раз в удобном инструменте регистрации для обмена и большом объеме данных. Кроме этого есть еще особенность при загрузке, так как есть таблицы итогов, которые при загрузке необходимо пересчитывать по ключам.

Насколько понимаю по данной статье https://habr.com/ru/post/514500/ нам подходит вариант CDC, но я пока не понял как настраивать правила, по которым определять куда и какие данные необходимо отправлять и как выполнять дополнительные действия при загрузке.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043438
Virikus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик
Virikus
Да, есть такое. К сожалению на создание централизованного сервера получили категорический отказ руководства.


А обосновали как-то отказ?


Хотят чтобы в случаем проблем с центральной базой, филиалы могли независимо работать, плюс беспокоятся насчет безопасности данных, чтобы никто не видел лишнюю информацию
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043446
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus
У нас используется IBM MQ, для различных интеграций.

Проблема как раз в удобном инструменте регистрации для обмена и большом объеме данных. Кроме этого есть еще особенность при загрузке, так как есть таблицы итогов, которые при загрузке необходимо пересчитывать по ключам.

Насколько понимаю по данной статье https://habr.com/ru/post/514500/ нам подходит вариант CDC, но я пока не понял как настраивать правила, по которым определять куда и какие данные необходимо отправлять и как выполнять дополнительные действия при загрузке.


Кстати, еще есть зверюга MSMQ, из сервисов доступен, в коллекцию
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40043750
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Virikus
Критик
пропущено...


А обосновали как-то отказ?


Хотят чтобы в случаем проблем с центральной базой, филиалы могли независимо работать, плюс беспокоятся насчет безопасности данных, чтобы никто не видел лишнюю информацию

а у вас на случай недоступности части баз есть механизмы переотправки сообщений??
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40065232
alexey2021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Virikus,
здравствуйте!
Я много лет занимаюсь системами интеграции и обмена данными, в т.ч. разработкой и внедрением в различные информационные системы. Мне показался интересным ваш кейс. Не исключено, что смогу помочь...

Чтобы более предметно сфокусироваться на возможных вариантах решения, хотелось бы понять:

- Чем конкретно не устраивает текущее ваше решение ? Оно не справляется по скорости (какая задержка доставки данных) ? Не обеспечивает должное качество/консистентность данных ? Сложное в сопровождении ? Создает проблемы при обновлениях прикладной платформы ? В нём не реализован какой-то важный для бизнеса функционал ? Что-то другое?

- Какого типа у вас прикладная платформа ? 1С, Акспата, что-то самописное, что-то другое ...?
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40065286
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовлучшее решение - перенести данные на централизованный сервер, организовать "облако" своего рода. То, как у вас сейчас работает, требует колоссальных трудозатрат и имеет риск получить несоответствие данных, требует постоянных синхронизаций, проверок, рассогласование резервных копий и мало ли чего ещё.
Полностью согласен.
В течение нескольких лет поддерживал и самописную репликацию и репликацию слиянием на SQL-сервере.
Это бесконечные проблемы.
С первой попытки такое решение не сделать.
При обсуждении этой темы бесполезны разговоры о триггерах, сервис-брокерах и т.п.
Нужно обсуждать особенности уже готового решения.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40065293
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовали слезть с репликации слиянием на шину от Tibco, не прокатило - спецы неделями делали адаптер для всего лишь одной таблицы, получалась очень низкая скорость передачи данных, не было гарантии доставки данных.
Может, спецы не те были.
Репликация слиянием удручала жесткими ограничениями на изменение схемы данных, блокировками на общих системных таблицах и бесконечными конфликтами на изменении данных.
Лучше всего работала самописка. Очень большой плюс был в том, что можно было ее переделывать как угодно.
...
Рейтинг: 0 / 0
Каким образом лучше организовать обмен между базами?
    #40065822
Тяп-ляп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробовали слезть с репликации слиянием на шину от Tibco, не прокатило - спецы неделями делали адаптер для всего лишь одной таблицы, получалась очень низкая скорость передачи данных, не было гарантии доставки данных.
Может, спецы не те были.
Репликация слиянием удручала жесткими ограничениями на изменение схемы данных, блокировками на общих системных таблицах и бесконечными конфликтами на изменении данных.
Лучше всего работала самописка. Очень большой плюс был в том, что можно было ее переделывать как угодно.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Каким образом лучше организовать обмен между базами?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]