如何在ODCS中编写SLA:延迟、保留期、可用性等12个服务级别属性深度解析

📅 2026/8/24 11:24:00
如何在ODCS中编写SLA:延迟、保留期、可用性等12个服务级别属性深度解析
如何在ODCS中编写SLA延迟、保留期、可用性等12个服务级别属性深度解析【免费下载链接】open-data-contract-standardHome of the Open Data Contract Standard (ODCS).项目地址: https://gitcode.com/gh_mirrors/op/open-data-contract-standardODCSOpen Data Contract Standard开放数据契约标准通过slaProperties字段用统一的 YAML 语法描述数据产品的服务级别协议SLA——延迟latency、保留期retention、可用性availability等 12 个服务级别属性。本文面向新手带你从零理解 SLA 的写法先看核心字段再逐个拆解 12 个属性最后给出一个可直接参考的完整示例几分钟就能写出第一份 SLA。 上图是 ODCS v3 的整体结构其中SLA模块正是我们本文的主角它和 Schema结构、Data Quality质量并列是数据契约的三大核心之一。为什么数据契约需要 SLA想象一下你依赖一张交易表做报表但没人告诉你——数据多久更新一次新鲜度历史数据保留多久保留期系统几点到几点可用可用性SLA 就是把这些口头承诺变成可校验、可审计的书面契约。在 ODCS 中SLA 推荐遵循Data QoS 元素周期表的思路把服务质量拆成一组标准化的属性方便自动化工具监控、告警直接消费。先认识 SLA 的 6 个核心字段每条 SLA 属性都是slaProperties数组中的一个对象字段定义可在 JSON Schema 中找到schema/odcs-json-schema-latest.jsonServiceLevelAgreementProperty定义部分。字段必填作用property✅属性名12 选 1见下文value✅承诺值如4、2032-05-12T09:30:10-08:00unit视属性单位采用 ISO 标准d/day/days、y/yr/yearselement否检查对象用表名.列名路径表示如tab1.txn_ref_dtdriver否重要性驱动regulatory合规/analytics分析/operational运营description否给人类看的补充说明此外还有两个进阶字段schedulerschedule声明该 SLA 的检查计划如scheduler: cron、schedule: 0 30 * * *每天 30 分跑一次。valueExt扩展值部分属性如frequency需要两个数字时使用。⚠️ 注意旧版中的slaDefaultElement自 v3.1.0 起已弃用v4.0.0 将移除请直接每条写element。12 个服务级别属性逐一拆解ODCS 官方推荐的 12 个属性名均大小写不敏感并带有两字母同义词如av availability按用途分成 4 组1️⃣ 新鲜度类数据多快能到属性同义词含义典型写法latencyly数据延迟官方推荐用 latency 而非 freshnessvalue: 4unit: d→ 数据延迟不超过 4 天 新手最常见的第一条 SLA 就是 latency告诉消费方这张表的数据最多延迟多久。2️⃣ 可用性与生命周期类数据什么时候有、还能活多久属性同义词含义典型写法availabilityav可用率承诺value: 99.9unit: %→ 99.9% 时间可用generalAvailabilityga正式可用GA时间点一个 ISO 时间戳如2022-05-12T09:30:10-08:00endOfSupportes停止支持时间同上时间戳格式endOfLifeel数据/服务退役时间同上这三类时间戳属性适合数据有生命周期的场景比如监管要求数据保留 10 年后必须下线。3️⃣ 数据保留类历史数据存多久属性同义词含义典型写法retentionre保留期value: 3unit: y→ 保留 3 年frequencyfy更新频率value: 1、valueExt: 1、unit: d→ 每 1 天更新 1 次frequency是少数需要valueExt的属性value是间隔valueExt是次数。4️⃣ 性能与故障响应类出问题多快被发现、通知、修复属性同义词含义throughputth吞吐能力承诺errorRateer错误率上限timeToDetecttd问题被发现的时间timeToNotifytn通知到相关方的时间timeToRepairtr修复完成的时间timeToDetect / timeToNotify / timeToRepair这一组正是SRE 故障响应三件套写在一起能完整描述出问题后的服务承诺。 另外官方示例中还出现了timeOfAvailability可用时间段如09:00-08:00用于表达几点到几点数据可用可按组织习惯扩展使用。一个完整的 SLA 示例新手可直接抄下面是仓库中现成的数据库表 SLA 示例文件docs/examples/sla/database-table-sla.odcs.yaml覆盖了 8 种典型属性slaProperties: - property: latency # 数据延迟不超过 4 天 value: 4 unit: d element: tab1.txn_ref_dt - property: generalAvailability value: 2022-05-12T09:30:10-08:00 description: Initial GA date 15.5.22 - property: endOfSupport value: 2032-05-12T09:30:10-08:00 - property: endOfLife value: 2042-05-12T09:30:10-08:00 - property: retention # 数据保留 3 年 value: 3 unit: y element: tab1.txn_ref_dt - property: frequency # 每天更新 1 次 value: 1 valueExt: 1 unit: d element: tab1.txn_ref_dt - property: timeOfAvailability # 合规场景09:00 起可用 value: 09:00-08:00 element: tab1.txn_ref_dt driver: regulatory - property: timeOfAvailability # 分析场景08:00 起可用 value: 08:00-08:00 element: tab1.txn_ref_dt driver: analytics几个细节值得学习同一条 SLA 可写多份最后两条timeOfAvailability分别给合规和分析场景不同承诺靠driver区分重要性——这就是 SLA 的精细化玩法。时间戳值加引号2022-05-12T09:30:10-08:00在 YAML 中建议用引号包裹避免解析歧义。element用表.列路径告诉校验工具对哪个列做检查若整个契约只有一张表可省略。下面这张图展示了 ODCS v3 中 Schema 的 object / property 层次——element里的tab1.txn_ref_dt正是指向这种表结构中的具体列新手避坑清单 ✅属性名大小写不敏感但建议统一用驼峰errorRate而非errprate。property和value是仅有的两个必填字段其他按需添加。单位用 ISO 标准缩写天用d年用y别自造单位。需要定期检查的 SLA 加上scheduler/schedule让自动化工具接管监控。给关键 SLA 补上descriptionv3.1.0 起每条 SLA 支持自由描述写清楚为什么承诺这个值。完整字段说明见官方文档 docs/service-level-agreement.md更多组合玩法可参考全量示例 docs/examples/all/full-example.odcs.yaml。总结5 步写出你的第一份 SLA挑属性从 12 个属性里选出你的数据产品最需要承诺的通常先写latencyretention定数值和单位valueunit时间类用 ISO 时间戳指对象用element: 表名.列名指明检查范围标驱动用driver标注 regulatory / analytics / operational 的优先级交自动化加上scheduler和schedule让 SLA 从纸面承诺变成自动监控。掌握这 12 个服务级别属性你就已经能用 ODCS 的数据契约向消费方做出专业、可执行的服务承诺了 【免费下载链接】open-data-contract-standardHome of the Open Data Contract Standard (ODCS).项目地址: https://gitcode.com/gh_mirrors/op/open-data-contract-standard创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考