DataOps组织数据交付与监测。运行成功不能证明内容正确或追溯完整。
控制重试
定义重跑的预期结果,防止重复或部分结果。保存输入、时期、规则和版本以便复现;输入变化可能导致不同结果。也应定义受控恢复路径。
区分版本与血缘
版本描述状态与变化,血缘连接来源、转换和结果。按用途评估完整性、唯一性、一致性、时效性、有效性和准确性。格式有效的数据可能错误,准确的数据也可能过旧。
| 项目 | 需记录的检查 |
|---|---|
| 执行 | 技术状态与预期结果 |
| 质量 | 适合用途的内容核查 |
| 来源 | 关联来源、转换和结果 |
来源与核查
时区与迟到事件
报告期间由事件时间和结算规则决定。
- 分别记录事件时间、接收时间和业务时区。虚构例中,23:30 UTC在固定偏移UTC+02:00下是次日01:30。PostgreSQL带时区的时间戳不会保留原始时区名称。
- 采用包含起点、不包含终点的区间。先在业务时区确定边界,再转换为UTC。测试夏令时切换、月末和没有时间的日期;本地一天不能总按24小时替代。
- 规定允许的延迟和报表截止时间。重放同一标识,区分新事件与重复记录。保留已发布版本并记录修订影响;水位线是到达时间的估计,不是数据完整性的保证。
可复现的验收案例
虚构示例:数据不代表客户或实际观察结果。
查看案例输入
{
"event_time": "2026-10-08T23:30:00Z",
"report_zone": "UTC+02:00",
"local_time": "2026-10-09T01:30:00+02:00"
}预期判断
在指定时区中,该事件属于10月9日。也保留UTC时刻。
验证步骤
- 定义报告时区及参考时刻。
- 重现午夜附近的事件。
- 保留UTC、本地日期及截点规则。 加入时钟调整时存在歧义的本地时间,保留偏移量和时区,而不是推断具体时刻。
能把接收日期当作事件日期吗?
只有报表定义明确要求时才可以。保存两种时间,并解释迟到事件如何处理。
一手资料:PostgreSQL — Date/time types. 相关方法:阅读实用指南.
采集故障:核对日志与缺失事件
区分已生成、已接收和可用事件,不把沉默当作没有事故的证据。
- 梳理应用、采集器、存储和负责人。准备有限的虚构事件序列,使用稳定标识,不含秘密或客户数据。保存事件时间和观察时间;采集延迟不自动等于丢失。
- 在测试中中断目标后恢复。观察队列填充、重试、拒绝和重启。持久队列能限制部分损失,但容量有限且依赖存储;定义满队列行为。检查采集不会悄悄阻塞服务。
- 在相同观察截止点核对参考集合和实际可读事件。分别统计重复、延迟和缺失;网络确认不证明最终可用。没有可靠参考时明确覆盖未知,不能写成零丢失或零事故。
可复现的验收案例
虚构示例:数据不代表客户或实际观察结果。
查看案例输入
{
"expected_ids": [
"E1",
"E2",
"E3"
],
"received_ids": [
"E1",
"E1",
"E3"
],
"received_rows": 3,
"unique_received": 2,
"missing_ids": [
"E2"
],
"observation_cutoff": "same_for_both_sets"
}预期判断
虚构例:预期E1、E2、E3,却收到E1、E1、E3。三行不能证明完整:E1重复,截止点仍缺E2。
一手资料:OpenTelemetry — Collector resiliency. 相关方法:阅读实用指南.
ZIP与TAR:在目录和资源预算内解压
发布解压文件前验证路径、链接和实际解压数据量。
- 在最小权限的新建非公开目录解压。拒绝绝对路径、向上遍历、不必要的链接和特殊文件。按目标系统规则检查实际解析目标及冲突,包括大小写。文本前缀本身不能证明目录限制。
- 对实际写入字节、条目数、深度、时间和进程资源设单文件及累计上限。不仅依据压缩或声明大小。不需要嵌套档案就拒绝;允许时所有层共享总预算。更新库和过滤器。
- 测试../、绝对路径、链接、重复项和预算超限。中止应使批次不可发布且不覆盖现有文件。发布前验证文件类型与内容;清理隔离目录时确认目标位置。
可复现的验收案例
虚构示例:数据不代表客户或实际观察结果。
查看案例输入
{
"compressed_mb": 2,
"expanded_mb": 600,
"aggregate_budget_mb": 100,
"first_files_valid": true,
"expected": "stop_on_actual_overrun_and_do_not_promote"
}预期判断
虚构例:2 MB压缩数据产生600 MB,预算为100 MB。实际写入字节超限即停止;即使前几个文件看似有效也不发布该批次。
Python — tarfile extraction filters and further verification
一手资料:Python — tarfile extraction filters and further verification. 相关方法:阅读实用指南.
