OSISoft实时/历史数据库PI的数据存储机制分析

    实时/历史数据库PI的大名想必很多人都听过,在国内很多电厂的SIS系统都是用PI做的。PI在实时/历史数据库领域是做的最为成功的,但同时价格也是最高的,动辄几十万甚至上百万的价格让很多中小企业是望而却步,但听说最近OSISoft公司又提高了PI的价格,真是牛啊!
    前一段时间因为工作需要,对PI的历史数据存储机制做了一些分析之后,大体弄明白了PI是如何存储历史数据的,一些以前无法想明白的问题也找到了答案。例如,在PI的很多文档上都提到了,存储一条32位浮点型的变量的记录平均只需5个字节,以前就很难想明白PI是怎么做到的。因为一条记录至少需要包含三个字段VQT(V:Value,指变量值;Q:Quality,指数据质量;T:Timestamp,指变量值对应的时间戳),对于32位浮点型变量而言,变量值V就需要4个字节存储,这就意味着Q和T平均只占用一个字节,这几乎不可能,但是PI做到了,接下来我们就来具体看看PI是如何做到这点的。
   需要声明的是,我所做的分析是根据PI的windows版本(V3.4)所做的,所以分析结论并不完全适用于其他操作系统平台下的PI版本(例如在Unix系统下的缓存实现机制),如果哪位朋友有这方面的心得体会,也希望能拿出来跟大家分享一下,我也乐意就本文内容以及任何与实时/历史数据库相关的问题与大家进行交流。
    首先简单介绍一下PI的历史数据文件的基本格式,PI的历史数据都存储在形如piarch.001这样的数据文件中,与之相对应的还有一个形如piarch.001.ann这样的文件,后者是用来存储针对变量记录的注释用的,一
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值