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.
ClickHouse possui diferentes Storage Engines que podem ser testados para verificar diferenças no desempenho paralelo.
CREATE TABLE test_tinylog (
id UInt32,
name String
) ENGINE = TinyLog;
INSERT INTO test_tinylog VALUES (1, 'Alice'), (2, 'Bob');
SELECT * FROM test_tinylog;
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;
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;
Distributed para Distribuição em ClusterSe você estiver operando um cluster, pode distribuir consultas entre múltiplos nós: