【发布时间】:2018-09-02 06:31:18
【问题描述】:
我是 hiberante JPA 的新手。我正在研究 oracle 到 postgres 的迁移,我们没有使用 aws dms 服务进行数据迁移。我们希望继续使用 Java 来复制超过 100 万条记录的表。我有以下情况的问题。
表 A - 甲骨文 表 B - PostGres
我正在使用 ScrollableResults 从 Oracle 中提取记录。一旦我从 Oracle 获得数据,我需要在 postgres 数据库中循环一个值以获取来自 Oracle 的数据,然后再执行插入到 postgres 数据库中。
我认为首先@ColumnTransformer 会有所帮助,但它没有帮助,因为我不知道如何在 ColumnTransformer 表达式上引用 oracle 中的数据。
所以最后继续编写带有值和子查询的普通插入查询以进行查找。还将 hibernate.jdbc.batch_size 设置为 100。
我以这种方式执行程序,10k 记录需要 5 分钟,我觉得这很慢。
对于这个问题有没有其他解决方案来提高性能。
感谢大家的帮助
【问题讨论】:
-
如果您只需要将数据从Oracle移动到Postgres,您可以使用
foreign data wrapper -
谢谢。但是我们使用的是 aws aurora rds db,并且对数据库的控制非常少,因为它是由亚马逊维护的。此外,我们的组织不允许在没有 TLS/SSL 加密的情况下从 postgres 连接到 oracle,因为数据对于本地的 oracle db 非常敏感。而且我们的 DBA 不鼓励从 postgres db 连接到 oracle db。
标签: oracle postgresql hibernate