跳转到内容

Aether数据处理

Aether 数据处理是行业中立的应用程序功能,用于将受管理的 IoT 观察结果转化为经过验证的派生数据。它从 Aether 拥有的数据源组装一个有界输入帧,调用本地或远程处理器,验证响应,并通过一个传输中立的应用程序边界提供结果。版本 1 在 aether-api 中公开经过身份验证的 HTTP 路由; CLI 和 MCP 绑定尚未实现。任何未来的传输、调度程序或自动化集成都必须使用相同的应用程序边界。

预测是第一个数据处理任务。负载预测模型端点不是第二个数据平台,也不拥有站点的数据路径:它是一个请求驱动的 DataProcessor,接收完整的 ProcessingFrame 并返回 ProcessingResult

此实现的内核功能不会使数据处理成为必需的第七个进程,也不需要默认分发中的模型、云连接或外部数据库。组合根可以在现有进程中运行应用程序,也可以将其隔离在可选的、独立监督的进程中。

概念 名称
架构功能 Aether数据处理
应用程序用例 DataProcessingApplication
配置单元工作 DataProcessingTask
处理实现端口 DataProcessor
受监管、时间对齐的输入 ProcessingFrame
不受信任的处理器响应 ProcessingResult
已验证Aether结果 DerivedData

该模块称为数据处理而不是预测,因为未来的行业包可能需要窗口估计、特征推导、评分或分类以及预测。它之所以不被称为“分析”,是因为它不是报告或 BI 表面,也不是以模型技术命名:确定性算法和模型端点实现相同的处理器合约。

数据处理任务具有所有这些属性:

  • 它从已解码、语义识别的Aether数据开始;
  • 它在有界框架和显式as_of上运行时间;
  • 其必需的字段、单位、时间策略、质量限制和输出模式在执行前声明;
  • 通过请求/响应应用程序用例调用;
  • 生成带有输入、处理器、质量和过期来源的派生数据;
  • 没有直接的设备副作用。

示例包括 24 小时站点负载预测、振动窗口的剩余使用寿命估计、建筑测量的舒适度得分或完整生产周期的质量分类。第一个标准化任务是Forecast;后面的任务类型需要它们自己的类型化输入和输出协定,而不是隐藏在通用 JSON API 中。

每个实现都必须保留这些属性:

  1. 数据请求处理器。 DataProcessingApplication 组装并发送完整的输入。处理器不会回调 Aether 来发现站点、读取 SHM、打开历史数据库或获取任意点。
  2. 数据权限不会移动。 SHM 仍然对当前实时点状态具有权威性,历史功能对于存储的观察结果仍然具有权威性,并且配置的协变量源拥有其数据。处理仅创建 DerivedData
  3. 输入是任务范围的。 任务和委托绑定决定可以读取哪些字段。调用者或处理器无法将一个处理请求转变为不受限制的站点数据查询。
  4. 处理器是计算适配器。它们可能拥有算法代码、模型工件、特征顺序、缩放器、张量构造或远程 API 客户端。他们不拥有Aether点绑定、实时状态写入、警报生命周期、规划或设备控制。
  5. 故障是明确的。丢失输入、陈旧数据、处理器错误、无效输出和批准的后备仍然可以区分。技术故障绝不能表示为正常值,例如零。
  6. 导出的数据不是测量状态。结果保留其输入摘要、处理器来源、质量和过期时间。它们永远不会写入 IO 拥有的 T/S 插槽或默默地提升为实时状态权限。
  7. 热路径是独立的。当处理器或 AI 客户端不可用时,采集、确定性保护、警报和基本控制将继续。
  8. 独立配置文件保持独立。 Redis、PostgreSQL、云处理器和模型服务仍然是可选扩展,而不是 Aether 的启动依赖项内核。
authenticated HTTP / in-process application work
DataProcessingApplication
├─ task + commissioned binding
├─ HistoryQuery
├─ read-only LiveState
├─ CovariateSource
└─ frame and quality policy
ProcessingFrame
│ complete request
DataProcessor
本地算法 / 模型
伴生服务 / 远程 API
untrusted ProcessingResult
│ validate and stamp
DerivedData
└─ v1 direct query response

该功能是 Aether 现有层的垂直切片:

  • 域层拥有任务标识符、时间范围、单位、数据质量、结果状态、处理器来源和 DerivedData 的稳定值类型。
  • 端口描述狭窄的功能,例如 HistoryQueryCovariateSourceDataProcessor。它们不包含 SQL、HTTP、供应商、协议或张量运行时词汇。
  • 应用层解析任务绑定、组装和验证 ProcessingFrame、调用处理器、验证其结果,并应用授权、出口、截止日期和审核策略。
  • 扩展使这些端口适应本地算法、HTTP 模型边车、远程服务、天气数据或可选的派生数据存储。
  • 行业包声明任务语义和功能角色。站点调试将这些角色绑定到具体实例和点。
  • 组合根选择具体适配器并决定处理是否需要进程隔离。核心包从不依赖于行业包或处理器扩展。

