https://www.canva.com/design/DAGiCegB5-4/Ki-vGcPWrTa8rZbnfdZmOQ/view

No ClickHouse, o paralelismo ocorre principalmente devido à sua arquitetura de execução em múltiplas threads e distribuição em clusters. Vamos abordar os principais métodos para criar e testar engines paralelas e não paralelas.


1. Testando Engines Paralelas e Não Paralelas

ClickHouse possui diferentes Storage Engines que podem ser testados para verificar diferenças no desempenho paralelo.

1.1 Engine Não Paralela: TinyLog

CREATE TABLE test_tinylog (
    id UInt32,
    name String
) ENGINE = TinyLog;

INSERT INTO test_tinylog VALUES (1, 'Alice'), (2, 'Bob');

SELECT * FROM test_tinylog;

1.2 Engine Paralela: MergeTree

CREATE TABLE test_mergetree (
    id UInt32,
    name String,
    timestamp DateTime
) ENGINE = MergeTree()
ORDER BY id;

INSERT INTO test_mergetree VALUES (1, 'Alice', now()), (2, 'Bob', now());

SELECT * FROM test_mergetree;


2. Como Fazer Paralelismo no ClickHouse

2.1 Configurar Threads Paralelas

ClickHouse já distribui automaticamente as consultas em múltiplas threads, mas podemos controlar isso manualmente:

SET max_threads = 8;  -- Definir número de threads de execução
SELECT * FROM test_mergetree;

2.2 Usar Engine Distributed para Distribuição em Cluster

Se você estiver operando um cluster, pode distribuir consultas entre múltiplos nós: