EPICS ARCHIVER APPLIANCE

一、什么是EPICS ARCHIVER APPLIANCE?

Archiver是一款基于JAVA的开源数据归档系统。专门用于长期采集、存储和检索EPICS控制系统中的实时数据(主要是高性能检索)。核心功能包括:

1.数据采集:支持大规模PV(过程变量)监控,可同时采集数万个PV,采集策略灵活(周期触发/阈值触发)。通过Channel Access/PVAccess协议与EPICS IOC通信

2.存储架构:分层存储设计。短期存储将最近1小时的数据存储在内存中;中期存储将最近1天的数据存储在本地硬盘;长期存储将一年的数据存储在分布式数据库或网络存储中。支持高压缩和荣誉存储,确保数据可靠性。

3.数据管理:通过Extract\Transform\Load模块实现数据在不同存储层的迁移,支持数据抽取和特征值(最大/最小/平均)生成,以提高检索效率。

4.检索服务:提供web界面和API接口查询历史数据

部署方式:部署在tomcat服务器,包含四个核心组件:Engine负责数据采集和归档(该组件为设备中的每个PV建立EPICS通道访问监视器。数据被写入STS。该组件基于CS-Studio引擎)、ETL数据存储和迁移(从STS传输到MTS,以及从MTS传输到LTS)、DataRetrieval数据查询请求(该组件从所有存储中收集数据,将它们拼接在一起以满足数据检索请求)、Management提供配置和管理页面( 该组件执行业务逻辑,管理其他三个组件并保存运行时配置状态)。

二、系统要求

1.LINUX系统:redhat6.1

2.JDK16

3.tomcat11.0.12之后+

4.firefox

5.mysql5.1以后

三、关键特性

1.集群化部署与扩展

2.多级存储架构:快存、中存、长存

3.数据迁移与降采样机制

4.简化的WEB管理页面和脚本化管理

5.易于集成和定制

6.提供从channel Archiver迁移路径

四、架构设计

存储阶段 (可按PV配置):

STS (短期存储): 最近几小时数据,通常为RAM磁盘。

MTS (中期存储): 最近几天数据,使用RAID或镜像SAS硬盘。

LTS (长期存储): 其余数据,使用租用的批量存储(如GFPS/NFS挂载)或NetApp等。

核心进程 (J2EE WAR文件, Tomcat容器):

Engine:建立EPICS通道访问监控,写入STS。基于CS-Studio引擎。

ETL:在存储间移动数据(STS->MTS, MTS->LTS),可进行数据降采样。

Retrieval:从所有存储中收集数据,拼接响应查询请求。

Mgmt:执行业务逻辑,管理其他组件,保存运行时配置。

通信: 组件间通过JSON/HTTP通信。

配置: 存储在MySQL数据库(每个设备独立)。

六、序列化机制

配置: 每个PV的归档配置存储为JSON对象,包含采样模式、速率及数据存储列表。

实现: 使用存储插件(Storage Plugins)实现数据存储,遵循标准接口。

默认插件: PlainPBStoragePlugin。

序列化: 使用Google Protocol Buffers (PB)。

  • 提供未来兼容性,支持多种语言绑定。
  • EPICS V3 DBR类型映射到特定PB消息。
  • EPICS V4 NTScalars/NTScalarArrays映射到V3对应PB消息。
  • 其他V4类型使用V4序列化存储为通用PB消息。

数据块 (Chunk): 存储序列化PB消息,每行一个样本。

•样本按记录处理时间戳排序(单调递增)。

•块键基于PV名和时间分区(如 `EIOC/L130/MP01/HEARTBEAT:2012_08_24_16.pb`)。

•分区边界严格,块键信息足以识别数据边界。

•默认存储为文件,块键作文件名。

优势: 无需索引即可进行搜索算法优化(未来可扩展)。

存储效率: 平均每个PB ScalarDouble约消耗21字节(含时间戳、值、状态、严重性等)。

七、PV归档工作流

流程:

  1. 用户请求: 请求归档PV。
  2. 信息采集: Mgmt和Engine组件采样PV,获取事件率、存储率、PV字段(NAME, ADEL, MDEL, RTYP等)。
  3. 策略评估: 将信息传递给安装特定的Python策略脚本。
  4. 配置决策: 策略脚本根据信息做出配置决定(例如:波形采样率不超过1Hz;AI记录归档VAL、HIHI、LOLO字段)。

八、数据检索

性能数据 :

>75% 请求时间跨度 < 1天,平均响应时间 < 100ms。

时间跨度达1周,平均响应时间约 250ms。

