0

0

Polars 读取 S3 Parquet 文件的连接复用与性能优化实践

心靈之曲

心靈之曲

发布时间:2026-02-11 16:46:16

|

332人浏览过

|

来源于php中文网

原创

Polars 读取 S3 Parquet 文件的连接复用与性能优化实践

本文详解在 aws lambda 等无服务器环境中,如何避免 polars 每次调用重复建立 s3 连接,并对比原生 boto3 下载 + polars 本地解析的性能优势,提供可落地的连接池替代方案。

Polars 自 0.20 版本起通过 object_store 库统一管理云存储 I/O,支持直接读取 s3:// 路径的 Parquet 文件(如 pl.read_parquet("s3://bucket/data.parquet"))。但需明确:当前 Polars(截至 v0.21)不支持传入已初始化的 boto3.client 实例进行连接复用。其 storage_options 参数仅接受配置字典(如 {"aws_region": "us-east-1", "aws_access_key_id": "...", ...}),用于每次 I/O 时新建 object_store::aws::Client——这意味着在 Lambda 中,若将 read_parquet 直接写在 handler 内,每次调用(包括温启动)都会触发新的 HTTP 客户端初始化与连接建立,无法复用底层 TCP 连接或凭证缓存。

虽然 Polars 团队已在 PR #14598 中优化了 object_store 的内部客户端缓存逻辑(例如复用 reqwest::Client 实例),但该缓存作用于库内部、不可由用户控制,且实测仍无法匹敌原生 boto3 的连接复用效率。根据真实 Lambda 场景压测(见 issue #14572 讨论),直接使用全局 boto3.client("s3") 下载对象至内存/临时磁盘,再交由 Polars 解析,平均快 2–5 倍,尤其在小文件高频读取场景下优势显著。

因此,推荐采用以下经过验证的生产级模式:

MediSearch
MediSearch

Medisearch是一个AI驱动的医疗健康搜索引擎,旨在根据可信来源提供医学问题的直接答案

下载
import boto3
import polars as pl
from io import BytesIO

# ✅ 全局初始化:Lambda 冷启动时创建一次,后续所有 invocations 复用
s3_client = boto3.client("s3", region_name="us-east-1")

def handler(event, context):
    bucket = "my-bucket"
    key = "data/part-00000.parquet"

    # 步骤1:复用 s3_client 下载(自动复用连接池、凭证缓存)
    response = s3_client.get_object(Bucket=bucket, Key=key)
    parquet_bytes = response["Body"].read()

    # 步骤2:Polars 从内存解析(零磁盘 IO)
    df = pl.read_parquet(BytesIO(parquet_bytes))

    return df.shape[0]
⚠️ 注意事项: 若 Parquet 文件较大(>100MB),建议改用 tempfile.NamedTemporaryFile 写入本地 /tmp 后再 pl.read_parquet(),避免内存压力; 确保 Lambda 执行角色拥有对应 S3 s3:GetObject 权限; boto3.client 默认启用连接池(max_pool_connections=10),无需额外配置; 避免在 handler 内重复创建 boto3.client 或 pl.Config,否则失去复用意义。

总结而言,Polars 当前的 S3 集成更适合开发调试或低频批量场景;在 Lambda、Fargate 等对冷启动和吞吐敏感的环境,“boto3 下载 + Polars 本地解析”仍是更可控、更高效的选择。未来若 Polars 开放 client 参数或支持 reqwest::Client 注入,可平滑迁移。在此之前,拥抱成熟稳定的 boto3 生态,是兼顾性能与可靠性的务实之选。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
lambda表达式
lambda表达式

Lambda表达式是一种匿名函数的简洁表示方式,它可以在需要函数作为参数的地方使用,并提供了一种更简洁、更灵活的编码方式,其语法为“lambda 参数列表: 表达式”,参数列表是函数的参数,可以包含一个或多个参数,用逗号分隔,表达式是函数的执行体,用于定义函数的具体操作。本专题为大家提供lambda表达式相关的文章、下载、课程内容,供大家免费下载体验。

211

2023.09.15

python lambda函数
python lambda函数

本专题整合了python lambda函数用法详解,阅读专题下面的文章了解更多详细内容。

191

2025.11.08

Python lambda详解
Python lambda详解

本专题整合了Python lambda函数相关教程,阅读下面的文章了解更多详细内容。

58

2026.01.05

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

453

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

433

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

2901

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2435

2024.08.16

PHP 高并发与性能优化
PHP 高并发与性能优化

本专题聚焦 PHP 在高并发场景下的性能优化与系统调优,内容涵盖 Nginx 与 PHP-FPM 优化、Opcode 缓存、Redis/Memcached 应用、异步任务队列、数据库优化、代码性能分析与瓶颈排查。通过实战案例(如高并发接口优化、缓存系统设计、秒杀活动实现),帮助学习者掌握 构建高性能PHP后端系统的核心能力。

105

2025.10.16

Rust异步编程与Tokio运行时实战
Rust异步编程与Tokio运行时实战

本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。

1

2026.02.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SciPy 教程
SciPy 教程

共10课时 | 1.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号