Cliente ClickHouse
client-v2. Ele tem uma API mais clara, uma base de código mais enxuta e melhorias de desempenho, além de melhor suporte aos formatos do ClickHouse (principalmente RowBinary e Native). O JDBC usará esse cliente em breve.
Tipos de dados compatíveis
| Tipo de dado | Suporte do Client V2 | Suporte do Client V1 |
|---|---|---|
| Int8 | ✔ | ✔ |
| Int16 | ✔ | ✔ |
| Int32 | ✔ | ✔ |
| Int64 | ✔ | ✔ |
| Int128 | ✔ | ✔ |
| Int256 | ✔ | ✔ |
| UInt8 | ✔ | ✔ |
| UInt16 | ✔ | ✔ |
| UInt32 | ✔ | ✔ |
| UInt64 | ✔ | ✔ |
| UInt128 | ✔ | ✔ |
| UInt256 | ✔ | ✔ |
| Float32 | ✔ | ✔ |
| Float64 | ✔ | ✔ |
| Decimal | ✔ | ✔ |
| Decimal32 | ✔ | ✔ |
| Decimal64 | ✔ | ✔ |
| Decimal128 | ✔ | ✔ |
| Decimal256 | ✔ | ✔ |
| Bool | ✔ | ✔ |
| String | ✔ | ✔ |
| FixedString | ✔ | ✔ |
| Nullable | ✔ | ✔ |
| Date | ✔ | ✔ |
| Date32 | ✔ | ✔ |
| DateTime | ✔ | ✔ |
| DateTime32 | ✔ | ✔ |
| DateTime64 | ✔ | ✔ |
| Interval | ✗ | ✗ |
| Enum | ✔ | ✔ |
| Enum8 | ✔ | ✔ |
| Enum16 | ✔ | ✔ |
| Array | ✔ | ✔ |
| Map | ✔ | ✔ |
| Nested | ✔ | ✔ |
| Tuple | ✔ | ✔ |
| UUID | ✔ | ✔ |
| IPv4 | ✔ | ✔ |
| IPv6 | ✔ | ✔ |
| Object | ✗ | ✔ |
| Point | ✔ | ✔ |
| Nothing | ✔ | ✔ |
| MultiPolygon | ✔ | ✔ |
| Ring | ✔ | ✔ |
| Polygon | ✔ | ✔ |
| SimpleAggregateFunction | ✔ | ✔ |
| AggregateFunction* | ✔ | ✔ |
| Variant | ✔ | ✗ |
| Dynamic | ✔ | ✗ |
| JSON | ✔ | ✗ |
Suporte parcial
- AggregateFunction — Apenas
groupBitmapé compatível com leituras binárias diretas. Para outras funções de agregação (min,max,avgetc.), use combinadores-Mergena sua consulta (por exemplo,minMerge(),avgMerge()) para resolver o estado no lado do servidor.SELECT * FROM table ...não é compatível com colunas do tipoAggregateFunction.
Observações sobre tipos de dados
- Decimal —
SET output_format_decimal_trailing_zeros=1na versão 21.9+ para manter a consistência. - Enum — pode ser tratado tanto como string quanto como inteiro.
- UInt64 — mapeado para
longno client-v1.
Funcionalidades
| Nome | Client V2 | Client V1 | Comentários |
|---|---|---|---|
| Conexão HTTP | ✔ | ✔ | |
| Compressão HTTP (LZ4) | ✔ | ✔ | |
| Compressão controlada pela aplicação | ✔ | ✗ | |
| Compressão da resposta do servidor - LZ4 | ✔ | ✔ | |
| Compressão da requisição do cliente - LZ4 | ✔ | ✔ | |
| HTTPS | ✔ | ✔ | |
| Certificado SSL do cliente (mTLS) | ✔ | ✔ | |
| Proxy HTTP | ✔ | ✔ | |
| SerDe de POJO | ✔ | ✗ | |
| Pool de conexões | ✔ | ✔ | Quando o Apache HTTP Client é usado |
| Parâmetros nomeados | ✔ | ✔ | |
| Nova tentativa em caso de falha | ✔ | ✔ | |
| Failover | ✗ | ✔ | |
| Balanceamento de carga | ✗ | ✔ | |
| Descoberta automática do servidor | ✗ | ✔ | |
| Comentário de log | ✔ | ✔ | |
| Papéis de sessão | ✔ | ✔ | |
| Autenticação SSL do cliente | ✔ | ✔ | |
| Configuração de SNI | ✔ | ✗ | |
| Fuso horário da sessão | ✔ | ✔ |
Compatibilidade
- Todos os projetos neste repositório são testados com todas as versões LTS ativas do ClickHouse.
- Política de suporte
- Recomendamos atualizar o cliente continuamente para não perder correções de segurança nem novas melhorias.
- Se você tiver algum problema com a migração para a API v2, crie uma issue e responderemos!
Logging
Logback ou Log4j.
Por exemplo, se você estiver usando Maven, poderá adicionar a seguinte dependência ao arquivo pom.xml:
pom.xml
Configurando o logging
Logback, você pode configurar o logging em um arquivo chamado logback.xml:
logback.xml