跳到主内容
精选88Polars(GitHub Releases)语言与库

Python Polars v2.0.0-rc.1:SQL默认引擎改为Streaming

Python Polars 2.0.0-rc.1

原文
发到 X
推荐理由

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

更进一步:量化金融体系

看懂新闻只是起点——沿量化金融路径,把它变成能交付的工程能力

进入量化体系 →

相似阅读

另一事件,读法相近