Clickhouse Benchmark¶
Instalação ClickBench¶
sudo apt install -y git wget curl
git clone https://github.com/ClickHouse/ClickBench.git
Dentro do diretório ClickBench exitem subdiretórios com nome dos bancos, os quais contém os scripts de benchmark.
Benchmark no Clickhouse¶
Entre no subdiretório clickhouse
cd Clickbench/clickhouse
Dentro desse diretório existem duas possibilidades, rodar o executável ./benchmarck ou fazer manualmente o teste com alguns comandos do script.
Implicações ao rodar o script de benchmarck¶
È de extrema importância verificar o conteúdo dos scripts
Dentro do script benchmarck existe a instalação e inicialização do clickhouse, se o clickhouse ja estiver instalado e inicializado, comente ou retire as linhas.
curl https://clickhouse.com/ | sh sudo ./clickhouse install --noninteractive sudo clickhouse start
Se o benchmarck ja tiver sido rodado ao menos uma vez, o arquivo de teste hits.tsv já estará no diretório de teste, então é importante comentar ou retirar as linhas que baixam e descompactam o arquivo.
wget --no-verbose --continue 'https://datasets.clickhouse.com/hits_compatible/hits.tsv.gz' gzip -d hits.tsv.gz
Ao se rodar o script benchmarck, a tabela será criada e preenchida. Dessa maneira, se o script for rodado novamente com as linhas de criação da tabela haverá um erro ao criar a tabela, pois ela já existe, e a tabela receberá denovo o mesmo conteúdo que ja foi inserido na mesma. (A tabela crescerá linearmente desnecessariamente enquanto essas linhas estiverem presentes depois do primeiro teste)
clickhouse-client < create"$SUFFIX".sql clickhouse-client --time --query "INSERT INTO hits FORMAT TSV" < hits.tsv
Rodando o benchmarck
./benchmarck <arg>
Pode-se usar 3 argumentos para os testes de benchmarck no clickhouse: “”, “tuned”, “tuned-memory”. Ao rodar o benchmarck sem nenhum argumento, será rodado o teste padrão.
Rodar manualmente o teste¶
È necessário criar uma tabela, preenche-lá e rodar o script run. Esses comandos podem ser copiados de dentro do próprio script, inclusive salvar e descompactar o arquivo tsv que irá ser copiado para o banco.
./run <arg>
Pode-se usar 3 argumentos para os testes de benchmarck no clickhouse: “”, “tuned”, “tuned-memory”. Ao rodar o benchmarck sem nenhum argumento, será rodado o teste padrão.
Resultados¶
Depois de executar o run.sh, os resultados de cada query aparecerá na tela com seguinte formato:
[0.008, 0.004, 0.004]
Há 3 acessos em cada query e o tempo é dado em segundos. Os resultados ficam salvos no arquivo results.csv.
ClickBench e Postgres¶
É possível fazer o benchmarck no banco Postgres usando os mesmos comandos dentro do script.
ATENÇÂO: dentro do sprit de benchmarck do postgres há uma linha “chmod 777 ~ hits.tsv” que precisa ser retirada
Links¶
[1] https://learn.arm.com/learning-paths/servers-and-cloud-computing/clickhouse/clickhouse/
Dependências¶
[1] Clickhouse, v24.1.5.6-stable, Sistema de Gerênciamento de Banco de Dados colunar
[2] Clickbench, -, Repositório para benchmarks