时间跨度达1年,带数据降采样,可在几秒内完成(例如:运行时将3000万样本合并为约8000个样本)。

协议与格式

HTTP,支持多种MIME类型:

RAW:二进制格式,最小化PB格式转换。提供Java/Python库,carchivetools支持。

JSON, CSV, MAT, TXT, SVG:

支持Matlab, Python, Excel, JMP等工具。

URL构建: URL仅包含PV名、开始和结束时间。

集群路由 : 请求可发送到集群中的任意设备,设备负责路由/代理。

负载均衡 : 可在集群前使用负载均衡器(如 mod_proxy_balancer)。

数据检索;将数据导入工具的第一步是构建数据检索URL;该URL仅包含PV名称以及数据检索请求的开始和结束时间。数据检索请求和业务逻辑请求都可以分发到集群中的任意随机设备(图4);该设备具备相应功能,可对请求进行路由/代理

九、降采样

根据需求,有多种降采样策略

实现

  • 支持在检索时处理数据。
  • 提供典型统计运算符(均值、标准差等)。
  • 运算符将数据分箱(binning),然后对箱应用运算。

效果

可在快速存储中保存几天全速率数据,然后在迁移到慢速存储时进行降采样。

十、管理

通过JSON/HTTP与设备交互,调用Web服务接口。

Web UI (图6): 提供常见配置任务界面。

脚本化: 所有Web服务调用也可通过外部脚本(如Python)使用。

丰富业务逻辑: 用户可添加/修改/删除PV、暂停/恢复、重新分片/合并数据等。

无需重启: 任何业务逻辑操作都不需要重启设备。

报告: 提供多种基于静态和动态信息的报告(存储速率、断开连接的PV等)。

脚本化管理: 报告也可通过Python脚本访问,实现集群的完全监控和管理自动化。

十一、定制化

1外观:可生成定制构建版本,满足特定站点的视觉风格。

2策略:可定制站点特定的策略脚本。

3配置存储:可替换为站点特定的配置存储方案。

参考文献:THE EPICS ARCHIVER APPLIANCE,Murali Shankar, Luofeng Li, SLAC,Proceedings of ICALEPCS2015

CS-Studio(Control System Studio)与 EPICS Archiver ApplianceEPICS(Experimental Physics and Industrial Control System)生态系统中两个功能截然不同的工具,分别用于不同的应用场景。 CS-Studio 是一个基于 Eclipse 的控制系统的集成开发环境(IDE),主要用于图形化监控和操作EPICS系统中的设备和过程参数。它提供了多种插件和模块,例如显示管理器(如 Display Builder)、数据可视化工具(如 Data Browser)、警报系统(Alarm System)以及通道查找器(Channel Finder)等。CS-Studio 的核心用途是为用户提供一个统一的界面来监控、控制和分析实时过程数据,适用于操作员和工程师在日常维护和调试过程中使用 [^3]。 相比之下,EPICS Archiver Appliance 是一个专门用于历史数据采集和存储的系统。它从 EPICS 服务器(包括 Channel Access 和 PV Access)中获取数据,并将其高效地存储在时间序列数据库中,以便后续进行数据分析、事件回溯和性能监控。EPICS Archiver Appliance 通常用于需要长期存储和分析设备运行数据的场景,例如对设施运行状态的长期趋势分析或故障诊断 [^1]。 从功能上看,CS-Studio 更侧重于实时数据的交互式监控和控制,而 Archiver Appliance 则专注于数据的持久化存储与历史回溯。两者可以协同工作,CS-Studio 可以集成 Archiver Appliance 的数据视图,从而实现对历史数据的可视化展示 [^3]。 ### 代码示例 在 CS-Studio 中,可以通过 Data Browser 插件连接到 Archiver Appliance 并查询历史数据。以下是一个简单的 Java 示例,演示如何通过 Archiver Appliance 的 REST API 获取某个 PV 的历史数据: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class ArchiverClient { public static void main(String[] args) throws Exception { String pvName = "examplePV"; String baseUrl = "http://archiver.example.com/retrieval/data/getData.json?pv=" + pvName + "&from=now-1d&to=now"; URL url = new URL(baseUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } reader.close(); } } ``` 该示例通过 HTTP 请求访问 Archiver Appliance 的 JSON 接口以获取过去一天的数据,适用于在 CS-Studio 中集成自定义的历史数据展示功能 [^2]。 ### 应用场景对比 - **CS-Studio**:适用于需要图形化界面进行设备监控、报警管理、数据浏览等实时操作的场景。 - **EPICS Archiver Appliance**:适用于需要长期存储和分析过程变量数据的场景,如设备性能评估、历史趋势分析、故障诊断等 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值