最终一致性—如何知道数据何时已插入clickhouse

ghhaqwfi  于 2021-07-15  发布在  ClickHouse
关注(0)|答案(1)|浏览(640)

我知道clickhouse最终是一致的。因此,一旦insert调用返回,并不意味着数据将出现在select查询中。
这是否适用于独立的clickhouse(无分发,无复制)?
我理解数据复制最终一致性的概念,但它是否适用于分发但不复制?
使用分布式+复制的clickhouse,有什么方法可以确保安全地查找某些insert?
基本上我没有找到太多关于这个主题的信息,所以也许我问的不是最好的问题。请随意启发我。

piah890a

piah890a1#

不,但是单节点设置也不应该被认为是可靠的。
默认情况下是的,您将插入到客户端连接到的节点(可能通过某个负载平衡器),分布式表将异步地将每个数据段转发到它所属的节点。这个 insert_distributed_sync=1 设置将使客户端同步等待。
插入时使用 ***MergeTree 直接(不分发)碎片表 insert_quorum=2 设置(如果有3个副本)并在出现错误时使用完全相同的批无限重试(重试时可以使用不同的副本,因为存在基于批哈希的重复数据消除)。那就用吧 select_sequential_consistency=1 设置。

相关问题