一种基于“蓄水池”原理的动态数据存储与管理方法.pdf

上传人:111****11 文档编号:360576 上传时间:2018-02-11 格式:PDF 页数:11 大小:488.56KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810105926.1

申请日:

2008.05.07

公开号:

CN101609446A

公开日:

2009.12.23

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 17/30申请日:20080507授权公告日:20110413终止日期:20120507|||授权|||实质审查的生效|||公开

IPC分类号:

G06F17/30; G01D9/00

主分类号:

G06F17/30

申请人:

北京理工大学

发明人:

赵清杰; 张保军; 王 巍

地址:

100081北京市海淀区中关村南大街5号

优先权:

专利代理机构:

北京理工大学专利中心

代理人:

张利萍

PDF下载: PDF下载
内容摘要

本发明是一种基于“蓄水池”原理的动态数据存储与管理方法,涉及对大量动态数据的实时存储与管理,属于数据存储与信息处理领域。本发明针对单纯使用数据库或文件容器在完整性和实时性方面所存在的问题,本发明提出了“水池”容器的思想。把数据分别存储到“水池”容器和文件容器中。“水池”中主要存储当前数据,水池容量是动态变化的,从而保证数据处理及结果显示的实时性。使用多个文件来保存原始数据,从而保证数据存储的完整性和历史回放的快捷性与准确性。这种存储与管理大量动态数据的方法,即能保证数据的完整性,又能兼顾数据的实时性,取得了比较理想的实用效果。

权利要求书

1.  一种基于“蓄水池”原理的动态数据存储与管理方法,利用蓄水池的工作原理,提出了“水池”容器,并结合使用文件容器进行动态数据的存储与管理,其特征在于:采用向量容器做“水池”,包含如下对“水池”的操作:
1)建立“水池”:创建一个向量容器,通过调用向量容器的压入函数把水滴(即数据点)注入向量容器进行注水操作,通过调用向量容器的删除函数进行放水操作;
2)当水池中的水滴(数据点)数量等于或小于若干滴时,关闭放水阀,只打开注水阀,进入只注不放的状态;
3)当水池中的水滴数量大于若干滴时,打开放水阀,进入放水状态。这时要进行向文件容器中存储原始数据的操作。正常的波形绘制和解码,也从放水阀处获得数据点;
4)当需要进行暂停操作时,马上关闭放水阀,在此期间“水池”只接收数据点,不释放数据点,即处于只注水不放水的状态;
5)当进行追击操作时,注水与放水同时进行,放水的速度要大于注水的速度;
6)当水池中的水滴数量下降到某个值时,就立即把放水的速度改为等于注水的速度。

说明书