请参阅数据处理流程,了解详细的组装、请求、验证和失败序列,包括哪些可选结果路径仍将在未来工作。

当前的生产组合在现有的基础上使用任务范围的只读SqliteHistoryQuery aether-history.db。它从不创建或迁移历史数据库模式。一个处理请求的所有功能读取共享一个 SQLite 事务/快照。对于间隔结束节奏 c,标签 t 会聚合 (t-c, t] 中的原始观测值;历史网格结束于 as_of,未来协变量和预测输出开始于 as_of+c

在生产中,只读 SQLite 连接标志必须由操作系统权限支持:通过独立的只读挂载或身份将历史数据库/WAL/SHM 目录公开到 API,与 API 的可写配置/审核存储区分开。基本 Compose 范围的 /app/data:rw 安装不符合此直接历史调试门。

可选的 HTTP 历史适配器较窄:它仅接受已与 aggregation=lastduplicate_policy=reject 精确节奏网格对齐的上游。它不会聚合原始历史记录。

这里 as_of 是事件时间上限,而不是双时态数据库剪切。当前的 SQLite 行没有摄取/系统时间戳,也没有源、绑定或配置纪元。一个事务使调用在内部保持一致,但较旧的 time_ms 处的后续回填可以更改重播,并且同一逻辑系列后面的重新映射可以拼接两个物理源。当前任务/绑定修订不会修复丢失的行纪元。因此,严格的历史评估需要在评估截止时捕获的冻结历史记录快照,或未来的过滤事件时间和摄取/源纪元的 HistoryQuery 实现。

工件选择器同样记录身份、版本和摘要,但不记录 trained_throughavailable_at。固定摘要使执行可识别;它并不能证明该文物在历史as_of存在。在添加这些可用性/训练削减之前,数据处理可以组装有界在线框架和确定性黄金,但它本身并不能提供泄漏安全的历史模型回测。

域和线路合约具有样本质量,但当前的生产源无法端到端地保留设备原始质量。历史模式存储没有设备质量的数字观测值,并且 SHM 桥将接受的有限实时值标记为 good。版本 1 强制执行新鲜度、间隙、缺失、数字约束、出处和协变量发布时间。需要原始设备质量的站点必须在启用处理之前调试质量承载源适配器。

A DataProcessingTask 描述了稳定的操作问题。对于预测,它包括目标语义、观察和未来协变量字段、回顾、范围、分辨率、工程单位、时区和签署契约、新鲜度限制、缺失数据策略和类型化输出契约。它不包含通道地址、SHM 槽、SQL 查询、张量节点、处理器 URL 或机密。

行业包提供语义任务定义。站点调试将其字段绑定到具体的Aether实例和点。 DataProcessor 单独拥有特定于算法的表示。这种分离允许设备移动到另一个通道而无需重建处理器,并且模型版本无需向 Aether 传授张量布局即可更改。

例如,能量包可以声明一个 site-load-forecast 任务,其目标是主动导入功率。委托站点将 load 绑定到实例测量,将 temperature 绑定到天气测量。然后,负载预测 HTTP 处理器将这些命名列映射为其模型所需的特征顺序和缩放。模型端点接收请求中的数据;它不会接收 plant_id 并查询第二个时间序列数据库。

概念处理器契约是:

DataProcessingRequest {
request context + deadline,
task and output contract,
processor selection policy,
ProcessingFrame,
input digest
}
DataProcessor.process(...)
ProcessingResult {
request and input identity,
processor/artifact provenance,
status + quality + expiry,
task-typed processor output
}
│ validate and Aether-stamp
DerivedData {
result and acceptance identity,
validated task output + provenance
}

该帧携带命名的、类型化的字段,而不是特定于处理器的张量或非结构化的有效负载。不受信任的结果信封提供相关性、来源、回退状态和到期时间。 Aether 验证其类型化输出,然后创建 DerivedData。这使数据路径保持可检查和可测试,并允许在离线一致性或黄金测试中重用固定帧,而无需将内核耦合到一个算法运行时。它不保证API重播。

预测练习完整的跨行业处理路径:

  • 历史观察窗口;
  • 可选的当前SHM尾部,仅用于与Last聚合的特征;
  • 未来或已知的协变量,例如天气、日历、费率或时间表;
  • 单位/符号兼容性、时区、对齐和重采样策略;
  • 具有明确期限和到期日的多步骤输出;
  • 可选分位数或置信界限;
  • 基于精确组装框架和受控上下文的内容标识,而不暗示可变源可以从 as_of 重建它

预测结果包含有序的未来时间戳、目标语义、单位以及一个或多个值或分位数。通用信封还标识任务、输入摘要、处理器和工件版本、发布时间、到期时间、质量以及是否使用批准的回退。

相同的 Forecast 合约可以支持不同的包:

