Configuración de Function Motor
Configurar Function Motors
Cuándo usar
- Funciones con mejor rendimiento en ClickHouse
- Funciones que se benefician de la optimización SQL
- Operaciones de cadenas de texto/fecha y hora a gran escala
- Funciones con comportamiento específico de pandas
- Cuando se requiere compatibilidad exacta con pandas
- Operaciones de cadenas de texto personalizadas
Ejemplo
Funciones coincidentes
| Categoría | Funciones |
|---|---|
| Cadenas | length, upper, lower, trim, ltrim, rtrim, concat, substring, replace, reverse, contains, startswith, endswith |
| Matemáticas | abs, round, floor, ceil, exp, log, log10, sqrt, pow, sin, cos, tan |
| Fecha y hora | year, month, day, hour, minute, second, dayofweek, dayofyear, quarter |
| Agregación | sum, avg, min, max, count, std, var, median |
- La configuración explícita de la función (si se ha definido)
- La configuración global de execution_engine
- La selección automática según el contexto
Funciones solo de chdb
| Categoría | Funciones |
|---|---|
| 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 |
Funciones exclusivas de pandas
| Categoría | Funciones |
|---|---|
| Aplicar | Funciones lambda personalizadas, funciones definidas por el usuario |
| Pivot complejo | Tablas dinámicas con agregaciones personalizadas |
| Stack/Unstack | Operaciones complejas de reorganización |
| Interpolate | Métodos de interpolación de series temporales |
Corrección de dtype
Niveles de corrección
Detalles del nivel de corrección
| Nivel | Descripción | Tipos corregidos |
|---|---|---|
NONE | Sin corrección automática | Ninguno |
CRITICAL | Correcciones esenciales | Manejo de NULL, conversión de valores booleanos |
HIGH (predeterminado) | Correcciones habituales | Precisión de enteros/flotantes, fecha y hora, codificación de cadenas |
MEDIUM | Más correcciones | Precisión decimal, manejo de zonas horarias |
ALL | Corrección máxima | Todas las diferencias de tipos |
Cuando es necesario corregir los tipos
- ClickHouse → pandas: Distintos tamaños de enteros (Int64 vs int64)
- pandas → ClickHouse: Objetos de Python convertidos a tipos SQL
- Manejo de NULL: pandas NA vs ClickHouse NULL
- Boolean: Distintas representaciones booleanas
- DateTime: Diferencias de zona horaria