Amazon redshift 红移:何时可以选择插入的数据?
我有一个系统,可以将一些行写入红移。一旦完成(使用JDBC,所以代码行一结束),我们就向队列发送一个id,另一个系统将获取该id并从Redshift读取这些行和相关行 这种读数通常发生在同一秒。问题是,大约有10%的时间它找不到(显然)刚刚写入的数据。数据确实存在。以后再处理这些项目会得到不同的(正确的)结果Amazon redshift 红移:何时可以选择插入的数据?,amazon-redshift,Amazon Redshift,我有一个系统,可以将一些行写入红移。一旦完成(使用JDBC,所以代码行一结束),我们就向队列发送一个id,另一个系统将获取该id并从Redshift读取这些行和相关行 这种读数通常发生在同一秒。问题是,大约有10%的时间它找不到(显然)刚刚写入的数据。数据确实存在。以后再处理这些项目会得到不同的(正确的)结果 所以,我的问题是红移是保证即时数据的一致性,还是我们的系统只是在读取之前等待?如果它必须等待多长时间? < p>我相信在收到红移确认之前,你不应该考虑行。p> 时间可能取决于集群负载、对该
所以,我的问题是红移是保证即时数据的一致性,还是我们的系统只是在读取之前等待?如果它必须等待多长时间? < p>我相信在收到红移确认之前,你不应该考虑行。p> 时间可能取决于集群负载、对该表的其他写入等
在将id发送到队列之前,请尝试通过JDBC等待成功确认。一旦提交了更改,这些更改就应该可用,但是,自动提交行为可能会在插入/更新完成和提交完成之间造成某种延迟
我建议您确保在事务中包装任何数据库更改,并等待提交完成,然后再向您引用的其他系统发送消息。不幸的是,我们需要等待JDBC的确认。我们刚刚把redshift换成了标准的postgres安装,一切都按预期进行,代码一点也没有改变。是的,你当初为什么要用redshift呢?