1

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

此读数通常发生在同一秒内。问题是,大约 10% 的时间它找不到(显然)刚刚写入的数据。数据肯定在那里。以后再处理这些项目会得到不同的(正确的)结果。

所以,我的问题是 Redshift 能保证即时的数据一致性,还是我们的系统只需要等待才能读取?如果必须等待,要等多久?

4

2 回答 2

0

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

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

于 2014-02-13T21:22:49.690 回答
0

我相信在收到 Redshift 的确认之前,您不应该考虑写入的行。

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

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

于 2013-11-19T16:15:26.577 回答