|
|
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Добрый день! Как можно решить задачу по параллельной обработке данных из бд с помощью нескольких клиентских приложений? Опишу подробнее. Есть база, в базе большая по числу записей таблица. К бд подключаются несколько одинаковых java приложений. Каждое умеет обрабатывать записи таблицы. То есть вычитывать, изменять и сохранять обратно в туже таблицу. Требуется запустить обработку всех записей из таблицы, удовлетворяющих условию. Допустим, если таблица содержит 10млн строк, то под условие может попадать 8,5 млн. И эти 8,5 млн строк требуется обработать, например, на 5 клиентских приложениях - около 1,7 млн записей на каждого. Как можно разделить данные между клиентами, чтобы не было проблем во время обработки? Как в таком подходе будет реагировать оракл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2018, 21:10 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatr, А что такого умеет делать клиент, что возникает необходимость тянуть к нему данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2018, 21:29 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
AmKad, Клиент по отношению к бд. На самом деле это уровень сервера приложений. Хочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2018, 21:51 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений. Хочется - перераспределяй. Но что заставляет делать это средствами БД? Заведи диспетчер, который вычитает твои 8кк записей и раскидает по исполнителям. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2018, 22:08 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.Наивный велосипедостроитель? "Шчаз я на яве всех порву, как тузик грелку"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 07:41 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovfeomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений. Хочется - перераспределяй. Но что заставляет делать это средствами БД? Заведи диспетчер, который вычитает твои 8кк записей и раскидает по исполнителям. Когда исполнитель выбирает пачку данных и активно ее обновляет не будет происходить столкновений/взаимных блокировок в оракле при обновлении строк? Будет разница если горизонтально разделять записи таблицы для обработчиков? А если каждый из обработчиков пронуровать и пусть он отрабатывает строки, хэш функция которых при делении на число обработчиков равна номеру обработчика? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 16:16 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
ElicfeomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.Наивный велосипедостроитель? "Шчаз я на яве всех порву, как тузик грелку"? Есть идеи, как оптимально организовать такой процесс обработки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 16:18 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrКогда исполнитель выбирает пачку данных и активно ее обновляет не будет происходить столкновений/взаимных блокировок в оракле при обновлении строк? С кем столкновений? Диспетчер - один. Он коммитит транзакцию перед раскидыванием выбранного списка исполнителям. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 16:29 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Mu:hleisenTransferring a large amount of data from a database to a client program is a surprisingly expensive operation. The time this requires can easily dominate the query execution time for large result sets. http://www.vldb.org/pvldb/vol10/p1022-muehleisen.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2018, 17:13 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrкак оптимально организовать такой процесс обработки?"Такой" - это сферо-коне-вакуумо-образный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 07:27 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovfeomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений. Хочется - перераспределяй. Но что заставляет делать это средствами БД? Заведи диспетчер, который вычитает твои 8кк записей и раскидает по исполнителям. 1)На сколько эффективно , если Исполнитель будет обновлять каждую запись в отдельной транзакции? 2) на сколько эффективно обновлять записи пачками? Есть best practices в массовой обработке данных из бд на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 07:45 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovfeomatrКогда исполнитель выбирает пачку данных и активно ее обновляет не будет происходить столкновений/взаимных блокировок в оракле при обновлении строк? С кем столкновений? Диспетчер - один. Он коммитит транзакцию перед раскидыванием выбранного списка исполнителям. Если исполнителей много и каждый активно пишет и читает одну таблицу, то полагаю, что СУБД при определенной нагрузке может начать не поддерживать конкурентный доступ к таблице. Насколько это реально? Есть какой-то sla у оракла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 07:57 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Или массовая обработка просто напросто упрется в сеть и передачу данных ? Как указал Мутаген. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 07:59 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrобработке данных из бд на клиентеНемотивированная самоцель. Но таки да, ты уменьшишь конкуренцию за счёт замедления обработки путём выноса её на клиентов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 08:12 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Сформулировал мысль и задал вопрос в другой ветке. http://www.sql.ru/forum/1302406-a/posovetuyte-podhody-i-literaturu-po-massovoy-obrabotke-dannyh Спасибо за ответы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 08:54 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatr1)На сколько эффективно , если Исполнитель будет обновлять каждую запись в отдельной транзакции? Неэффективно, ты рискуешь не просто не достигнуть своей цели - снизить нагрузку, ты рискуешь добиться обратного. feomatr2) на сколько эффективно обновлять записи пачками? После построчной обработке тебе покажется что "ура, все полетело". Но это только кажется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 11:24 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
XMLer, Что может случиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 11:55 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatr1)На сколько эффективно , если Исполнитель будет обновлять каждую запись в отдельной транзакции? Если результатом работы исполнителя является одна запись, то обновлять её в транзакции - единственно правильное решение. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 12:01 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Результатом работы исполнителя предполагается обновление каждой записи из переданной ему пачки. Пачка размерами от тысяч, десятков тысяч ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 12:14 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrРезультатом работы исполнителя предполагается обновление каждой записи из переданной ему пачки. Это бред, которые не имеет смысла выносить из СУБД. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 12:22 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatr, Никакой пачкой ты не добьёшся производительности, сравнимой с массовой обработкой внутри СУБД. Вспомнил один похожий проект, миграция обработки файла одной из IPS из Oracle в AppServer на Java. Целью проекта было отказ от дорогой СУБД, она была достигнута. Но производительностью подобные решения не страдают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 13:07 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
feomatrЕсть best practices в массовой обработке данных из бд на клиенте? В общем, да. И эта best practice - не делать массовых обработок данных из бд на клиенте :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 19:39 |
|
||
|
Массовая обработка таблицы на клиентах
|
|||
|---|---|---|---|
|
#18+
softwarerИ эта best practice - не делать массовых обработок данных из бд на клиенте :) Кто ж знает, что ТС называет "обработкой" и насколько она массовая... Прибавить единицу к значению поля в миллиарде записей это одно. Но есть и вещи типа SETI и прочего майнинга, которые требует очень больших вычислительных мощностей, но и входные данные и результат которых сравнительно компактны. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2018, 20:04 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39701978&tid=1883461]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
168ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 523ms |

| 0 / 0 |
