用途:为生产环境的数据管道提供可靠性模式与迁移实践参考,帮助实现可重复执行、可恢复、可观测的 ETL 流程。
主要能力:
- 幂等模式:删除后插入(适合小数据集)、UPSERT(适合大数据集,使用 on_conflict_do_update)、基于源数据哈希的行变更检测。
- 检查点:Checkpoint 类将处理进度以 JSON 持久化,支持 get_last_processed 与 set_last_processed,用于断点续跑。
- 错误处理:FailedRecord 数据类收集失败记录并落盘为 Parquet;死信队列模式将失败记录写入 DLQ 表。
- 分块处理:chunked 生成器按批切分;pd.read_csv 的 chunksize 配合显式内存清理与 gc.collect 处理大文件。
- 重试逻辑:retry 装饰器支持最大次数、初始延迟与指数退避,示例用于带超时的 API 请求。
- 日志:使用 structlog 绑定 batch_id 与记录数,记录批次开始、完成与失败。
- 数据迁移:PostgreSQL 迁移模板包含迁移前检查、基线快照、分批回填(FOR UPDATE SKIP LOCKED)、约束添加与迁移后行数校验;提供回滚脚本与 Python MigrationRunner(含 dry_run 与校验失败自动回滚)。
- 安全迁移模式:加列先可空再回填再加约束、重命名列、变更列类型、大表分批更新;附迁移前后安全检查清单。
使用方式:资料以 Python 与 SQL 代码片段形式给出,需结合自身数据库引擎、ORM 与调度环境适配;示例依赖 pandas、SQLAlchemy、requests、structlog 等库。
适用场景:批量数据同步、增量抽取、大表迁移、需要断点续跑与失败重放的数据管道。
限制:资料未提供安装命令、版本要求、性能基准、收费信息与具体平台支持范围;代码为模式示例,直接用于生产前需自行测试与调整。