Как непрерывно импортировать данные из внешнего сервиса в SQL Server - PullRequest
0 голосов
/ 02 июля 2019

У меня есть около ста служб, отправляющих данные в нашу очередь сообщений. Эти данные обрабатываются службой Java и загружаются в таблицы импорта на нашем SQL Server. После загрузки данных выполняется несколько процедур, которые загружают эти данные в соответствующие таблицы. Недавно нам пришлось добавить новые экземпляры службы чтения и загрузки сообщений. Было предложено изменить модель изоляции базы данных на моментальный снимок (я не очень привык к базам данных, поэтому я просто сделал то, что было предложено). К сожалению, у нас было много проблем с этим, поэтому нам пришлось дублировать таблицы импорта и вышеупомянутые процедуры - это, конечно, привело к огромному беспорядку, который я сейчас пытаюсь устранить.

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

Мой вопрос: возможно ли, и если да, то каким образом объединить данные в одну таблицу, преобразовать их и загрузить в целевую таблицу (все параллельно, поэтому предположим, что 3 или 4 службы делают это) таким образом, чтобы не вызывать взаимоблокировок или потери данных.

Наш SQL Server: Microsoft SQL Server 2014 (SP2-GDR) (KB4019093) - 12.0.5207.0 (X64)

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

...