Загрузка больших объемов данных с транзакцией

1. Denis211990 20 10.06.19 19:15 Сейчас в теме
Например, имеется такая задача.


Требуется организовать загрузку большого массива данных, записи\перезаписи. При этом должна быть возможность откатить изменения, и контролировать целостность.

1. Большой массив данных - больше миллиона строк (100 колонок)
2. Многопоточная обработка прочитанных данных
3. Требуется возможность возврата, в случае не полностью записанных\перезаписанных данных
4. Возможность применения блокировок


Как возможно организовать многопоточную загрузку огромного массива данных в транзакции?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Sashares 34 11.06.19 12:34 Сейчас в теме
(1)
Как возможно организовать многопоточную загрузку огромного массива данных в транзакции?

Многопоточную в одной транзакции - никак.
2. aka Любитель XML 10.06.19 19:45 Сейчас в теме
Также как и везде. Грузите порциями, используя обычные транзакции в коде
Denis211990; +1 Ответить
3. Oldsad 11.06.19 02:55 Сейчас в теме
сейчас миллионом строк никого не напугать, особенно если они хранятся в удобном для быстрого считывания формате
на быстродействие больше скажется не многопоточность,а отделение загрузки от последующей обработки данных
обычная транзакция в коде решит проблему целостности и предоставит возможность отката
6. Denis211990 20 11.06.19 12:37 Сейчас в теме
(3) транзакция при записи и перезаписи 1 миллиона объектов может вылететь
7. Sashares 34 11.06.19 12:49 Сейчас в теме
(6)Сначала вам нужно определиться, либо 1 транзакция, либо многопоточность.
Если многопоточность - то советовали выше - партиями загружать, каждая партия в своей транзакции.
Но соответственно, при ошибке откатится только транзакция с партией.
9. Oldsad 13.06.19 03:04 Сейчас в теме
(6)
на моей практике транзакции ни разу не "вылетали"
миллионы объектов не записывал, но несколько десятков-сотен тысяч были случаи
единственная причина по которой транзакция может "вылететь" - нехватка памяти
еще раз скажу - отделите мух от котлет, т.е. собственно загрузку от постобработки
Denis211990; +1 Ответить
4. herfis 499 11.06.19 12:31 Сейчас в теме
Что такое "многопоточная обработка прочитанных данных"? Запись в базу идет в нескольких потоках?
Что требуется откатывать? Весь миллион строк, если проблемы с последней строкой возникли?
Что такое "возможность применения блокировок"? Чтобы что?
8. vynosmozga 5 11.06.19 12:55 Сейчас в теме
Есть еще версионирование.
Denis211990; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот