Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon redshift 红移:何时可以选择插入的数据?_Amazon Redshift - Fatal编程技术网

Amazon redshift 红移:何时可以选择插入的数据?

Amazon redshift 红移:何时可以选择插入的数据?,amazon-redshift,Amazon Redshift,我有一个系统,可以将一些行写入红移。一旦完成(使用JDBC,所以代码行一结束),我们就向队列发送一个id,另一个系统将获取该id并从Redshift读取这些行和相关行 这种读数通常发生在同一秒。问题是,大约有10%的时间它找不到(显然)刚刚写入的数据。数据确实存在。以后再处理这些项目会得到不同的(正确的)结果 所以,我的问题是红移是保证即时数据的一致性,还是我们的系统只是在读取之前等待?如果它必须等待多长时间? < p>我相信在收到红移确认之前,你不应该考虑行。p> 时间可能取决于集群负载、对该

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

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


所以,我的问题是红移是保证即时数据的一致性,还是我们的系统只是在读取之前等待?如果它必须等待多长时间?

< p>我相信在收到红移确认之前,你不应该考虑行。p> 时间可能取决于集群负载、对该表的其他写入等


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

一旦提交了更改,这些更改就应该可用,但是,自动提交行为可能会在插入/更新完成和提交完成之间造成某种延迟


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

不幸的是,我们需要等待JDBC的确认。我们刚刚把redshift换成了标准的postgres安装,一切都按预期进行,代码一点也没有改变。是的,你当初为什么要用redshift呢?