精选88Polars(GitHub Releases)语言与库
Python Polars v2.0.0-rc.1:SQL默认引擎改为Streaming
Python Polars 2.0.0-rc.1
推荐理由
Polars 2.0 是重大版本迭代,SQL 默认引擎强制切换为 Streaming 属于关键破坏性变更,直接影响所有使用 SQL 接口的用户。建议开发者在升级前评估现有查询逻辑,确认是否需显式指定 engine 参数或调整配置以适配新行为。
💥 Breaking changes
💥 破坏性变更
- Set the default engine for SQL to the streaming engine (#28973)
- 将 SQL 的默认引擎设置为流式引擎 (#28973)
🚀 Performance improvements
🚀 性能改进
- Reuse native metadata for Iceberg sinks (#29062)
- SQL exists predicate pushdown before subqueries (#29078)
- Collect primitive group-by aggregations into single chunk (#28825)
- Use cost information to determine whether to keep cached nodes (#29042)
- Use scan cardinality in build side if sampling is exhausted (#29040)
- 为 Iceberg 接收端复用原生元数据 (#29062)
- 在子查询前下推 SQL exists 谓词 (#29078)
- 将基本分组聚合收集到单个块中 (#28825)
- 使用成本信息决定是否保留缓存节点 (#29042)
- 如果采样已耗尽,则在构建侧使用扫描基数 (#29040)
✨ Enhancements
✨ 增强功能
- Defer SQL resolving until we convert to IR (#29077)
- Expose Iceberg sink writer options (#29065)
- Support partitioned Iceberg sinks (#28823)
- Expose fixed-array inner product in SQL (#29033)
- Add strip_prefix and strip_suffix to expression names (#29041)
- Use scan information in join reordering (#29038)
- Add cardinality information (#29024)
- Allow customizing explain output for debugging custom io sources (#23978)
- Add more expression properties to meta namespace (#28091)
- Improve SQL coverage (#29010)
- Improve SQL coverage (#29006)
- Add Join reordering. (#28985)
- Merge 2.0 into main (#28982)
- Set the default engine for SQL to the streaming engine (#28973)
- 推迟 SQL 解析直到转换为 IR (#29077)
- 暴露 Iceberg 接收端写入器选项 (#29065)
- 支持分区的 Iceberg 接收端 (#28823)
- 在 SQL 中暴露固定数组内积 (#29033)
- 向表达式名称添加 strip_prefix 和 strip_suffix (#29041)
- 在连接重排序中使用扫描信息 (#29038)
- 添加基数信息 (#29024)
- 允许自定义调试自定义 io 源时的 explain 输出 (#23978)
- 向 meta 命名空间添加更多表达式属性 (#28091)
- 提高 SQL 覆盖率 (#29010)
- 提高 SQL 覆盖率 (#29006)
- 添加连接重排序。(#28985)
- 将 2.0 合并到 main (#28982)
- 将 SQL 的默认引擎设置为流式引擎 (#28973)
🐞 Bug fixes
🐞 错误修复
- Don't keep incrementing morsel id in MergeSortedNode pass-through (#29055)
- Ensure show_graph shows physical plan for auto engine (#29011)
- Assign SQL JOIN literal comparisons to the correct input (#28701)
- Make distributor linearizer capacity consistent (#29057)
- Correct peak visitors, dictionary bounds, and Date feature gating (#29031)
- Keep extension type schema consistent (#29039)
- Fix Series.sample order when with_replacement=True and shuffle=False (#28990)
- Reduce memory in multi_scan pipeline PostApplyExtraOps (#29049)
- Fix SO in rayon caused by join_where (#29051)
- Clarify GPU installation guidance (#29037)
- Remove POLARS_AUTO_STRUCTIFY env var backdoor (#29032)
- Ensure metrics are flushed between phases and before logging (#29014)
- SQL parse a typed DATE literal instead of casting it (#29007)
- Fix parquet decode of plain pages in dictionary column (#29001)
- Reserve fixed-size-list child capacity (#28980)
- Fix SQL casts (#28986)
- Fix incorrect condition in combine_validities_and_many and add test (#28909)
- Give sink_batches lazy: Literal[False] overload a default (#28951)
- 不要在 MergeSortedNode 透传中持续递增 morsel id(#29055)
- 确保 show_graph 显示自动引擎的物理计划(#29011)
- 将 SQL JOIN 字面量比较分配给正确的输入(#28701)
- 使 distributor linearizer 容量保持一致(#29057)
- 修正峰值访问者、字典边界和 Date 功能门控(#29031)
- 保持扩展类型 schema 一致(#29039)
- 修复 with_replacement=True 且 shuffle=False 时 Series.sample 的顺序问题(#28990)
- 减少 multi_scan pipeline PostApplyExtraOps 中的内存占用(#29049)
- 修复由 join_where 引起的 rayon SO 问题(#29051)
- 澄清 GPU 安装指南(#29037)
- 移除 POLARS_AUTO_STRUCTIFY 环境变量后门(#29032)
- 确保在阶段之间和记录日志之前刷新指标(#29014)
- SQL 解析带类型的 DATE 字面量,而不是对其进行转换(#29007)
- 修复字典列中普通页的 parquet 解码问题(#29001)
- 预留固定大小列表子项容量(#28980)
- 修复 SQL 转换(#28986)
- 修复 combine_validities_and_many 中的错误条件并添加测试(#28909)
- 为 sink_batches lazy: Literal[False] 重载提供默认值(#28951)
📖 Documentation
📖 文档
- Update 2.0.0-rc1 migration guide with latest changes (#28983)
- Fix invalid output in DataFrame.sample example (#28998)
- 使用最新更改更新 2.0.0-rc1 迁移指南(#28983)
- 修复 DataFrame.sample 示例中的无效输出(#28998)
🛠️ Other improvements
🛠️ 其他改进
- Bump rust toolchain (#29080)
- Increase rustc stack size (#29076)
- Log pytest worker crashes and disable restarting (#29058)
- Replace FileInfo row_estimation tuple with typed ScanStats (#29023)
- Use an if for cfg(debug_assertions) to fix the benchmark job (#29002)
- Remove 2.0 branch from ci-tested branches (#28981)
- Skip tests that are currently failing on windows (#28962)
- 升级 rust 工具链(#29080)
- 增加 rustc 栈大小(#29076)
- 记录 pytest worker 崩溃并禁用重启 (#29058)
- 用类型化的 ScanStats 替换 FileInfo row_estimation 元组 (#29023)
- 使用 if cfg(debug_assertions) 修复基准测试作业 (#29002)
- 从 ci-tested branches 中移除 2.0 分支 (#28981)
- 跳过目前在 Windows 上失败的测试 (#28962)
Thank you to all our contributors for making this release possible!
感谢所有贡献者使本次发布成为可能!
@0guban0v, @0xC61, @Aniket-a14, @LarryHu0217, @MatteoPossamai, @NeejWeej, @TNieuwdorp, @WaterWhisperer, @adamreeve, @dsprenkels, @jonasdedden, @kdn36, @math-hiyoko, @matthewbayer, @nameexhaustion, @orlp, @ritchie46, @severinh and @sivakumar-mahalingam
@0guban0v、@0xC61、@Aniket-a14、@LarryHu0217、@MatteoPossamai、@NeejWeej、@TNieuwdorp、@WaterWhisperer、@adamreeve、@dsprenkels、@jonasdedden、@kdn36、@math-hiyoko、@matthewbayer、@nameexhaustion、@orlp、@ritchie46、@severinh 和 @sivakumar-mahalingam
更进一步:量化金融体系
看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力