2012年(158)
分类: C/C++
2012-11-15 15:13:58
网友评论2012-11-15 15:53:25
Lixeon
多文档的好处在于:
1> 使在线数据量仅与磁盘容量有关。
单文件的大小,受制于操作系统。Windows下好像一个文件最大为2G(记不清了,反正是有限),而2万点的规模一年4到5G左右的数据量,一个文件就不够了,多文件可以充分利用磁盘阵列。
2> 历史数据调整的灵活性。
就像你所说的,留再大空间都不能保证100%不溢出。因而只能从统计意义上,留出20%的空间,保证80%的情况下不溢出。还有20%的情况下,就需要用PI提供的工具创建一个足够大的Archive文件来替换益处的Archive文件,新文件的起始与结束时间与原文件一致,然后将原文件从PI系统中注销,用Archive数据复制工具将原文件中的数据复制到新文件中,然后再把新文件注册到PI系统中。整个过程中平滑进行,不会对数据实时采集产生影响,因为新数据都是写到Primary Archive文件中。如果需要替换PrimaryArchive,那就先把PrimaryArchive切换到其他文件上。所以多文档在历史数据编辑、
网友评论2012-11-15 15:51:55
Lixeon
PI的整个数据模型和数据流模型总体上和其他的实时/历史数据库差不多,数据处理和存储系统也是有基于内存的实时数据库(称为Snapshot子系统)和基于文件的历史数据库(称为Archive子系统)组成。而整个系统的关键就是两道压缩过程,也是整个PI系统的精华所在。
PI数据流的第一道压缩由个接口实现,接口程序调用具有压缩算法的数据发送函数,将数据在发送到PI前进行取舍,其算法基于相邻数据点的时间和数值偏差。经过通过压缩(即没被舍去)的数据发送到Snapshot(中间可以有一道缓存机制)。第二道压缩在Snapshot将数据发送到Archive时进行,以前叫“平行四边形压缩法”,前两年改名叫“旋转门”,一种基于数据点之间斜率来确定数据点取舍的算法。
Archive系统的由多个称为Archive的数据文件组成,一般这些文件都是固定大小的。一个文件写满(并非完全写满,为新插入数据留有一定空间)切换到另外一个文件,如此轮流,当前写的那个文件称为Primary Archive。每个文件都标有数据的起始和结束时