Configuration du Function Engine
Paramétrage des Function Engines
Quand l’utiliser
- Les fonctions plus performantes avec ClickHouse
- Les fonctions qui tirent parti de l’optimisation SQL
- Les opérations à grande échelle sur les chaînes et les dates/heures
- Les fonctions au comportement spécifique à pandas
- Lorsqu’une compatibilité exacte avec pandas est requise
- Les opérations personnalisées sur les chaînes
Exemple
Fonctions en commun
| Catégorie | Fonctions |
|---|---|
| Chaînes | length, upper, lower, trim, ltrim, rtrim, concat, substring, replace, reverse, contains, startswith, endswith |
| Mathématiques | abs, round, floor, ceil, exp, log, log10, sqrt, pow, sin, cos, tan |
| DateTime | year, month, day, hour, minute, second, dayofweek, dayofyear, quarter |
| Agrégation | sum, avg, min, max, count, std, var, median |
- La configuration explicite de la fonction (si elle est définie)
- Le paramètre global
execution_engine - La sélection automatique selon le contexte
Fonctions réservées à chdb
| Catégorie | Fonctions |
|---|---|
| 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 |
| Conditionnelles | sumIf, countIf, avgIf, minIf, maxIf |
Fonctions disponibles uniquement dans pandas
| Catégorie | Fonctions |
|---|---|
| Apply | Fonctions lambda personnalisées, fonctions définies par l’utilisateur |
| Pivot complexe | Tableaux croisés dynamiques avec des agrégations personnalisées |
| Stack/Unstack | Opérations complexes de remodelage |
| Interpolate | Méthodes d’interpolation de séries temporelles |
correction Dtype
Niveaux de correction
Détails des niveaux de correction
| Niveau | Description | Types corrigés |
|---|---|---|
NONE | Aucune correction automatique | Aucune |
CRITICAL | Corrections essentielles | Gestion de NULL, conversion booléenne |
HIGH (par défaut) | Corrections courantes | Précision des entiers et des flottants, DateTime, encodage des chaînes |
MEDIUM | Davantage de corrections | Précision des décimaux, gestion des fuseaux horaires |
ALL | Correction maximale | Toutes les différences de type |
Quand les types nécessitent une correction
- ClickHouse → pandas : tailles d’entiers différentes (Int64 vs int64)
- pandas → ClickHouse : objets Python vers des types SQL
- NULL handling : pandas NA vs ClickHouse NULL
- Boolean : représentations booléennes différentes
- DateTime : différences de fuseau horaire