Архивирование таблиц базы данных с использованием Java

StackOverflow https://stackoverflow.com/questions/2472832

  •  20-09-2019
  •  | 
  •  

Вопрос

Мое приложение требует архивирования таблиц базы данных между sybase и db2 и наоборот, а также внутри (db2 в db2 и sybase в sybase) с помощью java.

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

Вот мой текущий процесс -

  • Таблицы источника и назначения с допустимыми параметрами (из Java) определяются в XML.[фактический запрос помещается внутри XML, потому что иногда параметры принимаются из Java (например, для условия предложенияwhere)]
  • приложение считывает конфигурации источника и назначения и выполняет их последовательно.
  • Назначение иногда не является обязательным, когда источник просто удаляет данные из определенной таблицы или когда источник просто вызывает хранимую процедуру.
  • набор данных между источником и местом назначения чрезвычайно велик (в миллионах)

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

Существуют ли какие-либо платформы с открытым исходным кодом для архивирования данных с использованием Java?Любые другие мысли по поводу инструментов будут очень полезны.

Спасибо

Это было полезно?

Решение

Самая мощная платформа с открытым исходным кодом для сохранения Java — Hibernate.Вы можете перепроектировать модель Java из существующей базы данных (см. Инструменты Hibernate) и выполнить репликацию с помощью Session.replication().Вы можете точно настроить производительность, используя сеансы без отслеживания состояния и кэширование второго уровня, где это применимо.Документация здесь

Другие советы

Посмотрите на некоторые инструменты репликации базы данных (мы используем База теней).У них могут быть Java API.

Также ознакомьтесь с этим IBM белая бумага:

IBM] предлагает решение с использованием JDBC и стандарта SYNCML для достижения репликации данных общей базы данных.

Pentaho Data Integration имеет надежную поддержку копирования данных между базами данных или из них.Кроме того, он имеет открытый исходный код и позволяет писать плагины на Java.

Миграция с Oracle на MySQL

Самая важная вещь, которую вам нужно сделать, — это отключить автоматическую фиксацию в JDBC, поскольку в противном случае вы бы фиксировали данные после каждой вставки в таблицу базы данных.Это портит производительность.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top