代码之家  ›  专栏  ›  技术社区  ›  jagamot

用Java实现数据库表的归档

  •  4
  • jagamot  · 技术社区  · 15 年前

    我的应用程序需要使用Java来归档Sybase和DB2和VICE-A VESA之间的数据库表,并在DB2到DB2和Sybase到Sybase之间存档数据库表。

    我正在努力理解在性能、实现、易用性和可扩展性方面的最佳策略。

    这是我目前的流程-

    • 在XML中定义具有可接受参数(源于Java)的源和目标表。[实际的查询放在XML内部,因为有时参数从Java接受(例如对于WHERE子句条件)
    • 应用程序读取源和目标配置并按顺序执行它们。
    • 当源只是从特定表中删除数据,或者源只是调用存储过程时,目标有时是可选的。
    • 源和目标之间的数据集非常大(以百万计)

    从我的头上看,我可以定义多个源和目标组合之间的依赖关系,并让它们在多个踏板中并行执行。但这会提高任何性能吗(我希望如此)?

    有没有使用Java来实现数据归档的开源框架?关于工具方面的任何其他想法都将非常有用。

    谢谢

    4 回复  |  直到 15 年前
        1
  •  8
  •   bobah    15 年前

    最强大的Java持久性开源框架是Hibernate。您可以从现有的DB(参见Hibernate工具)逆向工程Java模型,并使用Session .RealCead()执行复制。您可以通过使用无状态会话和二级缓存(如果适用)来微调性能。文件是 here

        2
  •  1
  •   Marcus Leon    15 年前

    查看一些数据库复制工具(我们使用 Shadowbase )它们可能有Java API。

    另外,看看这个IBM whitepaper :

    [IBM]提供使用JDBC和 实现通用的SyncML标准 数据库数据复制。

        3
  •  1
  •   Community CDub    8 年前

    Pentaho数据集成对于在数据库之间或从数据库复制数据具有强大的支持。另外,它是开源的,允许你用Java编写插件。

    Migrate from Oracle to MySQL

        4
  •  1
  •   Thorbjørn Ravn Andersen    15 年前

    您需要做的最重要的一件事是禁用JDBC中的自动提交,否则在数据库表中每次插入之后都要提交。破坏了表演。

    但您基本上必须找出同步方案,这样您就可以在决定如何实际执行之前确定哪些记录需要复制。

    推荐文章