Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Массовая обработка таблицы на клиентах / 24 сообщений из 24, страница 1 из 1
11.09.2018, 21:10
    #39701132
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Добрый день!
Как можно решить задачу по параллельной обработке данных из бд с помощью нескольких клиентских приложений?

Опишу подробнее.
Есть база, в базе большая по числу записей таблица.
К бд подключаются несколько одинаковых java приложений. Каждое умеет обрабатывать записи таблицы. То есть вычитывать, изменять и сохранять обратно в туже таблицу.

Требуется запустить обработку всех записей из таблицы, удовлетворяющих условию.
Допустим, если таблица содержит 10млн строк, то под условие может попадать 8,5 млн. И эти 8,5 млн строк требуется обработать, например, на 5 клиентских приложениях - около 1,7 млн записей на каждого.

Как можно разделить данные между клиентами, чтобы не было проблем во время обработки? Как в таком подходе будет реагировать оракл?
...
Рейтинг: 0 / 0
11.09.2018, 21:29
    #39701138
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatr,

А что такого умеет делать клиент, что возникает необходимость тянуть к нему данные?
...
Рейтинг: 0 / 0
11.09.2018, 21:51
    #39701147
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
AmKad,

Клиент по отношению к бд. На самом деле это уровень сервера приложений.
Хочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.
...
Рейтинг: 0 / 0
11.09.2018, 22:08
    #39701151
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.

Хочется - перераспределяй. Но что заставляет делать это средствами БД? Заведи диспетчер,
который вычитает твои 8кк записей и раскидает по исполнителям.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.09.2018, 07:41
    #39701217
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.Наивный велосипедостроитель? "Шчаз я на яве всех порву, как тузик грелку"?
...
Рейтинг: 0 / 0
12.09.2018, 16:16
    #39701606
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Dimitry SibiryakovfeomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.

Хочется - перераспределяй. Но что заставляет делать это средствами БД? Заведи диспетчер,
который вычитает твои 8кк записей и раскидает по исполнителям.
Когда исполнитель выбирает пачку данных и активно ее обновляет не будет происходить столкновений/взаимных блокировок в оракле при обновлении строк?

Будет разница если горизонтально разделять записи таблицы для обработчиков? А если каждый из обработчиков пронуровать и пусть он отрабатывает строки, хэш функция которых при делении на число обработчиков равна номеру обработчика?
...
Рейтинг: 0 / 0
12.09.2018, 16:18
    #39701610
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
ElicfeomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.Наивный велосипедостроитель? "Шчаз я на яве всех порву, как тузик грелку"?

Есть идеи, как оптимально организовать такой процесс обработки?
...
Рейтинг: 0 / 0
12.09.2018, 16:29
    #39701625
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrКогда исполнитель выбирает пачку данных и активно ее обновляет не будет происходить
столкновений/взаимных блокировок в оракле при обновлении строк?

С кем столкновений? Диспетчер - один. Он коммитит транзакцию перед раскидыванием
выбранного списка исполнителям.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
12.09.2018, 17:13
    #39701659
Мутаген
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
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
...
Рейтинг: 0 / 0
13.09.2018, 07:27
    #39701803
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrкак оптимально организовать такой процесс обработки?"Такой" - это сферо-коне-вакуумо-образный?
...
Рейтинг: 0 / 0
13.09.2018, 07:45
    #39701806
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Dimitry SibiryakovfeomatrХочется перераспределить нагрузку по обработке данных с сервера бд на сервера приложений.

Хочется - перераспределяй. Но что заставляет делать это средствами БД? Заведи диспетчер,
который вычитает твои 8кк записей и раскидает по исполнителям.


1)На сколько эффективно , если Исполнитель будет обновлять каждую запись в отдельной транзакции?
2) на сколько эффективно обновлять записи пачками?

Есть best practices в массовой обработке данных из бд на клиенте?
...
Рейтинг: 0 / 0
13.09.2018, 07:57
    #39701811
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Dimitry SibiryakovfeomatrКогда исполнитель выбирает пачку данных и активно ее обновляет не будет происходить
столкновений/взаимных блокировок в оракле при обновлении строк?

