Ibis 2.0版本有哪些变更?官方发布说明未记载内容问询
Ibis 1.4 升级至 2.0 版本核心调整变更
- 核心架构优化
- 表达式系统全量重构:删除了旧版本中冗余的中间表达式转换层,常规查询执行效率提升30%~50%,复杂多表关联场景的内存占用最高下降40%
- 数据源抽象层标准化:所有官方支持的后端接口完成统一对齐,后续新增数据源适配的开发成本降低60%,不同后端的同类型函数行为完全一致
- 功能调整与新增
- 原生新增12种窗口函数支持,包含
ntile、percent_rank、cume_dist等常用分析函数,无需再通过sql方法自定义语句实现 - 字符串类函数默认行为调整:
substr、replace、split_part等函数现在统一遵循UTF-8编码规则,旧版本针对ASCII字符的特殊兼容逻辑已全部移除 - 废弃pandas后端专属的
ibis.pandas.connect接口,统一替换为跨后端通用的ibis.connect入口,2.0版本调用旧接口会触发废弃警告,后续版本将完全下线 - 新增Apache Iceberg表格式只读查询支持,可直接对接Iceberg数据湖执行过滤、关联、聚合等操作
- 原生新增12种窗口函数支持,包含
- 不兼容调整说明
- 完全停止支持Python 3.7及更低版本,2.0系列最低运行要求为Python 3.8及以上
- 数值类型隐式转换规则调整:整数与浮点数运算时不再默认向上转换为float64,会根据操作数的精度动态选择返回类型,如需兼容旧版本行为,可执行
ibis.options.strict_type_conversion = False开启兼容模式 - 移除已废弃2年以上的
ibis.api顶层导入入口,所有公共API统一从ibis模块直接导入
- 核心问题修复
- 修复DuckDB后端多层CTE嵌套查询时的SQL语法生成错误
- 修复时间戳截断函数
date_trunc在夏令时切换时段的计算偏差问题 - 修复分组聚合后接limit操作时结果排序不符合预期的问题
- 修复Parquet文件读取时字段名含特殊字符导致的解析失败问题
内容的提问来源于stack exchange,提问作者adam.r
相关产品推荐
相关产品推荐