行业包 预测示例 典型观察和结果协变量
能源 场地负荷、光伏发电或需求 电力历史记录、天气、日历、电费
制造 生产需求或剩余使用寿命 周期计数、振动、温度、时间表
建筑物 冷负荷或占用 区域传感器、天气、日历、预订时间表
农业 灌溉需求或土壤湿度 土壤传感器、天气预报、作物时间表
交通 交通流量或到达时间 计数、速度、路线时间表、天气

其他处理任务类型可能如下,但每种任务都必须定义类型化语义和一致性测试。通用 process(json) 逃生舱口不得成为公共应用程序合约。

“处理”一词有意宽泛,因此其限制必须明确。

邻居 其职责 数据处理边界
IO 解码 读取协议帧,验证连线值,应用通道点解码并发布规范的 T/S 值 仅在值具有Aether点标识和工程意义后才开始;从不解码 Modbus 寄存器、IEC 消息或原始帧
SHM 数据平面 权威当前点值和现有命令传输 通过 LiveState 的只读输入;没有派生结果或处理器写入 IO 拥有的 T/S 槽
历史 采样、持久、保留、聚合和查询观察 应用程序读取 HistoryQuery;默认适配器以只读方式打开现有历史 SQLite 文件,而处理器从不接收数据库访问
规则引擎 确定性事件/刻度评估和操作执行 不替换规则或同步调用规则热路径中的网络处理器
警报服务 警报策略、生命周期、严重性、确认和通知 可能会产生分数或检测为DerivedData;它本身不会创建或确认警报
批量 ETL / BI 大型扫描、任意连接、仓库、仪表板和离线报告 处理已声明任务的有界操作框架,而不是一般数据管道或分析仓库
规划/优化 将观察结果和派生数据转化为建议的操作计划 停止于经过验证的派生数据;它不会选择或安排设备操作
控制 授权、确认、审核、路由和调度设备命令 稍后的调用者必须输入ControlApplication;处理器输出不授予任何控制权限

当前的 v1 组合需要委托的物理单元、比例、偏移量和目标符号元数据以与任务完全匹配。它执行对齐和聚合,但不执行运行时单位/符号转换。未来的显式转换将在不更改权威测量的情况下创建特定于任务的视图,并且需要自己的测试和出处。

数据 权威 处理处理
当前T/S点值 IO拥有的SHM 通读LiveState;从未通过处理
历史点观测 HistoryQuery实现 通过端口读取来写入;处理器从不直接打开存储
外部或未来协变量 已配置CovariateSource 使用事件时间和问题时间来源进行复制
任务和点绑定 同步后的Aether配置 在处理器请求之前解决
算法/模型工件和私有转换 选择的DataProcessor 作为处理器和工件来源返回
处理输出 已验证DerivedData 派生、有质量限制、过期并由 v1 API
设备直接返回操作 现有控制应用程序和调度程序 仅由单独的决策和控制用例创建

ProcessingResult必须标识请求、任务和绑定修订、输入摘要、处理器和工件版本、发布时间、到期时间、状态和质量。消费者拒绝不受支持的契约版本、非有限值、不匹配的形状或单位、任务范围之外的时间戳、过期的结果以及无法与提交的框架关联的结果。

数据处理是 AI 原生的,因为任务契约、允许的输入、质量、处理器出处、权限、出口和故障状态都是机器可读的,而不是因为 LLM 位于数据路径中。经过 v1 身份验证的 HTTP 表面调用 DataProcessingApplication;未来的 CLI、MCP 和预定接口必须调用相同的用例。

无副作用处理调用是中等风险查询,因为其配置的路由可能跨越远程数据出口边界;部署策略决定对已批准路由的确认,需要持久审核,并且该功能被标记为非幂等,因为每个调用都可能再次执行处理器工作。低风险任务和处理器运行状况发现不需要确认或持久审核,因为它不带有观察值。更改任务、路由、工件选择、出口策略或回退策略是一个单独的配置命令,具有自己的权限、确认和审核元数据。处理结果永远不会继承操作设备的权限。

远程处理器创建显式数据出口边界。应用程序必须将处理器列入白名单,最大限度地减少对任务声明字段的请求,强制有效负载和截止时间限制,避免不相关的标识符和秘密,并保留足够的来源来解释数据剪切和处理器产生的结果。

Aether数据处理不是:

  • 协议解码、采集、SHM 复制或第二个实时状态平面;
  • a时间序列历史数据库、特征存储、数据湖、ETL 引擎、BI 平台或任意查询服务;
  • 训练管道、实验跟踪器或强制模型注册表;
  • 确定性规则、警报生命周期、规划、优化或 ControlApplication 的替代品;
  • 处理器发现任意站点数据或查询 Aether 数据库的权限;
  • 通用张量传输或无类型插件API;
  • 要求每个部署都运行数据处理过程;
  • 采集或硬实时安全循环的一部分。