CN111090662A - 从实时数据库获取数据到关系数据库的方法及设备、介质 - Google Patents
从实时数据库获取数据到关系数据库的方法及设备、介质 Download PDFInfo
- Publication number
- CN111090662A CN111090662A CN201911318305.6A CN201911318305A CN111090662A CN 111090662 A CN111090662 A CN 111090662A CN 201911318305 A CN201911318305 A CN 201911318305A CN 111090662 A CN111090662 A CN 111090662A
- Authority
- CN
- China
- Prior art keywords
- data
- difference
- time
- dead zone
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000000126 substance Substances 0.000 claims description 3
- 238000007405 data analysis Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000007788 liquid Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005025 nuclear technology Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了从实时数据库获取数据到关系数据库的方法及设备、介质。方法包括:获取实时数据库中的第一数据,以及获取第一数据对应的历史数据;获取第一数据对应的差异死区,差异死区包括差异比例死区和/或差异绝对值死区;确定第一数据与历史数据之间的绝对差异,以及根据差异死区,确定第一数据与所述历史数据之间的参考差异;若绝对差异和参考差异满足预设条件,则将第一数据转换为相应的第二数据后写入关系数据库中。本申请能够根据差异死区从实时数据库的数据中剔除一部分无效数据,将有效数据转换为关系数据,有助于提高后续数据分析的效率和可靠性,因此,更有效地利用了实时数据库中的数据。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及从实时数据库获取数据到关系数据库的方法及设备、介质。
背景技术
现阶段,我国核技术实现突飞猛进的发展,安全可靠是重中之重,如何保证业务设备(包括核电设备)的安全运行,成为主要的话题,核电设备运行关键数据包括温度、压力、流量以及其他开关量数据等,这些数据是通过相应的传感器获得,并通过传感器接口转入实时数据库,因其数据量巨大,只能利用实时数据库存储,常用的实时数据库包括PlantInformation System(PI)数据库,如何对这些数据进行分析,从而实现安全性的判断,成为主要的研究方向,主要体现在如下几个方面:
1、实时数据库中的伪信号
传感器存储到实时数据库中的数据有大量的伪信号,这些伪信号的存在只会给数据分析带来扰乱,并给分析带来速度上的影响;
2、大量重复数据的出现影响分析
实时数据库中的信号存在大量的重复数据,这些重复数据其实是因业务设备在运行稳定和良好状态下其工艺数据差异极小产生的,对数据的趋势分析作用不大,因此需要对这些差异数据进行分析,根据特定算法计算差异数据的差异死区,再根据差异值是否落在差异死区内确定是否为重复数据,然后将这些重复数据可以剔除,只保留差异疲劳数据进行分析;
3、特殊数据的存在
一些开关量信号数据和特殊信息数据是不需要参与分析的,这些信号数据可以剔除;
4、人为等客观因素造成的数据断层
由于一些特殊原因,实时数据库中的数据并不是完整的,比如,因业务设备调试或者其他原因,业务设备可能会断电电停止运行,设备疲劳数据也就不会产生;再比如,由于一些特殊原因,实时数据并未从传感器存入实时数据库;这两种情况会导致数据断层,而趋势分析算法要求疲劳数据是连续的,因此对中断的数据需要有补充的手段。
基于此,需要能够更为有效利用实时数据库中的数据的方案。
发明内容
本申请实施例提供从实时数据库获取数据到关系数据库的方法及设备、介质,用以解决现有技术中的如下技术问题:需要能够更为有效利用实时数据库中的数据的方案。
本申请实施例采用下述技术方案:
一种从实时数据库获取数据到关系数据库的方法,包括:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异死区,所述差异死区包括差异比例死区和/或差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
可选地,若所述差异死区包括所述差异绝对值死区,则获取所述第一数据对应的差异死区,包括:
获取为所述第一数据预设的对应的差异绝对值死区;或者,
根据所述历史数据,确定所述第一数据对应的差异绝对值死区。
可选地,若所述差异死区包括所述差异比例死区和所述差异绝对值死区,则根据所述差异死区,确定所述第一数据相比于所述历史数据的参考差异,包括:
根据所述差异比例死区和所述历史数据,确定比例差异;
根据所述比例差异和所述差异绝对值死区,确定所述第一数据相比于所述历史数据的参考差异。
可选地,所述方法还包括:
获取所述第一数据对应的第一时间,所述第一时间为所述第一数据的记录时间;
确定不早于所述第一时间的第二时间;
获取记录时间在所述第二时间至晚于所述第二时间的预设截止时间期间,所述实时数据库中的第三数据;
根据所述第三数据,向所述关系数据库中相应地写入数据。
可选地,获取所述第一数据后,获取所述第三数据前,所述第一数据为当前已从所述实时数据库中获取的记录时间最晚的数据。
可选地,获取记录时间在所述第二时间至晚于所述第二时间的预设截止时间期间,所述实时数据库中的第三数据,包括:
将所述第二时间确定为起点,尝试获取记录时间在该起点起之后的设定时长内,所述实时数据库中的第三数据;
若获取成功,则根据本次获取的最晚记录的数据的记录时间,重新确定起点,再根据重新确定的起点,继续尝试获取第三数据,重复执行该步骤,直至所述设定时长包含所述预设截止时间,其中,重新确定的起点不早于该记录时间。
可选地,将所述第二时间确定为起点,尝试获取从该起点起之后的设定时长内,所述实时数据库中写入的第三数据后,所述方法还包括:
若获取失败,则增加所述设定时长,重新尝试获取从该起点起之后的增加后的设定时长内,所述实时数据库中写入的第三数据。
可选地,所述预设截止时间为所述关系数据库的服务器的当前时间。
一种从实时数据库获取数据到关系数据库的设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异比例死区和差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异比例死区和所述差异绝对值死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
一种从实时数据库获取数据到关系数据库的介质,所述介质包括非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异比例死区和差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异比例死区和所述差异绝对值死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:能够根据差异死区从实时数据库的数据中剔除一部分无效数据,将有效数据转换为关系数据,有助于提高后续数据分析的效率和可靠性,因此,更有效地利用了实时数据库中的数据。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请的一些实施例提供的从实时数据库获取数据到关系数据库的方法的流程示意图;
图2为本申请的一些实施例提供的一种应用场景下,图1的方法的一种详细流程示意图;
图3为本申请的一些实施例提供的一种应用场景下,一种续读数据方案的详细流程示意图;
图4为本申请的一些实施例提供的一种应用场景下,图3的方案的原理示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请公开了从实时数据库获取数据到关系数据库的方案。方案主要具有以下特点:将实时数据库中的实时数据转换成关系数据,写入关系数据库(该过程可以称为将实时数据更新至关系数据库中);实时数据从实时数据库转入关系数据库时,会按照一些算法,剔除无效数据(可以包括对后续数据分析作用不大的数据),包括伪信号、重复数据、开关量数据以及其他一些特殊类型数据;实时数据可以采集自业务设备(比如,核电设备的温度、压力、流量等数据),通过对实时数据的这类预加工处理以及分析,实现对设备数据的分析预测。
通过设备数据的分析预测,能够代替通过经验识别及感官的方式去判断业务设备等在内设施的疲劳程度。具体到核电设备,核电设备具有一定的危险性,通过对核电设备数据的分析预测,既能准确的判断出核电设备的状态,也能更好的保证核电设备的安全及操作人员的安全。
在一种应用场景下,从实时数据库获取数据到关系数据库,可以采用以下方式:从实时数据库获取实时数据,采用实时接口的方式,调用应用程序接口(ApplicationProgramming Interface,API)函数获取。但是,经过实测运行,发现数据库厂商开发的API接口存在众多问题,包括:API函数会传递大量无意义的重复数据,这些数据在实时数据库内是正常的,但是API函数获取数据的时候会自动产生杂乱的重复数据;API函数不能实现去除伪信号、剔除重复信号、以及对开关量数据剔除的功能;API函数对不同类型信号的时间区间无法区分,不能连续获取信号数据。本申请的方案能够至少部分解决这些具体问题,下面进行说明。
图1为本申请的一些实施例提供的从实时数据库获取数据到关系数据库的方法的流程示意图。
图1的方法包括如下步骤:
S100:获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据。
在本申请的一些实施例中,假定第一数据为某个温度参数的值,则历史数据比如为上一次记录的该温度参数的值或者上几次记录的该温度参数的值的平均值等,历史数据可以获取自实时数据库,或者若历史数据已经更新至关系数据库中,则也可以获取自关系数据库。
获取历史数据的目的是为了确定是否需要将第一数据更新至关系数据库中,若第一数据相比于历史数据变化过小,或者是预定的其他一些无效数据(比如,开关量数据等),则可以忽略第一数据,而不将其更新至关系数据库中。
S102:获取所述第一数据对应的差异死区,所述差异死区包括差异比例死区和/或差异绝对值死区。
在本申请的一些实施例中,差异死区能够用于判定第一数据相比于历史数据是否变化过小,比如,当第一数据与历史数据之间的差异落在差异死区内,则可以判定第一数据相比于历史数据变化过小。
差异、差异死区可以通过比例和/或绝对值度量,这里的比例可以指第一数据与历史数据之间的绝对差异相比于历史数据的比例,更直观地,比例具体可以采用百分比。若第一数据与历史数据是数值型数据,则绝对差异比如为第一数据与历史数据之差或者之差的绝对值。
S104:确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异死区,确定所述第一数据与所述历史数据之间的参考差异。
在本申请的一些实施例中,参考差异可以处于差异死区内外临界点。当差异死区只包括差异比例死区和差异绝对值死区这两者之一,则可以直接用绝对差异确定参考差异。而若差异死区同时包括差异比例死区和差异绝对值死区,则可以按照一定的策略,先选择差异比例死区或者差异绝对值死区,再根据所选择的差异死区确定参考差异;或者,也可以通过综合考虑差异比例死区和差异绝对值死区(比如,取两者平均值等),得出另一个综合考虑的死区,用于计算参考差异。
S106:若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
在本申请的一些实施例中,若绝对差异大于参考差异,可以认为绝对差异落在差异死区外,则需要将第一数据更新至关系数据库中。步骤S106中的转换动作主要是为了将实时数据的格式转换为关系数据的格式,以便能够成功写入关系数据库中,可以不影响数据的实质内容,在这种情况下,第一数据和第二数据的实质内容是相同的。
上一段中只是示例性地列出了其中一种预设条件,本申请并不限定这是步骤S106中唯一的预设条件。
通过图1的方法,能够根据差异死区从实时数据库的数据中剔除一部分无效数据,将有效数据转换为关系数据,有助于提高后续数据分析的效率和可靠性,因此,更有效地利用了实时数据库中的数据。
在本申请的一些实施例中,若差异死区包括差异绝对值死区,则获取第一数据对应的差异死区,可以包括:获取为第一数据预设的对应的差异绝对值死区;或者,根据历史数据,确定第一数据对应的差异绝对值死区。前一种方案的优点在于差异绝对值死区比较固定,便于减少处理资源,后一种方案的优点在于,可以根据数据的实际变化趋势,灵活调整差异死区,适应性较好。
在本申请的一些实施例中,若差异死区同时包括差异比例死区和差异绝对值死区,可以根据差异比例死区和历史数据,确定比例差异,再根据比例差异和差异绝对值死区,确定第一数据相比于历史数据的参考差异。需要说明的是,这里的比例差异是指按照预先指定的比例,计算出的可能做为参考的绝对值差异,但是由于根据按照差异绝对值死区,也能够计算出的可能做为参考的绝对值差异,那么最终到底采用哪个绝对值差异作为参考差异,可以取决于预定策略,比如,可以预先指定取两者中较小的一方作为参考差异。
根据前面的说明,更直观地,本申请的一些实施例提供了一种应用场景下,图1的方法的一种详细流程示意图,作为示例参考,如图2所示,在该应用场景下,实时数据库中采集的数据可以来自核电设备,比如,假定包括温度、压力、流量、液位开关。
图2的流程可以涉及以下步骤:
对除液位开关以外的实时数据的测点设定以下几个差异判断参数:差异比例死区,温度的差异绝对值死区,允许为空值(NULL),压力的差异绝对值死区,允许为空值(NULL),流量的差异绝对值死区,允许为空值(NULL)。另外还设定上下限比较方式,用于确定以差异比例死区作参考还是以差异绝对值死区作参考,其为逻辑值,“是”表示取最大值,“否”表示取最小值,默认为“否”。
基于上面的设定,判断测点是否是液位开关,若否,则计算差异绝对值死区,若是,则比较新值(比如为上述的第一数据)与旧值(比如为上述的第一数据的历史数据)是否相等,不相等则将新值更新至关系数据库中,相等则可以不更新。
计算差异绝对值死区,包括:
根据当前测点类型(温度、压力或者流量),确定相应为其设定的差异绝对值死区,若设定的差异绝对值死区不为空,则:
直接使[差异绝对值死区]=[设定的差异绝对值死区];
若设定的差异绝对值死区为空,则公式修改为:
[差异绝对值死区]=[旧值]×1/100(此处的百分比值是示例性的,也可以设定为其他的百分比值);继续执行后面的步骤。
计算比例差异,公式为:
[比例差异]=[旧值]×[差异比例死区];
根据上下限比较方式确定参考差异:
如果[上下限比较方式]等于“是”,则取[差异绝对值死区]和[比例差异]二者的最大值,公式为:
[参考差异]=|Max([差异绝对值死区],[比例差异])|;
如果[上下限比较方式]等于“否”,则取[差异绝对值死区]和[比例差异]二者的最小值,公式为:
[参考差异]=|Min([差异绝对值死区],[比例差异])|;
计算绝对差异:
[绝对差异]=|[新值]-[旧值]|;
判断是否需要将新值更新至关系数据库中:
若[绝对差]大于[差异]则认为是新值有效,需要更新,否则可以忽略。
在实际应用中,转换实时数据为关系数据是一个持续不断的过程,只要业务设备一直在运行,这个过程就要一直持续下去,但是考虑到各种异常情况,可能会发生转换进程中断的情况,当转换进程继续进行时,不可能从最初始的时间从头获取,因此在异常发生时,需要记录一个时间断点,下一次获取应从断点位置继续,这个断点可以是实时数据库的服务器时间。
由于实时数据库的服务器时间与关系数据库的服务器时间可能不一致,因此,本申请可以将最后获取数据的实时数据库的服务器时间作为断点,而不采用关系数据库的服务器时间。
采用实时数据库的服务器时间作为断点时间也会产生一个问题,实时数据实际记录的是业务设备时间,这个时间与实时数据库的服务器时间可能是不一致的,因此同样不能把实时数据库的服务器时间作为断点,看起来应该把业务设备测点的时间作为断点,但是,每种业务设备都有自己的时钟,都可能存在时间差,也可能与实时数据库的服务器时间不一致,而且API函数也无法确定业务设备的时间。
为了解决这个问题,本申请的方案做了相关处理,包括:每个测点的断点,确定为上次获取到数据的时间(可以以数据的记录时间为准),或者该时间稍晚一点的时间,如此,当进程中断重新开始时,获取实时数据的起始时间,可以取上次获取的实时数据的记录时间,而时间区间的截止时间可以取关系数据库的服务器的当前时间;如果进程一直在进行,则将上次取数的截止时间作为起始时间,如此,能够绕开实时数据库的服务器时间和业务设备时间,同时保证获取的数据是连续的,不会丢数据。
基于上面的分析,继续基于图1进行说明,
本申请的一些实施例中,针对图1的流程,还可以执行:获取第一数据对应的第一时间,第一时间为第一数据的记录时间;确定不早于第一时间的第二时间;获取记录时间在第二时间至晚于第二时间的预设截止时间期间,实时数据库中的第三数据;根据第三数据,向关系数据库中相应地写入数据。预设截止时间比如为关系数据库的服务器的当前时间。
这里,是假定对第一数据更新后(第一数据为获取第三数据前,当前已从实时数据库中获取的记录时间最晚的数据),出现了断点,断点恢复重新开始获取数据时,可以以第一数据为基准,继续往后获取数据,若第二时间等于第一时间,仍然有可能重复获取数据,则可以使第二时间略晚于第一时间,比如,比第一时间晚1秒等。第三数据表示记录时间晚于第一时间的实时数据。
在本申请的一些实施例中,若断点距离关系数据库的服务器的当前时间较长,则可以对时间分段尝试获取第三数据,以便于管理,基于此,获取记录时间在第二时间至晚于第二时间的预设截止时间期间,实时数据库中的第三数据,可以包括:将第二时间确定为起点,尝试获取记录时间在该起点起之后的设定时长内,实时数据库中的第三数据;若获取成功,则根据本次获取的最晚记录的数据的记录时间,重新确定起点,再根据重新确定的起点,继续尝试获取第三数据,重复执行该步骤,直至设定时长包含预设截止时间,其中,重新确定的起点不早于该记录时间。
进一步地,将第二时间确定为起点,尝试获取从该起点起之后的设定时长内,实时数据库中写入的第三数据后,还可以执行:若获取失败(可能由于无数据或者出现了新的断点导致),则增加设定时长,重新尝试获取从该起点起之后的增加后的设定时长内,实时数据库中写入的第三数据。从而,一方面有助于防止遗漏数据,另一方面也能够高效地继续往后获取数据。
根据前面的说明,更直观地,本申请的一些实施例提供了一种应用场景下,一种续读数据方案的详细流程示意图,作为示例参考,如图3所示,在该应用场景下,上次获取的数据(假定以上述的第一数据为第一次获取的数据)的记录时间记作t,第二时间记作A,当前的时间分段的截止时间记作B,初始的设定时长为1小时。
图3中的流程包括以下步骤:
从实时数据库获取上次的数据及其记录时间t,若获取失败,则将t设定为预设默认值(图中以2016/12/01为例),若获取成功则将A设定为t+1秒,B设定为A+1小时,以A为起点,往后尝试获取实时数据库中记录时间在A至B时间区间内的数据。
若尝试获取成功,获取的数据用数组进行保存,对数组循环进行差异判断,以确定数据中的数据是否需要更新至关系数据库中,数组遍历处理完毕后,更新时间区间,继续尝试获取数据。
若尝试获取失败,则A不便,将B增加1小时,继续尝试获取数据,若当前时间区间将要超过关系数据库的服务器的当前时间,则将B直接设定为关系数据库的服务器的当前时间即可。
图4为本申请的一些实施例提供的一种应用场景下,图3的方案的原理示意图。
在图4中,第一数据(其所在时间区间内的最后一个值)的记录时间为0:37,下一次(假定记作第2次)尝试获取数据的时间区间可以取(0:37,1:37],左端点比如取0:37加1秒;由于无值第2次尝试获取失败,则将时间区间往后增加一小时,取(0:37,2:37],尝试获取成功,获取的数据最晚的记录时间为2:10(标示了该时间区间内最后一个值),则第3次尝试获取数据的时间区间可以取(2:10,3:10];由于无值第3次尝试获取失败,则可以将时间区间往后增加一小时,取(2:10,4:10],但是,由于关系数据库的服务器的当前时间为3:40,早于4:10,则将时间区间取(2:10,3:40],也即,截止到关系数据库的服务器的当前时间,第4次尝试获取数据。
在本申请的一些实施例中,从实时数据库中获取数据到关系数据库,由于实时数据往往数据量巨大,则还需要考虑数据处理的效率问题。本申请为了解决效率问题,可以采用多线程来实现数据的读取和更新等处理过程。
例如,采用三个线程各司其职,大幅度提高算法效率,下面结合一些示例性的代码进行说明,这里的代码仅做参考并不构成对本申请的限定。
线程一:读取用于采集业务设备的实时数据的测点的基本信息,由于测点可能随时存在变化,比如添加一个业务设备或者撤除一个业务设备,或者因维修暂停一个业务设备,因此,需要定时刷新测点,从实时数据库获取可用的测点信息,并根据测点变化获取实时数据。
测点信息列表用数据列表来实现:
List<PIPoint>lstPIPoint=new List<PIPoint>();//测点列表;
要注意的是,lstPIPoint是多个线程读和写的数据,需要注意进程互斥的问题,为了方式数据冲突,在刷新列表时,可以提前锁定,代码示意如下:
线程二:对线程一读取的测点列表,循环从实时数据库读取实时数据,并按照前面提供的方案进行数据处理,处理完毕的数据可以暂时存储在数据字典中。数据字典中,值采用队列的方式存储,是为了实现实时数据从队列头部***,存储到关系数据库的时候从队尾读出,代码示意如下:
Dictionary<PIPoint,Queue>piDataCollection=newDictionary<PIPoint,Queue>();//存储获取的实时数据集合;
算法同样要注意线程冲突的问题,对lstPIPoint,为了规避冲突,需要锁定,然后建立一个新的临时列表,保证之后的操作不会再产生冲突,代码示意如下:
线程三:对线程二读取的实时数据更新至关系数据库
线程二处理后数据存储在一个队列中,线程三负责从队列尾取出该数据,并更新至关系数据库。
这样同样要防止产生互斥冲突,针对piDataCollection,代码示意如下:
通过多线程处理,能够实现1000个以上的测点的实时数据处理需求。
基于同样的思路,本申请的一些实施例还提供了上述***对应的设备、介质。
本申请的一些实施例提供的一种从实时数据库获取数据到关系数据库的设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异比例死区和差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异比例死区和所述差异绝对值死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
本申请的一些实施例提供的一种从实时数据库获取数据到关系数据库的介质,所述介质包括非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异比例死区和差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异比例死区和所述差异绝对值死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法、设备和介质实施例而言,由于其基本相似于***实施例,所以描述的比较简单,相关之处参见***实施例的部分说明即可。
本申请实施例提供的方法、介质与***是对应的,因此,方法、设备和介质也具有与其对应的***类似的有益技术效果。
本领域内的技术人员应明白,本发明的实施例可提供为***、设备、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种从实时数据库获取数据到关系数据库的方法,其特征在于,包括:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异死区,所述差异死区包括差异比例死区和/或差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
2.如权利要求1所述的方法,其特征在于,若所述差异死区包括所述差异绝对值死区,则获取所述第一数据对应的差异死区,包括:
获取为所述第一数据预设的对应的差异绝对值死区;或者,
根据所述历史数据,确定所述第一数据对应的差异绝对值死区。
3.如权利要求1所述的方法,其特征在于,若所述差异死区包括所述差异比例死区和所述差异绝对值死区,则根据所述差异死区,确定所述第一数据相比于所述历史数据的参考差异,包括:
根据所述差异比例死区和所述历史数据,确定比例差异;
根据所述比例差异和所述差异绝对值死区,确定所述第一数据相比于所述历史数据的参考差异。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一数据对应的第一时间,所述第一时间为所述第一数据的记录时间;
确定不早于所述第一时间的第二时间;
获取记录时间在所述第二时间至晚于所述第二时间的预设截止时间期间,所述实时数据库中的第三数据;
根据所述第三数据,向所述关系数据库中相应地写入数据。
5.如权利要求4所述的方法,其特征在于,获取所述第一数据后,获取所述第三数据前,所述第一数据为当前已从所述实时数据库中获取的记录时间最晚的数据。
6.如权利要求4所述的方法,其特征在于,获取记录时间在所述第二时间至晚于所述第二时间的预设截止时间期间,所述实时数据库中的第三数据,包括:
将所述第二时间确定为起点,尝试获取记录时间在该起点起之后的设定时长内,所述实时数据库中的第三数据;
若获取成功,则根据本次获取的最晚记录的数据的记录时间,重新确定起点,再根据重新确定的起点,继续尝试获取第三数据,重复执行该步骤,直至所述设定时长包含所述预设截止时间,其中,重新确定的起点不早于该记录时间。
7.如权利要求4所述的方法,其特征在于,将所述第二时间确定为起点,尝试获取从该起点起之后的设定时长内,所述实时数据库中写入的第三数据后,所述方法还包括:
若获取失败,则增加所述设定时长,重新尝试获取从该起点起之后的增加后的设定时长内,所述实时数据库中写入的第三数据。
8.如权利要求4~7任一项所述的方法,其特征在于,所述预设截止时间为所述关系数据库的服务器的当前时间。
9.一种从实时数据库获取数据到关系数据库的设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异比例死区和差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异比例死区和所述差异绝对值死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
10.一种从实时数据库获取数据到关系数据库的介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:
获取所述实时数据库中的第一数据,以及获取所述第一数据对应的历史数据;
获取所述第一数据对应的差异比例死区和差异绝对值死区;
确定所述第一数据与所述历史数据之间的绝对差异,以及根据所述差异比例死区和所述差异绝对值死区,确定所述第一数据与所述历史数据之间的参考差异;
若所述绝对差异和所述参考差异满足预设条件,则将所述第一数据转换为相应的第二数据后写入所述关系数据库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911318305.6A CN111090662B (zh) | 2019-12-19 | 2019-12-19 | 从实时数据库获取数据到关系数据库的方法及设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911318305.6A CN111090662B (zh) | 2019-12-19 | 2019-12-19 | 从实时数据库获取数据到关系数据库的方法及设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111090662A true CN111090662A (zh) | 2020-05-01 |
CN111090662B CN111090662B (zh) | 2024-01-30 |
Family
ID=70396015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911318305.6A Active CN111090662B (zh) | 2019-12-19 | 2019-12-19 | 从实时数据库获取数据到关系数据库的方法及设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111090662B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331495A (zh) * | 2014-11-19 | 2015-02-04 | 北京国电软通江苏科技有限公司 | 一种数据压缩方法 |
US20150293952A1 (en) * | 2014-04-11 | 2015-10-15 | Bank Of America Corporation | Method for tracking differences between production and development databases to perform an automatic synchronization |
CN105425683A (zh) * | 2015-12-28 | 2016-03-23 | 北京四方继保自动化股份有限公司 | 一种基于阶梯式动态死区的模拟量采集方法 |
CN106886244A (zh) * | 2015-12-15 | 2017-06-23 | 上海汽车集团股份有限公司 | 用于获取零流量控制电流的方法及换挡执行机构 |
CN108320069A (zh) * | 2017-12-20 | 2018-07-24 | 甘肃银光化学工业集团有限公司 | 一种生产制造执行*** |
CN108320480A (zh) * | 2018-04-03 | 2018-07-24 | 山东科技大学 | 一种死区报警器的参数确定方法 |
CN108694241A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 一种数据的存储方法及设备 |
CN109614393A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 数据核对方法及装置 |
-
2019
- 2019-12-19 CN CN201911318305.6A patent/CN111090662B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150293952A1 (en) * | 2014-04-11 | 2015-10-15 | Bank Of America Corporation | Method for tracking differences between production and development databases to perform an automatic synchronization |
CN104331495A (zh) * | 2014-11-19 | 2015-02-04 | 北京国电软通江苏科技有限公司 | 一种数据压缩方法 |
CN106886244A (zh) * | 2015-12-15 | 2017-06-23 | 上海汽车集团股份有限公司 | 用于获取零流量控制电流的方法及换挡执行机构 |
CN105425683A (zh) * | 2015-12-28 | 2016-03-23 | 北京四方继保自动化股份有限公司 | 一种基于阶梯式动态死区的模拟量采集方法 |
CN108320069A (zh) * | 2017-12-20 | 2018-07-24 | 甘肃银光化学工业集团有限公司 | 一种生产制造执行*** |
CN108320480A (zh) * | 2018-04-03 | 2018-07-24 | 山东科技大学 | 一种死区报警器的参数确定方法 |
CN108694241A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 一种数据的存储方法及设备 |
CN109614393A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 数据核对方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111090662B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110661659B (zh) | 一种告警方法、装置、***及电子设备 | |
US20180365085A1 (en) | Method and apparatus for monitoring client applications | |
CN108363657B (zh) | 监控app客户端埋点数据采集完整性的方法、设备以及介质 | |
CN110579694B (zh) | 电弧故障的检测方法及装置、存储介质及处理器 | |
CN111984495A (zh) | 一种大数据监控方法、装置和存储介质 | |
CN112583944B (zh) | 一种更新域名证书的处理方法和装置 | |
CN112596997A (zh) | 一种基于Flink实时计算的自动化流控制方法 | |
CN106294470B (zh) | 基于切分日志的实时增量日志信息读取的方法 | |
CN109284193A (zh) | 一种基于多线程的分布式数据处理方法及服务器 | |
CN111090662A (zh) | 从实时数据库获取数据到关系数据库的方法及设备、介质 | |
CN113123955B (zh) | 柱塞泵异常检测方法、装置、存储介质及电子设备 | |
CN111049684B (zh) | 数据分析方法、装置、设备和存储介质 | |
CN117319527A (zh) | 一种基于标识解析网关的时序数据处理方法、设备及介质 | |
CN112035322A (zh) | Jvm监控方法及装置 | |
CN113535697B (zh) | 爬架数据清理方法、爬架控制装置及存储介质 | |
CN107562703A (zh) | 字典树重构方法及*** | |
CN116361631A (zh) | 时间序列数据周期检测、异常检测、资源调度方法及设备 | |
CN113472881B (zh) | 在线终端设备的统计方法和装置 | |
CN115454618A (zh) | 虚拟资源的数据处理方法及装置、存储介质、处理器 | |
CN113886342A (zh) | 文件的格式转换方法、装置、存储介质及处理器 | |
CN109490788B (zh) | 蓄电池组容量的预测方法和装置 | |
CN111160874A (zh) | 一种基于煤矿人员联网***的出入井异常判断方法及装置 | |
CN112650613A (zh) | 一种错误信息处理方法、装置、电子设备及存储介质 | |
CN112580827A (zh) | 工单的生成方法和装置 | |
CN110768847B (zh) | 电力数据的处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |