Fonte original: https://bohutang.me/2020/06/05/clickhouse-and-friends-development/
Por acaso, tive uma comunicação offline com a equipe ClickHouse. Alexey mencionou a filosofia de design da ClickHouse:
O produto deve resolver o problema real
E fazer melhor do que outros
Um modelo para resolver problemas de negócios com pensamento de engenharia!
Para os usuários, o que interessa não é a alta tecnologia que está no céu ou no céu. Eles só precisam de uma solução que possa resolver seus próprios problemas. Isso é muito raro na comunidade de código aberto e cresce com a força "bárbara".
Então, eu estava cheio de curiosidade sobre esta arma que exala o sabor de vodka e participei da comunidade ClickHouse para descobrir. A primeira sensação é que ela é aberta, amigável e poderosa (AK47 vs CK16, código aberto ClickHouse 2016).
Este artigo começa com a compilação e teste, e então como contribuir com o Patch para a comunidade. Espero que seja útil para aqueles alunos que desejam participar da comunidade CK.
Como compilar e testar o ClickHouse localmente?
Aquisição do código fonte
|
|
Preparação para compilação
|
|
Comece a compilar
|
|
método de teste
Os testes ClickHouse são detalhados no documento oficial de desenvolvimento / testes (https://github.com/ClickHouse/ClickHouse/blob/master/docs/en/development/tests.md). Aqui estão três modos de teste comumente usados :
1. Testes funcionais
Teste de função, usado principalmente para o teste de função interna do ClickHouse, método: entrada de um arquivo sql, saída de um resultado, semelhante ao mtr no MySQL, conjunto de teste (https://github.com/ClickHouse/ClickHouse/tree/master/tests/queries )
|
|
2. Testes de integração
Teste de integração, usado principalmente para testes envolvendo serviços de terceiros, como MySQL / Postgres / MongoDB, etc., agendamento e operação de agendamento (pytest) em contêineres, coleta de teste
Como há muitos módulos envolvidos, é difícil construir um ambiente de teste integrado. Recomenda-se usar a imagem oficial do docker. Por exemplo, para executar o teste de integração definido em test_mysql_protocol:
|
|
3. Testes de Unidade
O teste de unidade é usado principalmente para testar módulos de código. O conjunto de teste está no diretório de testes de cada módulo, como: Core / tests (https://github.com/ClickHouse/ClickHouse/tree/master/src/Core/tests)
Se você quiser entender como um módulo funciona, é altamente recomendável consultar o diretório de testes do módulo. Por exemplo, se você quiser entender o mecanismo de funcionamento do processador, rastreie e depure Processadores / testes / (https://github.com/ClickHouse/ClickHouse/ árvore / mestre / src / Core / testes).
Como fornecer Patch para a comunidade ClickHouse?
1. garfo
Primeiro bifurque um código ClickHouse em seu github, como https://github.com/BohuTANG/ClickHouse
2. Clone para local
|
|
3. Crie uma nova filial
|
|
4. Desenvolvimento de funções
Os desenvolvedores podem enviar uma solicitação de rascunho de pull para o oficial, o github mostrará que a solicitação de pull está no estado de rascunho e o oficial não pode mesclar
5. podem ser tags testd
Esperando que o Upstream atinja o rótulo [pode ser testado]. Depois que os loucos do CI forem marcados, eles funcionarão com força e levará dezenas de horas para executar uma rodada.
Ajude os desenvolvedores a encontrar alguns erros no estilo, compilação e teste do código, para que os desenvolvedores possam iterar e corrigir em seus próprios ramos.
Se você apenas modificar o erro de digitação, esta tag Upstream geralmente não é adicionada.
6. Concluído
O desenvolvimento é concluído, o teste está OK, o Draft é promovido a Pull Request formal e a Upstraem Review é aguardada.
7. Unir para Mestre
Se o Upstream for aprovado, seu código será mesclado com o Master, parabéns por se tornar um contribuidor ClickHouse
8. Assuntos que precisam de atenção
A iteração do ClickHouse Upstream é muito rápida. Preste mais atenção ao progresso do branch master e tente manter o código do branch sincronizado com o master. Caso contrário, se Upstream Docker for atualizado, seu próprio teste pode falhar.
Recomenda-se ler doc / development (https://github.com/ClickHouse/ClickHouse/tree/master/docs/en/development).
O texto completo acabou.
Aproveite o ClickHouse :)
A aula "MySQL Core Optimization" do professor Ye foi atualizada para o MySQL 8.0, leia o código para iniciar a jornada de prática do MySQL 8.0