跳转到主要内容
DataStore 允许在函数级别对执行过程进行细粒度控制,包括执行引擎选择和 Dtype 修正。

函数引擎配置

为特定函数覆盖执行引擎。

配置 函数引擎

何时使用

以下情况应强制使用 chdb:
  • 在 ClickHouse 中性能更优的函数
  • 能从 SQL 优化中受益的函数
  • 大规模字符串/日期时间操作
以下情况应强制使用 pandas:
  • 具有 pandas 特有行为的函数
  • 需要严格兼容 pandas 时
  • 自定义字符串操作

示例


重合函数

chdb 和 pandas 引擎中都提供了 159+ 个函数: 对于这些重合函数,引擎会按以下顺序选择:
  1. 显式的函数配置 (如果已设置)
  2. 全局 execution_engine 设置
  3. 根据上下文自动选择

仅 chdb 可用的函数

某些函数仅能通过 ClickHouse 使用: 这些函数会自动使用 chdb 引擎,与配置无关。

仅支持 pandas 的函数

有些函数只能通过 pandas 使用: 无论配置如何,这些函数都会自动使用 pandas 引擎。

Dtype 修正

配置 DataStore 在不同引擎之间如何修正数据类型。

校正级别

修正级别详情

何时需要修正类型

以下情况可能会导致类型差异:
  1. ClickHouse → pandas:整数位宽不同 (Int64 vs int64)
  2. pandas → ClickHouse:Python 对象映射到 SQL 类型
  3. NULL 处理:pandas NA vs ClickHouse NULL
  4. 布尔值:布尔值表示形式不同
  5. 日期时间:时区差异

示例


函数配置 API

function_config 对象

单次调用覆盖

某些方法支持在单次调用时覆盖 engine:

最佳实践

1. 从默认配置开始

2. 为特定工作负载进行配置

3. 使用合适的校正级别

4. 测试两种引擎

最后修改于 2026年7月3日