Sobes.tech
Senior

Եվ շարդերում, ռեպլիկներում, ինչպես էր կազմաձևված ClickHouse-ը?

sobes.tech AI

Պատասխան AI-ից

ClickHouse-ի sharding և replikացիայի կոնֆիգուրացիայի ժամանակ սովորաբար օգտագործվում են config.xml և users.xml ֆայլերի պարամետրերը: Shard-ների համար սահմանվում են առանձին կլաստերներ՝ նշելով սերվերների հասցեները, իսկ replik-ների համար կոնֆիգուրացվում է ZooKeeper-ը, որը ապահովում է տվյալների համակարգում և սինխրոնիզացիայում ռեպլիկների միջև:

Երկու shard սերվերներ և replik-ներ պարունակող կլաստերի օրինակ՝

<remote_servers>
    <կլաստ_անուն>
        <shard>
            <replika>
                <host>shard1-replica1-host</host>
                <port>9000</port>
            </replika>
            <replika>
                <host>shard1-replica2-host</host>
                <port>9000</port>
            </replika>
        </shard>
        <shard>
            <replika>
                <host>shard2-replica1-host</host>
                <port>9000</port>
            </replika>
            <replika>
                <host>shard2-replica2-host</host>
                <port>9000</port>
            </replika>
        </shard>
    </կլաստ_անուն>
</remote_servers>

<zookeeper>
    <node>
        <host>zookeeper1</host>
        <port>2181</port>
    </node>
    <node>
        <host>zookeeper2</host>
        <port>2181</port>
    </node>
</zookeeper>

Այսպիսով, յուրաքանչյուր shard պարունակում է մի քանի ռեպլիկ, որոնք սինխրոնիզացվում են ZooKeeper-ի միջոցով: Տվյալների բազաներում օգտագործվում է ReplicatedMergeTree շարժիչը, որը նշում է ZooKeeper-ում ուղին և ռեպլիկի անունը, ինչը ապահովում է կոնսիստենտություն և թերությունների դիմաց դիմակայություն։