Clickhouse 分布式表删除分区

Clickhouse 分布式表删除分区,clickhouse,Clickhouse,我创建了复制的合并树表,如下所示: 在集群dwh上创建表探测.a( 灌输UInt64, psn UInt64 )ENGINE=ReplicatedMergeTree('/clickhouse/tables/{shard}/probe/a','{replica}')按插入顺序(psn)划分的分区; 然后我创建了一个分布式表,如下所示: CREATE TABLE probe.a_分布在集群dwh上( 灌输UInt64, psn UInt64 )引擎=分布式(dwh、探针、a、rand()); 然

我创建了复制的合并树表,如下所示:

在集群dwh上创建表探测.a(
灌输UInt64,
psn UInt64
)ENGINE=ReplicatedMergeTree('/clickhouse/tables/{shard}/probe/a','{replica}')按插入顺序(psn)划分的分区;
然后我创建了一个分布式表,如下所示:

CREATE TABLE probe.a_分布在集群dwh上(
灌输UInt64,
psn UInt64
)引擎=分布式(dwh、探针、a、rand());
然后,我在每台服务器中添加了宏:

服务器1


1.
server1.com
服务器2


2.
服务器2.com
远程服务器:


server1.com
9000
违约
test12pwd
服务器2.com
9000
违约
test12pwd
我在删除分区时遇到两个问题:

  • 当我使用分布式表删除分区时

    集群dwh上的ALTER TABLE probe.a删除分区“2020-03-13”

  • 我得到一个错误:

    DB::异常:表“a”已复制,但碎片4未复制 根据其集群定义。可能地 真实的被遗忘在黑暗中 集群配置。(版本19.16.14.65)(版本19.16.14.65)

  • 单独删除了分区,但分布式表仍然显示了行的一半,但当我在本地检查时,并没有行

  • 对于不进行复制的数据分片,如何解决分布式表的此问题?

    您使用的是复制表。您必须用
    true
    标记碎片

    
    符合事实的
    server1.com
    9000
    违约
    test12pwd
    符合事实的
    服务器2.com
    9000
    违约
    test12pwd
    
    如果我正确理解您的群集由2个碎片和2个副本组成-每个碎片的副本数应该为2个或更多是错误的。您需要添加两个额外的服务器,以便每台服务器存储两个碎片副本中的一个(碎片数为2),或者使用在一台服务器上存储两个副本(这不是推荐的方式)。查看详细信息-@vladimir,我只使用两个碎片。没有复制。目前不需要复制。我只是因为数据量大而需要分离数据。为什么表探测。定义为ReplicatedMergeTree而不是MergeTree?应该与现在相同,但使用MergeTree引擎。分布式表+相关群集配置保留不变。似乎这是问题所在,因为只添加了一个服务器内部\u复制。
    <dwh>
                <!-- shard 01 -->
                <shard>            
                    <internal_replication>true</internal_replication>
                    <replica>
                        <host>server1.com</host>
                        <port>9000</port>
                        <user>default</user>
                        <password>test12pwd</password>
                    </replica>
                </shard>
    
                <!-- shard 02 -->
                <shard>           
                 <internal_replication>true</internal_replication> 
                    <replica>
                        <host>server2.com</host>
                        <port>9000</port>
                        <user>default</user>
                        <password>test12pwd</password>
                    </replica>
                </shard>
     </dwh>