powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ручная репликация (синхронизация данных с внешним источником) - какой оптимальный способ?
3 сообщений из 3, страница 1 из 1
Ручная репликация (синхронизация данных с внешним источником) - какой оптимальный способ?
    #39948071
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть внешний источник данных с низкой производительностью.
Чтобы с ним работать, опрашиваю его раз в час и результаты кеширую в локальной таблице.
Количество строк в источнике данных исчисляется тысячами, в дальней перспективе возможны десятки тысяч.
С новыми или измененными данными особых сложностей нет, но есть вопрос, как работать с аннулированными (удаленными) записями.
Можно добавить в локальную таблицу поле CHANGED, обновлять его при добавлении/обновлении, а затем удалять все записи, у которых CHANGED старше определенного порога (то есть которые не обновлялись или не добавлялись). Обычно именно так и делаю.
Можно полностью очищать локальную таблицу, а затем грузить все заново — но предполагаю, что это не очень хороший способ.
Можно грузить сырые данные во временную таблицу, использовать ее для обновления локальной таблицы, а затем с помощью full outer join получить список неактуальных данных, который можно удалить.
Недавно использовал последний способ (нужна была дополнительная обработка неактуальных данных) — и он оказался на удивление производительным.
Это мне с данными повезло? Или это и в самим деле хороший способ для БД?
По сравнению с первым способом я вижу преимущество в том, что не нужно на каждой синхронизации обновлять поле CHANGED большинства записей.
...
Рейтинг: 0 / 0
Ручная репликация (синхронизация данных с внешним источником) - какой оптимальный способ?
    #39948081
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.Это мне с данными повезло?

Это ты переоценил "низкую производительность" внешнего источника. Или твои запросы к нему
кривы до безобразия.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ручная репликация (синхронизация данных с внешним источником) - какой оптимальный способ?
    #39948094
Фотография кит северных морей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Можно полностью очищать локальную таблицу, а затем грузить все заново — но предполагаю, что это не очень хороший способ.

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

KISS.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ручная репликация (синхронизация данных с внешним источником) - какой оптимальный способ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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