AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 292523
Accepted
Kokizzu
Kokizzu
Asked: 2021-06-01 00:52:35 +0800 CST2021-06-01 00:52:35 +0800 CST 2021-06-01 00:52:35 +0800 CST

Replicação de Clickhouse sem Sharding

  • 772

Como fazer replicação (1 master, 2 slave por exemplo) no ClickHouse sem sharding? Tudo o que posso ver nos exemplos é sempre ter fragmentação:

  • Apresentação da Altinidade
  • Exemplo de composição do Docker
  • Blogue procurado pelo programador
  • Blog QuidQuid
  • Blogue FatalErrors
  • artigo zergon321 no dev.to
  • Edição 2161 da Clickhouse, mas nenhum exemplo
replication clickhouse
  • 1 1 respostas
  • 730 Views

1 respostas

  • Voted
  1. Best Answer
    Kokizzu
    2021-06-01T01:17:02+08:002021-06-01T01:17:02+08:00

    Nevermind, encontrei em outro post do Altinity Blog

    basta criar um docker-compose.ymlarquivo:

    version: '3.3'
    services:
      # from rongfengliang/clickhouse-docker-compose
      # from https://github.com/abraithwaite/clickhouse-replication-example/blob/master/docker-compose.yaml
      # from http://blog.quidquid.fr/2020/06/clickhouse-multi-master-replication/
      # from https://altinity.com/blog/2017/6/5/clickhouse-data-distribution
      ch1:
        image: yandex/clickhouse-server
        restart: always
        volumes:
          - ./config.xml:/etc/clickhouse-server/config.d/local.xml
          - ./macro1.xml:/etc/clickhouse-server/config.d/macros.xml
          - ./data/1:/var/lib/clickhouse    
        ports: 
          - '18123:8123'
          - '19000:9000'
          - '19009:9009'
        ulimits:
          nproc: 65536
          nofile:
            soft: 252144
            hard: 252144
      ch2:
        image: yandex/clickhouse-server
        restart: always
        volumes:
          - ./config.xml:/etc/clickhouse-server/config.d/local.xml
          - ./macro2.xml:/etc/clickhouse-server/config.d/macros.xml
          - ./data/2:/var/lib/clickhouse
        ports: 
          - '28123:8123'
          - '29000:9000'
          - '29009:9009'
        ulimits:
          nproc: 65536
          nofile:
            soft: 252144
            hard: 252144
      ch3:
        image: yandex/clickhouse-server
        restart: always
        volumes:
          - ./config.xml:/etc/clickhouse-server/config.d/local.xml
          - ./macro3.xml:/etc/clickhouse-server/config.d/macros.xml
          - ./data/3:/var/lib/clickhouse
        ports: 
          - '38123:8123'
          - '39000:9000'
          - '39009:9009'
        ulimits:
          nproc: 65536
          nofile:
            soft: 252144
            hard: 252144
      zookeeper:
        image: zookeeper
    

    e config.xmlarquivo:

    <yandex>
        <remote_servers>
            <replicated>
                <shard>
                    <internal_replication>true</internal_replication>
                    <replica>
                        <host>ch1</host>
                        <port>9000</port>
                    </replica>
                    <replica>
                        <host>ch2</host>
                        <port>9000</port>
                    </replica>
                    <replica>
                        <host>ch3</host>
                        <port>9000</port>
                    </replica>
                </shard>
            </replicated>
        </remote_servers>
        <zookeeper>
            <node>
                <host>zookeeper</host>
                <port>2181</port>
            </node>
        </zookeeper>
    </yandex>
    

    e 3 macroX.xmlonde X=1,2,3 (substitua chX por ch1, ch2, ou ch3):

    <yandex>
        <macros replace="replace">
            <cluster>cluster1</cluster>
            <replica>chX</replica>
        </macros>
    </yandex>
    

    em seguida, crie um datadiretório e inicie o docker-compose up.

    você pode criar uma tabela usando este comando em um dos clusters clickhouse-client --port 19000:

    SELECT * FROM system.clusters;
    CREATE DATABASE db1 ON CLUSTER replicated;
    SHOW DATABASES;
    USE db1;
    
    CREATE TABLE IF NOT EXISTS db1.sbr2 ON CLUSTER replicated
    ( seller_id UInt64
    , recap_date Date
    , last_updated_at DateTime 
    , products_view UInt64 
    , visitor_count UInt32 
    , chat_count UInt32 
    , trx_count UInt32
    , trx_sum UInt64 
    ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/{cluster}/tables/sbr2', 
    '{replica}')
    PARTITION BY modulo( seller_id, 1000 )
    ORDER BY (seller_id, recap_date); 
    
    INSERT INTO db1.sbr2
    (seller_id, recap_date, visitor_count, products_view, chat_count, trx_count, trx_sum, last_updated_at)
    VALUES (1,'2021-05-31',1,2,3,4,5,NOW());
    

    em seguida, tente conectar-se a outra réplica e selecione as linhas inseridas anteriormente:clickhouse-client --port 29000

    SELECT * FROM db1.sbr2;
    
    ┌─seller_id─┬─recap_date─┬─────last_updated_at─┬─products_view─┬─visitor_count─┬─chat_count─┬─trx_count─┬─trx_sum─┐
    │         1 │ 2021-05-31 │ 2021-05-31 09:43:30 │             2 │             1 │          3 │         4 │       5 │
    └───────────┴────────────┴─────────────────────┴───────────────┴───────────────┴────────────┴───────────┴─────────┘
    ↘ Progress: 1.00 rows, 42.00 B (132.02 rows/s., 5.54 KB/s.)  99%
    1 rows in set. Elapsed: 0.008 sec.
    
    • 1

relate perguntas

  • Como você pode impedir que o escravo MySQL replique as alterações no banco de dados 'mysql'?

  • É imprudente executar a replicação no mesmo servidor físico?

  • Existe uma maneira de medir o atraso de replicação no MySQL com uma resolução inferior a 1 segundo?

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve