用途:用于 Python 数据工程的日常决策,包括数据框处理、嵌入式 OLAP SQL、Arrow 数据交换、ETL 结构与弹性模式。适合处理 Polars 变换与惰性查询优化、DuckDB SQL 分析及 MERGE/upsert 与 Parquet 查询、PyArrow 表/数据集交换、Python ETL 管道结构(抽取/转换/加载、日志、重试、幂等)、PostgreSQL 到湖/仓的摄取模式。若任务主要涉及云存储认证或连接器,或 ACID 湖仓表行为,资料建议改用其他相关技能。
主要能力与工具选择:Polars 用于 Python 数据框变换(快、惰性引擎、表达式 API 强);DuckDB 用于对文件/数据框做 SQL(嵌入式 OLAP,原生支持 Parquet/Arrow);PyArrow 作为系统间交换格式(零拷贝表/批生态);psycopg2 等 PostgreSQL 驱动用于 OLTP 源抽取。经验法则:转换优先用 Polars 惰性;重 SQL/窗口/连接用 DuckDB;边界保持 Arrow/Parquet。
核心实现规则:优先惰性执行,大输入用 pl.scan_* 而非 pl.read_*,在 collect() 前串联过滤与投影,避免逐行循环;下推工作,包括谓词下推、列裁剪、按查询维度(如日期/租户/区域)分区;写入保持幂等,优先 MERGE/upsert,若为追加式则追踪水位线/检查点,确保重试不重复副作用;保护边界,值使用参数化 SQL,动态标识符(表/列名)单独校验,绝不硬编码密钥;可观测与校验,记录行数和阶段耗时,在阶段边界校验 schema/必需列,记录检查点/水位线。
使用方式:资料给出最小安全 ETL 形态,涉及 Polars 惰性扫描与 DuckDB 连接;生产级结构可参考其模板 complete_etl_pipeline.py。按需渐进阅读:patterns/etl.md(规范化 ETL 管道结构)、patterns/incremental.md(水位线/CDC/增量加载)、core-detailed.md(综合参考与扩展示例)。
相关技能:湖仓、远程访问、编排、质量、可观测性、AI/ML 管道。参考文档包括 Polars、DuckDB、PyArrow、psycopg。限制:资料未提供定价、平台兼容性细节或效果保证。