Redshift:插件中的数据何时可供选择?

时间:2013-11-14 18:25:23

标签: amazon-redshift

我有一个系统可以将一些行写入Redshift。一旦完成(使用JDBC,所以一旦代码行完成),我们将一个id发送到队列,另一个系统获取此id并从Redshift读取这些行和相关行。

这种阅读通常在同一秒内发生。问题是,大约有10%的时间它找不到(显然)刚才写的数据。数据绝对存在。在以后重新处理这些项目会获得不同的(正确的)结果。

所以,我的问题是Redshift是否保证即时数据的一致性,或者我们的系统是否必须在阅读之前等待?如果必须等待多长时间?

2 个答案:

答案 0 :(得分:0)

我相信在收到Redshift的确认之前,你不应该考虑这一行。

时间可能取决于群集负载,对该表的其他写入等。

在将id发送到队列之前,尝试通过JDBC等待成功确认。

答案 1 :(得分:0)

一旦提交了更改,它们就应该可用,但是,自动提交行为可能会导致INSERT / UPDATE完成和提交完成之间出现某种延迟。

我建议您确保在事务中包装任何数据库更改并等待COMMIT完成,然后再发送您引用的其他系统。