С кем столкновений? Диспетчер - один. Он коммитит транзакцию перед раскидыванием
выбранного списка исполнителям.
Если исполнителей много и каждый активно пишет и читает одну таблицу, то полагаю, что СУБД при определенной нагрузке может начать не поддерживать конкурентный доступ к таблице.
Насколько это реально? Есть какой-то sla у оракла.
...
Рейтинг: 0 / 0
13.09.2018, 07:59
    #39701812
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Или массовая обработка просто напросто упрется в сеть и передачу данных ? Как указал Мутаген.
...
Рейтинг: 0 / 0
13.09.2018, 08:12
    #39701816
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrобработке данных из бд на клиентеНемотивированная самоцель.
Но таки да, ты уменьшишь конкуренцию за счёт замедления обработки путём выноса её на клиентов
...
Рейтинг: 0 / 0
13.09.2018, 08:54
    #39701838
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Сформулировал мысль и задал вопрос в другой ветке.

http://www.sql.ru/forum/1302406-a/posovetuyte-podhody-i-literaturu-po-massovoy-obrabotke-dannyh

Спасибо за ответы)
...
Рейтинг: 0 / 0
13.09.2018, 11:24
    #39701945
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatr1)На сколько эффективно , если Исполнитель будет обновлять каждую запись в отдельной транзакции?


Неэффективно, ты рискуешь не просто не достигнуть своей цели - снизить нагрузку, ты рискуешь добиться обратного.

feomatr2) на сколько эффективно обновлять записи пачками?

После построчной обработке тебе покажется что "ура, все полетело". Но это только кажется
...
Рейтинг: 0 / 0
13.09.2018, 11:55
    #39701974
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
XMLer,
Что может случиться?
...
Рейтинг: 0 / 0
13.09.2018, 12:01
    #39701978
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatr1)На сколько эффективно , если Исполнитель будет обновлять каждую запись в отдельной
транзакции?

Если результатом работы исполнителя является одна запись, то обновлять её в транзакции -
единственно правильное решение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 12:14
    #39701998
feomatr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Dimitry Sibiryakov,

Результатом работы исполнителя предполагается обновление каждой записи из переданной ему пачки. Пачка размерами от тысяч, десятков тысяч
...
Рейтинг: 0 / 0
13.09.2018, 12:22
    #39702006
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrРезультатом работы исполнителя предполагается обновление каждой записи из переданной ему
пачки.

Это бред, которые не имеет смысла выносить из СУБД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
13.09.2018, 13:07
    #39702057
XMLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatr,
Никакой пачкой ты не добьёшся производительности, сравнимой с массовой обработкой внутри СУБД.
Вспомнил один похожий проект, миграция обработки файла одной из IPS из Oracle в AppServer на Java. Целью проекта было отказ от дорогой СУБД, она была достигнута. Но производительностью подобные решения не страдают.
...
Рейтинг: 0 / 0
13.09.2018, 19:39
    #39702320
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
feomatrЕсть best practices в массовой обработке данных из бд на клиенте?
В общем, да. И эта best practice - не делать массовых обработок данных из бд на клиенте :)
...
Рейтинг: 0 / 0
13.09.2018, 20:04
    #39702327
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
softwarerИ эта best practice - не делать массовых обработок данных из бд на клиенте :)

Кто ж знает, что ТС называет "обработкой" и насколько она массовая...
Прибавить единицу к значению поля в миллиарде записей это одно. Но есть и вещи типа SETI и
прочего майнинга, которые требует очень больших вычислительных мощностей, но и входные
данные и результат которых сравнительно компактны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
14.09.2018, 07:45
    #39702389
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Массовая обработка таблицы на клиентах
Dimitry SibiryakovНо есть и вещи типаУспокойся. Просто ТС явист. Иначе бы уже давно обозначил сферического коня.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Массовая обработка таблицы на клиентах / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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