一种基于“蓄水池”原理的动态数据存储与管理方法
技术领域
本发明涉及对大量动态数据的实时存储与管理方法,属于数据存储与信息处理领域。
背景技术
在实际工业生产过程中,经常需要存储和管理生产过程所产生的大量的实时数据。例如对于油田钻井过程来说,泥浆泵在关停之前要工作很长时间。在这段时间内,随钻测量系统会产生数量庞大的原始数据,这为实时存储和处理随钻信号带来很大的挑战。另一方面,生产实际又要求必须维护数据的完整性和实时性,这样才能对现场工作人员提供及时、准确的井下各种物理参数数据,提高工作决策的正确性。当前国内企业正在使用的国外软件,采用数据库容器来存储和管理实时信号数据。其主要过程是首先从串口接受即时数据,然后把即时数据实时地存放到数据库中,各种后继操作所需的数据则都从该数据库读取。这种方法可以较好地保证数据的完整属性,但是由于数据量非常庞大,与之对应的数据库也就非常庞大,这样就造成了软件正常启动速度、后续各种操作对即时泥浆信号数据的处理速度都非常缓慢,严重破坏了整体实时性,满足不了实际生产的需要。如果只采用文件来保存数据,由于在操作过程中需要对原始数据进行曲线回放,仅仅打开这个文件就有可能把内存资源占完,造成机器处于假死机状态,而且文件数据查询起来也容易出错,这同样满足不了实际生产的需要。针对上述问题,本发明提出了基于“蓄水池”原理的动态数据存储与管理方法,并成功地用于石油钻井的随钻测量系统。
发明内容
发明内容
本发明的目的失着重解决数据存储的完整性以及数据处理与显示的实时性问题,提供一种有效的、能够对大量动态数据进行实时存储与管理的方法。
首先对数据完整性和数据实时性进行简单的解释。数据完整性这一术语用来泛指与损坏和丢失相对的数据的状态,它通常表明数据的可靠与准确性是可以信赖的,同时,在不好的情况下,意味着数据有可能是无效的,或者是不完整的。所谓数据的实时性,指的是即时性,即数据信息的处理到结果显示之间所需的时间要在允许的范围之内。为了解决数据存储的完整性以及数据处理与显示的实时性问题,参考日常生活中蓄水池的工作原理,本发明提出“水池”容器,“水池”中主要存储当前数据,其容量可以动态变化,这样可以保证数据操作的实时性;文件的永久保存性(可保存在硬盘中),可以保证数据的完整性。结合使用“水池”容器和文件容器进行数据管理,从而达到优势互补、增强性能的目的。
本发明的目的是通过下述技术方案实现的。
本发明的一种基于“蓄水池”原理的动态数据存储与管理方法,利用蓄水池的工作原理,提出了“水池”容器,并结合使用文件容器进行动态数据的存储与管理,采用向量容器做“水池”,包含如下对“水池”的操作:
1)建立“水池”:创建一个向量容器,通过调用向量容器的压入函数把水滴(即数据点)注入向量容器进行注水操作,通过调用向量容器的删除函数进行放水操作;
2)当水池中的水滴(数据点)数量等于或小于若干滴时,关闭放水阀,只打开注水阀,进入只注不放的状态;
3)当水池中的水滴数量大于若干滴时,打开放水阀,进入放水状态。这时要进行向文件容器中存储原始数据的操作。正常的波形绘制和解码,也从放水阀处获得数据点;
4)当需要进行暂停操作时,马上关闭放水阀,在此期间“水池”只接收数据点,不释放数据点,即处于只注水不放水的状态;
5)当进行追击操作时,注水与放水同时进行,放水的速度要大于注水的速度;
6)当水池中的水滴数量下降到某个值时,就立即把放水的速度改为等于注水的速度。
本发明用面向对象编程语言中的向量容器设计“水池”,它兼有数组和链表的优点。
当追击操作向正常操作过渡的关键时刻,可能出现“水池”为空的情况,而且此时还没有得到下一个数据点,此刻就会造成误读数据点的情况,破坏的数据的完整性。解决办法是:除了在关泵时,要把“水池”中的水放空外,在正常运行的情况下,“水池”中的水量要始终保持在若干滴(如5滴)以上。而这种“水池”容器只能在程序运行期间对数据进行暂时存储,不能满足永久保持数据的要求,所以要结合文件容器综合运用。
本发明所使用的文件容器并不是一个单独的文件。由于实际生产过程的周期很长(如几天时间),在这个过程中产生非常庞大的原始数据,采用一个文件存储所有数据是不科学的。而且在操作过程中,技术人员需要随时对某一段的原始数据进行重新分析(即曲线回放操作),这时仅仅打开这个文件有可能把内存资源占完,造成机器处于假死机状态。针对这种情况,本发明使用N个较小的文件代替一个大文件,每一个小文件的容量可以人为设定一个允许的值(如5M等)。当需要观察历史数据时,可以方便地进行回放操作,但不影响对当前和后续输入数据的采集、存储与处理。
本发明具有以下优点:
1、本发明提出“水池”容器,并结合使用“水池”容器和文件容器进行数据管理。
2、本发明提出一种有效的、能够对大量动态数据进行实时存储与管理的方法,可以同时保证数据完整性以及实时性的要求,满足实际生产的需要。
附图说明
图1是数据存储、处理与显示的流程图;
图2是文件容器中数据误读的波形图;
图3是结合使用“水池”及文件容器的数据波形图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
实施例
本发明可实施于需要对大量动态数据进行实时存储与显示的系统。在油田钻井过程中,随钻测量仪器跟随钻井过程进行数据采集、处理、分析计算、显示等操作。数据量随着生产的进行在不断地增加。如何存储和管理这样庞大的原始数据,同时要满足技术人员对数据的完整性和实时性提出的要求,一直是一个没有很好解决的难题。
采用本发明提出的“水池”容器技术,并结合使用文件容器进行数据管理,很好地解决了上面的难题。
图1所示的是随钻测量系统中数据存储、处理与显示的流程图。X表示外界传入的当前数据;串口是一个控件,用来接受当前数据,并把此当前数据送到“水池”入口处;“水池”有一个入口操作和出口操作,入口接受数据,出口把“水池”中的数据释放出来;文件部分是由多个小文件组成,存储所有的原始数据;绘图是画N个数据点组成的曲线,显示数据代表的意义等;解码就是把某段数据表示的物理参数解释出来。
采用“水池”容器存储技术,并结合使用文件容器的数据管理方法如下:
1)首先打开注水阀,然后开泵,当前“水滴”数量等于小于5滴时关闭放水阀,进入只注不放的状态。用程序实现就是只调用向量容器的数据压入函数。
2)当水池中的“水滴”数量大于5滴时,打开放水阀,进入放水状态,也就是调用向量容器的数据删除函数。这时要进行向文件容器中存储原始数据的操作。正常的波形绘制和解码,也从放水阀处获得数据点。
3)当需要进行暂停操作时,马上关闭放水阀,在此期间“水池”只接收数据点,不释放数据点,即处于只注水不放水的状态。
4)当进行追击操作时,注水与放水同时进行,放水的速度要大于注水的速度。
5)当水池中的水滴数量下降到5时,就立即把放水的速度改为等于注水的速度。
本应用实例中串口向“水池”中注水的速度是50ms一个数据点。由于当程序处于追击状态之前一定有一个暂停状态,所以当进行追击操作时,“水池”中“水滴”的数量一定是大于5的。为了尽量减少追击所用的时间,需要具有最大的放水速度,根据工作计算机的硬件性能,在本应用实例中是1ms读一个数据点。这样在最大限度内保持了参数解码结果显示的实时性。
在随钻测量过程中,需要进行SYN、FID、PLAY等操作。SYN操作是当同步信号未捕捉到时,需要放宽条件重新进行捕捉的操作;FID是同步信号正确,工作方式(FID)信号由于噪声干扰使解码结果产生错误,此时需要人为校正;PLAY操作是当工作人员在暂停状态观察分析波形及参数结果后,不需要进行SYN和FID等操作而进行的继续动作。这些操作都包含了暂停、追击等操作。
在使用数据库方法存储数据时,由于其数据量非常庞大,这样就造成了软件正常启动速度、后续各种操作对即时数据的处理速度都非常缓慢,严重破坏了整体实时性,满足不了实际生产的需要。鉴于数据库方法在数据显示的实时性方面性能比较差,因此下面只对只使用文件容器和结合使用“水池”及文件容器的实验结果进行比较。
1)文件容器方法:创建一个临时文件作容器来存储从暂停后到追击结束期间的串口接受的所有数据点。当暂停时,程序建立临时文件,并且串口同时向临时文件写数据,停止其它操作。当进入追击状态时,程序同时也就开始了波形绘制、参数解码,参数显示等等操作。此时追击结束的条件是,读到临时文件的未尾。
为了准确快捷地读出数据,对临时文件中数据的格式做一规定:每行存储一个数据,这样就要求在每行存完后有一个换行的操作。如果在换行前,追击操作恰好完成,此时参数就可以正确解出,否则就会出现多读一个空行的操作,即多读一个零值,这在在实际工作中是不允许出现的。
参见图2,可以看出后面的参数都未能解出,此方法造成了严重的错误。波形右端出现的白色竖线,表明绘制操作从临时文件的未尾多读了一个零值。
2)“水池”及文件容器结合方法:利用本发明的方法,创建一个“水池”来存储从暂停后到追击结束期间的串口接受的所有数据点。当暂停时,“水池”只关闭放水阀,放水阀打开状态不变,接受从串口输入的数据点,程序停止其它操作。当进入追击状态时,“水池”放水阀打开,程序同时也就开始了波形绘制、参数解码,参数显示等操作。此时追击结束的条件是,“水池”中剩下水滴量是一个固定大小的值。
采用这种方法,除停泵之外,“水池”在其它任何状态下,都有一部分储量,保证了每一次从“水池”中都能正确地读到一个有效的数据点,很好地避免了误读数据点的情况发生。
由于现场技术人员需要不断查询和观察过去的数据,因此还要把这些数据存入文件。为了保证数据整体性同时又使数据查询方便,本发明采用多个文件代替一个文件。在本应用实例中,每一个文件的容量可设定为1M字节。当进行回放操作时,可以立即关闭当前文件,立即产生一个新的文件用以存储其后串口接受的数据。这样曲线回放操作可以回放除当前文件以外的其它波形,这样不仅可以看历次的开关泵的数据波形,也可以看本次开泵后的数据,提高了实时性性能。曲线回放操作对实时性要求不高,但在暂停、“追击”等操作对实时性拥有严格的要求,此时用一个单独的临时的文件容器去存储这部分数据点。当处理暂停状态时,就向这个临时的文件容器存储数据,当前处于追击状态时,在向这文件容器存储数据的同时,要读数据,直至读完,完成追击任务过渡到正常绘制波形和解码状态。
结果如图3所示。
经过多次钻井现场实验证明,这种方法是理想的、满足钻井现场实际需要的最佳数据管理方法。

一种基于“蓄水池”原理的动态数据存储与管理方法.pdf_第1页
第1页 / 共11页
一种基于“蓄水池”原理的动态数据存储与管理方法.pdf_第2页
第2页 / 共11页
一种基于“蓄水池”原理的动态数据存储与管理方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种基于“蓄水池”原理的动态数据存储与管理方法.pdf》由会员分享,可在线阅读,更多相关《一种基于“蓄水池”原理的动态数据存储与管理方法.pdf(11页珍藏版)》请在专利查询网上搜索。

本发明是一种基于“蓄水池”原理的动态数据存储与管理方法,涉及对大量动态数据的实时存储与管理,属于数据存储与信息处理领域。本发明针对单纯使用数据库或文件容器在完整性和实时性方面所存在的问题,本发明提出了“水池”容器的思想。把数据分别存储到“水池”容器和文件容器中。“水池”中主要存储当前数据,水池容量是动态变化的,从而保证数据处理及结果显示的实时性。使用多个文件来保存原始数据,从而保证数据存储的完整性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1