Configuração de Function Motor
Configuração de Function Engines
Quando usar
- Funções com melhor desempenho no ClickHouse
- Funções que se beneficiam da otimização por SQL
- Operações de texto/data-hora em larga escala
- Funções com comportamento específico do pandas
- Quando for necessária compatibilidade exata com o pandas
- Operações de texto personalizadas
Exemplo
Funções em comum
| Categoria | Funções |
|---|---|
| Texto | length, upper, lower, trim, ltrim, rtrim, concat, substring, replace, reverse, contains, startswith, endswith |
| Matemática | abs, round, floor, ceil, exp, log, log10, sqrt, pow, sin, cos, tan |
| Data e hora | year, month, day, hour, minute, second, dayofweek, dayofyear, quarter |
| Agregação | sum, avg, min, max, count, std, var, median |
- Configuração explícita da função (se definida)
- Configuração global
execution_engine - Seleção automática com base no contexto
Funções exclusivas do chdb
| Categoria | Funções |
|---|---|
| Array | arraySum, arrayAvg, arraySort, arrayDistinct, groupArray, arrayElement |
| JSON | JSONExtractString, JSONExtractInt, JSONExtractFloat, JSONHas |
| URL | domain, path, protocol, extractURLParameter |
| IP | IPv4StringToNum, IPv4NumToString, isIPv4String |
| Geo | greatCircleDistance, geoDistance, geoToH3 |
| Hash | cityHash64, xxHash64, sipHash64, MD5, SHA256 |
| Condicional | sumIf, countIf, avgIf, minIf, maxIf |
Funções exclusivas do pandas
| Categoria | Funções |
|---|---|
| Apply | Funções lambda personalizadas, funções definidas pelo usuário |
| Complex Pivot | Tabelas dinâmicas com agregações personalizadas |
| Stack/Unstack | Operações complexas de remodelagem |
| Interpolate | Métodos de interpolação de séries temporais |
Correção de Dtype
Níveis de correção
Detalhes do nível de correção
| Nível | Descrição | Tipos corrigidos |
|---|---|---|
NONE | Nenhuma correção automática | Nenhum |
CRITICAL | Correções essenciais | Tratamento de NULL, conversão de booleanos |
HIGH (padrão) | Correções comuns | Precisão de inteiros/números de ponto flutuante, data e hora, codificação de strings |
MEDIUM | Mais correções | Precisão decimal, tratamento de fuso horário |
ALL | Correção máxima | Todas as diferenças de tipo |
Quando os tipos precisam ser corrigidos
- ClickHouse → pandas: Diferentes tamanhos de inteiros (Int64 vs int64)
- pandas → ClickHouse: Objetos Python para tipos SQL
- Tratamento de NULL: NA do pandas vs NULL do ClickHouse
- Booleano: Diferentes representações booleanas
- DateTime: Diferenças de fuso horário