函数引擎配置
配置 函数引擎
何时使用
- 在 ClickHouse 中性能更优的函数
- 能从 SQL 优化中受益的函数
- 大规模字符串/日期时间操作
- 具有 pandas 特有行为的函数
- 需要严格兼容 pandas 时
- 自定义字符串操作
示例
重合函数
| 类别 | 函数 |
|---|---|
| String | length, upper, lower, trim, ltrim, rtrim, concat, substring, replace, reverse, contains, startswith, endswith |
| 数学 | abs, round, floor, ceil, exp, log, log10, sqrt, pow, sin, cos, tan |
| 日期时间 | year, month, day, hour, minute, second, dayofweek, dayofyear, quarter |
| 聚合 | sum, avg, min, max, count, std, var, median |
- 显式的函数配置 (如果已设置)
- 全局
execution_engine设置 - 根据上下文自动选择
仅 chdb 可用的函数
| 类别 | 函数 |
|---|---|
| 数组 | arraySum, arrayAvg, arraySort, arrayDistinct, groupArray, arrayElement |
| JSON | JSONExtractString, JSONExtractInt, JSONExtractFloat, JSONHas |
| URL | domain, path, protocol, extractURLParameter |
| IP | IPv4StringToNum, IPv4NumToString, isIPv4String |
| Geo | greatCircleDistance, geoDistance, geoToH3 |
| 哈希 | cityHash64, xxHash64, sipHash64, MD5, SHA256 |
| 条件 | sumIf, countIf, avgIf, minIf, maxIf |
仅支持 pandas 的函数
| 类别 | 函数 |
|---|---|
| Apply | 自定义 lambda 函数、用户自定义函数 |
| 复杂透视 | 带自定义聚合的透视表 |
| 堆叠/取消堆叠 | 复杂的重构操作 |
| 插值 | 时间序列插值方法 |
Dtype 修正
校正级别
修正级别详情
| 级别 | 描述 | 已修正的类型 |
|---|---|---|
NONE | 不进行自动修正 | 无 |
CRITICAL | 关键修正 | NULL 处理、布尔值转换 |
HIGH (默认) | 常见修正 | 整数/浮点精度、日期时间、字符串编码 |
MEDIUM | 进一步修正 | Decimal 精度、时区处理 |
ALL | 最大程度修正 | 所有类型差异 |
何时需要修正类型
- ClickHouse → pandas:整数位宽不同 (Int64 vs int64)
- pandas → ClickHouse:Python 对象映射到 SQL 类型
- NULL 处理:pandas NA vs ClickHouse NULL
- 布尔值:布尔值表示形式不同
- 日期时间:时区差异