SuperAPI AI 工具集

python-data-pipelines

数据与分析

查看项目

更新于 10-16 11:51

技能介绍

Python Data Pipelines 是一个用于构建外部系统与非结构化数据接入管道的技能。根据描述,当需要构建 ETL 作业、文档智能管道、OCR、PDF/Excel 摄取、图像/媒体处理或外部 API 同步管道时使用它,目标是实现经过校验、具备死信队列和多租户隔离的幂等定时作业。前置要求是先加载 python-modern-standards 和 python-saas-integration。

【用途与适用场景】 技能适用的典型场景包括:从 Stripe、支付网关、银行流水、税务门户、政府 API 等外部来源同步数据;从上传的收据、发票、证件中通过 OCR 提取结构化数据;解析租户上传的 PDF 或 Excel 文件;处理上传图像(缩放、优化、缩略图、水印);在存储之间转换数据的定时作业;以及将自身记录与外部事实来源进行比对的对账作业。

【核心设计原则】 每个管道强制满足五项属性:幂等(相同输入两次得到相同终态,按自然键或 idempotency_key 去重)、可恢复(中断后通过游标、水位线或检查点继续)、可观测(每次运行发出开始、进度和终止事件,并记录行数、时长、延迟等指标)、经过校验(摄取时用 Pydantic 解析,无效记录进入死信队列)、多租户安全(每条记录携带 tenant_id,每个步骤都校验它)。规范管道形态为:Source → Extract → Validate → Transform → Load → Verify,校验失败进入 Dead-letter,最终可做 Reconciliation。

【主要能力】 ETL/外部 API 同步:采用水位线增量拉取,使用 upsert 而非 insert 以防重复,按记录写入死信队列避免单条坏数据终止整批,按租户从密钥库获取凭证,并处理限流、分页与鉴权刷新。文档智能 OCR:默认使用 Tesseract,针对机打收据和发票通常足够准确;手写或低质量扫描可考虑 Google Vision / AWS Textract,但需考虑成本。预处理对准确率影响很大,包括灰度化、去噪、自适应阈值、去斜、小字号放大 2–3 倍、去除边框与阴影。PDF 提取:pdfplumber 用于文本型 PDF,可提取文本位置与规则布局的表格;camelot 更适合复杂表格;ocrmypdf 封装 Tesseract 对扫描 PDF 就地 OCR,生成可搜索 PDF;同时强调上传 PDF 必须校验 MIME 类型、大小并扫描。图像/媒体处理:Pillow 承担大部分工作,可在用户上传公开前剥离 EXIF 以防 GPS 泄露;水印按图像宽度缩放并渲染在角落。调度:可选 cron + uv run、APScheduler、Celery beat 或 RQ Scheduler,原则是选择满足需求的最简方案,并让定时任务自身互斥、幂等、能容忍跳过的运行。校验与死信队列:在边界始终使用 Pydantic,DLQ 与主队列共用 Redis/DB 但使用不同命名空间,记录租户、管道、来源 ID、载荷、错误、首次出现时间和重试次数,并提供人工重放工具与深度阈值告警。多租户管道:按租户存储凭证、按租户限流、按租户设定并发预算、日志隔离。可观测性:从仪表盘回答上次运行时间、成功/部分成功/失败、进出与 DLQ 记录数、耗时、源目标之间的新鲜度延迟;标准指标包括 pipeline_run_total、pipeline_records_total、pipeline_duration_seconds、pipeline_lag_seconds,并设置无成功运行、DLQ 增长、延迟超 SLA 等告警。

【使用方式】 先阅读 SKILL.md,再按需加载引用的深入文件;套用有序的指导、清单与决策规则,而不是挑选孤立片段;产出结果时明确假设、风险与后续工作。需先收集项目上下文、约束和具体问题,确认交付物是设计、代码、评审、迁移计划、审计还是文档。参考文件涵盖管道架构、外部 API ETL、Tesseract OCR、PDF 提取、文档解析工具集、Pillow 图像处理、调度、校验与死信队列、多租户管道、可观测性等主题。

【产出与质量标准】 证据产出包括 ETL 作业规格(Markdown,覆盖来源契约、幂等性、DLQ 处理与保留策略)和管道运行手册(覆盖调度、重试与 DLQ 检查)。输出应面向执行、简洁并符合仓库基线工程标准,保留既有项目约定,偏好确定性、可评审的步骤。

【反模式与限制】 应避免:全量重载而非增量、10 万行单一大事务、按记录吞掉异常而不入 DLQ 导致静默数据丢失、在应用代码中用 while True + sleep 调度、在同一行存储原始响应与转换记录、跨租户复用同一个 Stripe 客户端、缺少坏数据回滚计划、把示例当作可直接复制的真理而不检查适配性、默认加载所有参考文件。关于收费模式、价格、平台支持与效果的更多细节,资料暂未提供。