我有一个场景,可以在一次触发中加载4000万到1亿条记录。因此,能否请您提出从Greenplum获取记录并将其插入PostgreSQL的最佳方法。
另外,请提出建议,因为增加内存大小会增加负载。
目前,我正在使用batchUpdate()
和JDBCTemplate
postgresqlJdbcTemplate.batchUpdate(insertOpportunitiesDataQuery, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
Opportunities Opportunities = OpportunitiesList.get(i);
ps.setString(1, Opportunities.getOpptyId());
ps.setString(2, Opportunities.getOpptySalesStage());
ps.setDouble(3, Opportunities.getLineAmountUsd());
ps.setString(4, Opportunities.getMustWinIndicator());
ps.setString(5, Opportunities.getLineType());
ps.setInt(6, Opportunities.getExpectedOrderYear());
ps.setInt(7, Opportunities.getExpectedOrderQuarter());
}
@Override
public int getBatchSize() {
return OpportunitiesList.size();
}
});