CN117591577A - 一种基于文件存储的核电历史数据对比方法及系统 - Google Patents
一种基于文件存储的核电历史数据对比方法及系统 Download PDFInfo
- Publication number
- CN117591577A CN117591577A CN202410070801.9A CN202410070801A CN117591577A CN 117591577 A CN117591577 A CN 117591577A CN 202410070801 A CN202410070801 A CN 202410070801A CN 117591577 A CN117591577 A CN 117591577A
- Authority
- CN
- China
- Prior art keywords
- file
- historical data
- measuring point
- data
- files
- 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 38
- 238000005259 measurement Methods 0.000 claims abstract description 30
- 238000009795 derivation Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 230000001502 supplementing effect Effects 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/164—File meta data generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于文件存储的核电历史数据对比方法,包括:S1根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,历史数据文件包括多组测点历史数据文件,每个测点历史数据文件存储一个测点一年的历史数据;S2将历史数据文件与全量数据库中源数据进行比较,其中,全量数据库中每个天文件存储测点其中一天的源数据且每个天文件以源数据对应的采集时间戳命名:基于测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同;S3基于全部的存在值差异的历史数据记录形成差异性文件。
Description
技术领域
本发明属于核电数据处理技术领域,尤其涉及一种基于文件存储的核电历史数据对比方法、系统、计算机设备及存储介质。
背景技术
核电工业互联网平台边缘侧接入并存储了电厂的海量时序数据,根据核电数据业务特点可以将时序数据划分为近实时数据和历史数据,其中,在将历史数据由边缘侧传输到中心侧的过程中往往会遇到数据不完整和不可靠的问题,具体而言,历史数据具有数据量大和时间跨度大的特点,由于历史传输链路较长和数据流转环节较多等原因,导致最终存储到核电工业互联网平台的数据存在不完整的问题,由于核电工业互联网平台中需要基于历史数据的各项应用与分析,其对连续时间区间内的历史数据质量要求较高,否则会影响应用与分析的可靠性,因此,为提高核电工业互联网平台中存储的海量历史数据的完整性与可靠性,故在历史数据存储至核电工业互联网平台后,核电工业互联网平台还设计了对有问题的历史数据进行补充采集的方案,在进行历史补采的时候,通常需要对历史数据库中的数据进行全量对比,确认是否存在遗漏或者错误,以确保历史数据库中的数据的准确性,从而后续基于历史数据进行资产加工时,不会由于数据问题导致后续建模分析等应用准确不足;核电历史数据往往包括七八年的数据,在进行数据对比时,测点众多,每个测点每天采集的数据量通常为百条以上,历史数据总量通常达到十亿级别,因此如何从海量数据快速定位问题数据以用于后续问题数据的补充采集是目前亟需解决的问题。
发明内容
有鉴于此,有必要提供一种基于文件存储的核电历史数据对比方法,用以解决海量数据中问题数据的快速定位问题。
本发明提供一种基于文件存储的历史数据对比方法,包括如下步骤:
S1根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,所述历史数据文件包括多组测点历史数据文件,每个所述测点历史数据文件存储一个测点一年的历史数据,且所述历史数据按照各自采集时间戳的顺序存储,并基于测点名、导出开始日期与导出结束日期为每个测点历史数据文件命名;
S2将所述历史数据文件与全量数据库中源数据进行比较,其中,所述全量数据库中,每个测点对应设置一个文件夹,每个文件夹的存储与访问路径设置为电厂/机组/测点,所述源数据以天文件的形式分片存储在指定的文件夹下,每个所述天文件存储测点其中一天的源数据且每个天文件在该文件夹下以对应的采集时间戳命名;
将所述历史数据文件与全量数据库中源数据进行比较包括:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同以获取存在值差异的历史数据记录;
S3基于全部的存在值差异的历史数据记录形成差异性文件。
优选的,根据预设的测点范围与时间范围从历史数据库中导出历史数据文件包括如下步骤:
S11根据预设的测点范围为每个测点生成txt文件;
S12基于所述时间范围为每个所述txt文件分配导出开始日期与导出结束日期,其中,所述导出开始日期与导出结束日期以年为单位进行;
S13对于每个txt文件,基于所述导出开始日期与导出结束日期从历史数据库中查询对应的历史数据并按照采集时间戳的顺序写入至所述txt文件以形成所述测点历史数据文件。
优选的,对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同包括如下步骤:
S21遍历所述测点历史数据文件,将测点历史数据文件中的数据按照日期先后顺序写入到list中,并根据所述测点历史数据文件的文件名,解析出测点名、导出开始日期和导出结束日期;
S22获取源数据的根目录,根据所述测点名以及源数据文件的根目录获取该测点的文件列表pifiles,根据所述导出开始日期和导出结束日期,获取pifiles中属于指定时间范围全部天文件,并将对应的天文件中的数据读取到map文件中,其中所述map文件的采集时间戳和值作为键值对;
S23判断所述map文件是否为空;若map文件为空,则进行下一组的所述测点历史数据文件的比较;若否,则遍历list中的数据,并判断map文件中是否存在相同的采集时间戳,如果有,则将map文件中采集时间戳对应的值取出来和list中的相同采集时间戳对应的值作比较。
进一步的,S22中,根据所述导出开始日期和导出结束日期获取pifiles中属于指定时间范围的全部天文件包括如下步骤:
S221对于每个所述测点,根据所述测点名以及源数据文件的根目录在全量数据库中找到该测点对应的文件夹;
S221解析所述导出开始日期和导出结束日期获取对应时间范围内的全部时间戳,根据全部时间戳在指定文件夹中进行查询文件名,以获取本次的对比数据。
进一步的,步骤S22中,所述源数据为zip文件,所述对比方法还包括源数据预处理的步骤,包括:遍历zip文件,对于每个zip文件判断其是否为正常的zip文件;若是,则解压该zip文件,根据预设规则将解压文件内容格式改为与导出的测点历史数据文件保持一致,并将处理后的解压文件生成对应的csv文件后存放在指定根目录下;若否,则转入下一个zip文件的处理。
更进一步的,根据预设规则将文件内容格式改为和历史数据库中的历史数据格式保持一致包括如下一种或多种的组合:
判断zip文件中的time值是否为毫米级别,若否,则将time值后面加三个0增加000;
判断zip文件的数据类型是否为整数值,若是,则对整数值补一位小数点。
进一步的,S23中,将map文件中采集时间戳对应的值取出来和list中的相同采集时间戳对应的值作比较包括:
如果二者对应的值相同,则将该条数据从map文件中移除;
如果二者对应的值不同,则在map文件中继续保留该数据;
如果map文件中没有该对应的采集时间戳,则在map文件中新增该条数据。
本发明还提供了一种基于文件存储的核电历史数据对比系统,包括:
历史数据文件导出模块,用于根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,所述历史数据文件包括多组测点历史数据文件,每个所述测点历史数据文件存储一个测点一年的历史数据,且所述历史数据按照各自采集时间戳的顺序存储,并基于测点名、导出开始日期与导出结束日期为每个测点历史数据文件命名;
数据比较模块,用于将所述历史数据文件与全量数据库中源数据进行比较,其中,所述全量数据库中,每个测点对应设置一个文件夹,每个文件夹的存储与访问路径设置为电厂/机组/测点,所述源数据以天文件的形式分片存储在指定的文件夹下,每个所述天文件存储测点其中一天的源数据且每个天文件在该文件夹下以对应的采集时间戳命名;则将所述历史数据文件与全量数据库中源数据进行比较包括:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同以获取存在值差异的历史数据记录;
差异性文件生成模块,用于基于全部的存在值差异的历史数据记录形成差异性文件。
本发明还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一项的基于文件存储的核电历史数据对比方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述任一项一种基于文件存储的核电历史数据对比方法的步骤。
与现有技术相比,本发明具有的有益效果为:本发明所示的一种基于文件存储的历史数据对比方法,历史数据文件按年导出且其内数据按照各自采集时间戳的顺序存储,全量数据库中的天文件分块存储,数据对比时,基于导出的历史数据文件在全量数据库中找到对应的时间段的天文件,然后将各天文件并形成表后在进行数据对比,无需对历史数据文件进行重复拆分,减少数据的无效读取,提高数据加载速度与对比速度。同时,全量数据库中,各测点数据按天存储在指定文件夹下,在全量数据库中进行数据查询时,只需要在指定存储路径下按照时间戳信息进行对应时间段的文件名的查找与判断,而无需进行文件中的数据验证,可快速的进行从海量数据中查询并获取所需要的数据,进一步提高了对比效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明提供的一种基于文件存储的历史数据对比方法一实施例的工作流程示意图;
图2为本发明提供的一种基于文件存储的历史数据对比系统一实施例的结构示意图;
图3为本发明提供的计算机设备硬件结构示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
请参阅图1,本实施例所示的一种基于文件存储的历史数据对比方法,包括如下步骤:
S1根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,所述历史数据文件包括多组测点历史数据文件,每组测点历史数据文件存储一个测点一年的历史数据,且每个所述测点历史数据文件中的数据按照时间顺序存储,并基于测点名、导出开始日期与导出结束日期为每个测点历史数据文件命名;
假设本次需要进行N个测点M年数据以确认是否需要进行补充采集,则从历史数据库中导出的历史数据中包括N*M组测点历史数据文件,本实施例中,历史数据库为iotdb数据库,在iotdb数据库中存储的每条历史数据对应一个测点在某个时刻所采集的数值,假设一个测点每间隔一个小时采集一次数据,则每个测点在iotdb数据库对存在24*365*M条数据,若直接将每条历史数据都分别导出,即需要频繁的进行大量小文件导出,则需要反复进行24*365*M*N次磁盘读写操作,导致导出文件时性能(速度)下降,故本实施例中,按照测点-年从历史数据库中导出历史数据,即将一个测点一年的数据形成一个CSV文件,每个CSV文件中的数据是按照时间顺序存储的,这样设置,一方面可有效降低磁盘读写的频率,另外一方面还提高步骤S2中与全量数据库中的源数据进行对比时的对比效率。
作为一优先方案,本实施例中,根据预设的测点范围与时间范围从历史数据库中导出历史数据文件包括如下步骤:
S11根据预设的测点范围为每个测点生成对应的txt文件;
S12基于所述时间范围为所述txt文件中的每个测点分配导出开始日期与导出结束日期,其中,所述开始日期与导出结束日期以年为单位进行;
S13基于所述S12确认的txt文件从历史数据库中导出对应中的数据并形成测历史数据文件。
S2将所述历史数据文件与全量数据库中源数据进行比较,其中,所述全量数据库中,每个测点对应设置一个文件夹,每个文件夹的存储与访问路径设置为电厂/机组/测点,所述源数据以文件的形式分片存储在指定的文件夹下,每个所述文件夹中包括多个文件,每个所述文件存储对应测点其中一天的数据且每个文件在该文件夹下以数据对应的时间戳命名;则将所述历史数据文件与全量数据库中源数据进行比较包括:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同以获取存在值差异的历史数据记录。
在进行步骤S2的对比时,首先基于导出的历史数据文件在全量数据库中找到对应的时间段的天文件,然后将各天文件并形成表后再进行数据对比,无需对历史数据文件进行重复拆分,减少数据的无效读取,提高数据加载速度与对比速度,具体而言:若将全量数据库中天文件合并为年文件然后与历史数据文件按年进行对比,存在如下问题:从全量数据库导出年文件后,还需要分别将年文件与历史数据文件拆分为天,导致了对历史数据文件做重复的读取与拆分;此外,如前所述,在拆分为小文件的过程中,存在将小文件多次写入的过程,在这个过程中,存在文件写入性能下降(写入速度慢),同时还存在文件质量增加了IO操作,同时导致文件出错的概率增加。
本实施例中,作为一优选方案,将所述历史数据文件与全量数据库中源数据进行比较具体通过如下步骤实现:
S21遍历所述测点历史数据文件,将测点历史数据文件中的数据按照日期先后顺序写入到list中,并根据所述测点历史数据文件的文件名,解析出测点名、导出开始日期和导出结束日期;
S22获取源数据的根目录,根据所述测点名以及源数据文件的根目录获取该测点的文件列表pifiles,根据所述导出开始日期和导出结束日期,获取pifiles中属于指定时间范围全部天文件,并将对应的天文件中的数据读取到map文件中,其中所述map文件的采集时间戳和值作为键值对,即以timet为key,valuef为值构建map文件。
更进一步的,本实施例中,获取pifiles中属于指定时间范围全部天文件包括如下步骤:
S221对于每个所述测点,根据所述测点名以及源数据文件的根目录在全量数据库中找到该测点对应的文件夹;
S222解析所述导出开始日期和导出结束日期获取对应时间范围内的全部时间戳,根据全部时间戳在指定文件夹中进行查询文件名,以获取本次的对比数据。
由于全量数据库中各测点数据按天存储在指定文件夹下,在全量数据库中进行数据查询时,只需要在指定存储路径下按照时间戳信息进行对应时间段的文件名的查找与判断,而无需进行文件中的数据验证,故可快速的进行从海量数据中查询并获取所需要的数据。
S23判断map文件是否为空;若map文件为空,则进行下一组的历史数据文件的比较;若否,则遍历list中的数据,并判断map文件中是否存在相同的time,如果有,则将map文件中这个time对应的值取出来和list中的相同time对应的值作比较:
如果二者的值相同,则说明这条数据在两边数据源一致,将这条数据从map文件中移除;
如果二者的值不同,则说明历史数据库中该条历史数据存在问题,在map文件中继续保留该数据;
如果map文件中没有该数据,则说明这条数据是历史数据库中比全量数据库中多出来的,在map文件中继续保留该条数据;
具体如下表所示;
测点ID | 时间 | 左值 | 右值 | 状态 |
FQ_01_XXXX_VALUE | 1900000023231(2019-01-01 16:00:01) | 1.01 | 1.02 | 不相等 |
FQ_01_XXXX_VALUE | 1900000023231(2019-01-01 16:00:02) | 1.02 | null | 缺失 |
FQ_01_XXXX_VALUE | 1900000023231(2019-01-01 16:00:03) | null | 1.01 | 多余 |
通过上述比对,最终形成的map文件包含的数据就是历史数据库中的问题数据,包括漏的数据、错的数据以及新增数据三种类型的问题数据。
S3将S2获取的map文件转换为csv文件以作为两个数据源的差异性文件。
此外,由于核电历史数据量过大,为了提高边缘侧至中心侧数据传输的效率,通常边缘侧的测点数据都会经过压缩处理,故全量数据库的数据一般为ZIP格式,由于采集过程中的某些问题,导致数据的格式与原始数据格式不符,或者数据格式发生变化,数据内容的格式往往没有对齐。
作为一优先方案,步骤S22中,在进行数据对比之前,先要对全量数据库中的源数据进行解压以及数据对齐等预处理,以使得源数据与历史数据格式保持一致。本实施例中全量数据库中的源数据预处理的步骤,包括:依据zip根目录遍历zip文件,对于每个zip文件判断其是否为正常的zip文件;若是,则解压该zip文件,并根据预设规则对zip文件内容格式进行调整,遍历zip文件,对于每个zip文件判断其是否为正常的zip文件;若是,则解压该zip文件,根据预设规则将解压文件内容格式改为与导出的测点历史数据文件保持一致,并将处理后的解压文件生成对应的csv文件后存放在指定根目录下;若否,则转入下一个zip文件的处理。更进一步的,根据预设规则将文件内容格式改为和历史数据库中的历史数据格式保持一致包括如下一种或多种的组合:
1、判断zip文件中的time值是否为毫米级别,若否,则将time值后面加三个0 增加000,以与历史数据格式保持一致;由于源系统数据源不同,采集出的数据精度也不相同,有的为秒级,有的与IoTDB数据库的数据相同是毫秒级的,为了提高后续对比时的工作效率,故对于采集出来的数据是秒级的time值补000。
2、判断zip文件的数据类型是否为整数值,若是,则对整数值补一位小数点;从iotdb导出的测点历史数据文件中,整数会带小数点,比如1,导出为1.0,为了和导出数据对齐,故对于解压后的zip文件的整数值也对应补0。
请参阅图2,本发明还提供一种基于文件存储的核电历史数据对比系统100,包括:
历史数据文件导出模块10,用于根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,所述历史数据文件包括多组测点历史数据文件,每个所述测点历史数据文件存储一个测点一年的历史数据,且所述历史数据按照各自采集时间戳的顺序存储,并基于测点名、导出开始日期与导出结束日期为每个测点历史数据文件命名;
数据比较模块20,用于将所述历史数据文件与全量数据库中源数据进行比较,其中,所述全量数据库中,每个测点对应设置一个文件夹,每个文件夹的存储与访问路径设置为电厂/机组/测点,所述源数据以天文件的形式分片存储在指定的文件夹下,每个所述天文件存储测点其中一天的源数据且每个天文件在该文件夹下以对应的采集时间戳命名;则将所述历史数据文件与全量数据库中源数据进行比较包括:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同以获取存在值差异的历史数据记录;
差异性文件生成模块30,用于基于全部的存在值差异的历史数据记录形成差异性文件。
优选的,历史数据文件导出模块10中,根据预设的测点范围与时间范围从历史数据库中导出历史数据文件包括如下步骤:
S11根据预设的测点范围为每个测点生成txt文件;
S12基于所述时间范围为每个所述txt文件分配导出开始日期与导出结束日期,其中,所述导出开始日期与导出结束日期以年为单位进行;
S13对于每个txt文件,基于所述导出开始日期与导出结束日期从历史数据库中查询对应的历史数据并按照采集时间戳的顺序写入至所述txt文件以形成所述测点历史数据文件。
优选的,数据比较模块20中,对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同包括如下步骤:
S21遍历所述测点历史数据文件,将测点历史数据文件中的数据按照日期先后顺序写入到list中,并根据所述测点历史数据文件的文件名,解析出测点名、导出开始日期和导出结束日期;
S22获取源数据的根目录,根据所述测点名以及源数据文件的根目录获取该测点的文件列表pifiles,根据所述导出开始日期和导出结束日期,获取pifiles中属于指定时间范围全部天文件,并将对应的天文件中的数据读取到map文件中,其中所述map文件的采集时间戳和值作为键值对;
S23判断所述map文件是否为空;若map文件为空,则进行下一组的所述测点历史数据文件的比较;若否,则遍历list中的数据,并判断map文件中是否存在相同的采集时间戳,如果有,则将map文件中采集时间戳对应的值取出来和list中的相同采集时间戳对应的值作比较。
更进一步 的,S22中,根据所述导出开始日期和导出结束日期获取pifiles中属于指定时间范围的全部天文件包括如下步骤:
S221对于每个所述测点,根据所述测点名以及源数据文件的根目录在全量数据库中找到该测点对应的文件夹;
S221解析所述导出开始日期和导出结束日期获取对应时间范围内的全部时间戳,根据全部时间戳在指定文件夹中进行查询文件名,以获取本次的对比数据。
优选的,步骤S22中,所述源数据为zip文件,所述对比方法还包括源数据预处理的步骤,包括:遍历zip文件,对于每个zip文件判断其是否为正常的zip文件;若是,则解压该zip文件,并根据预设规则将文件内容格式改为和历史数据库中的历史数据格式保持一致;若否,则转入下一个zip文件的处理。
进一步的,根据预设规则将文件内容格式改为和历史数据库中的历史数据格式保持一致包括如下一种或多种的组合:
判断zip文件中的time值是否为毫米级别,若否,则将time值后面加三个0增加000;
判断zip文件的数据类型是否为整数值,若是,则对整数值补一位小数点。
优选的,S23中,将map文件中采集时间戳对应的值取出来和list中的相同采集时间戳对应的值作比较包括:
如果二者对应的值相同,则将该条数据从map文件中移除;
如果二者对应的值不同,则在map文件中继续保留该数据。
如果map文件中没有该对应的采集时间戳,则在map文件中新增该条数据。
本发明还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图3所示。需要指出的是,图3仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如本发明方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,以实现基于文件存储的核电历史数据对比方法。
本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于计算机程序,被处理器执行时实现基于文件存储的核电历史数据对比方法。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明之内。
Claims (10)
1.一种基于文件存储的核电历史数据对比方法,其特征在于:包括如下步骤:
S1根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,所述历史数据文件包括多组测点历史数据文件,每个所述测点历史数据文件存储一个测点一年的历史数据,且所述历史数据按照各自采集时间戳的顺序存储,并基于测点名、导出开始日期与导出结束日期为每个测点历史数据文件命名;
S2将所述历史数据文件与全量数据库中源数据进行比较,其中,所述全量数据库中,每个测点对应设置一个文件夹,每个文件夹的存储与访问路径设置为电厂/机组/测点,所述源数据以天文件的形式分片存储在指定的文件夹下,每个所述天文件用于存储测点其中一天的源数据且每个天文件在该文件夹下以对应的采集时间戳命名;
将所述历史数据文件与全量数据库中源数据进行比较包括:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同以获取存在值差异的历史数据记录;
S3基于全部的存在值差异的历史数据记录形成差异性文件。
2.根据权利要求1所述的一种基于文件存储的核电历史数据对比方法,其特征在于:根据预设的测点范围与时间范围从历史数据库中导出历史数据文件包括如下步骤:
S11根据预设的测点范围为每个测点生成txt文件;
S12基于所述时间范围为每个所述txt文件分配导出开始日期与导出结束日期,其中,所述导出开始日期与导出结束日期以年为单位进行;
S13对于每个txt文件,基于所述导出开始日期与导出结束日期从历史数据库中查询对应的历史数据并按照采集时间戳的顺序写入至所述txt文件以形成所述测点历史数据文件。
3.根据权利要求1所述的一种基于文件存储的核电历史数据对比方法,其特征在于:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同包括如下步骤:
S21遍历所述测点历史数据文件,将测点历史数据文件中的数据按照日期先后顺序写入到list中,并根据所述测点历史数据文件的文件名,解析出测点名、导出开始日期和导出结束日期;
S22获取源数据的根目录,根据所述测点名以及源数据文件的根目录获取该测点的文件列表pifiles,根据所述导出开始日期和导出结束日期,获取pifiles中属于指定时间范围全部天文件,并将对应的天文件中的数据读取到map文件中,其中所述map文件的采集时间戳和值作为键值对;
S23判断所述map文件是否为空;若map文件为空,则进行下一组的所述测点历史数据文件的比较;若否,则遍历list中的数据,并判断map文件中是否存在相同的采集时间戳,如果有,则将map文件中采集时间戳对应的值取出来和list中的相同采集时间戳对应的值作比较。
4.根据权利要求3所述的一种基于文件存储的核电历史数据对比方法,其特征在于:S22中,根据所述导出开始日期和导出结束日期获取pifiles中属于指定时间范围的全部天文件包括如下步骤:
S221对于每个所述测点,根据所述测点名以及源数据文件的根目录在全量数据库中找到该测点对应的文件夹;
S221解析所述导出开始日期和导出结束日期获取对应时间范围内的全部时间戳,根据全部时间戳在指定文件夹中进行查询文件名,以获取本次的对比数据。
5.根据权利要求3所述的一种基于文件存储的核电历史数据对比方法,其特征在于:步骤S22中,所述源数据为zip文件,所述对比方法还包括源数据预处理的步骤,包括:遍历zip文件,对于每个zip文件判断其是否为正常的zip文件;若是,则解压该zip文件,根据预设规则将解压文件内容格式改为与导出的测点历史数据文件保持一致,并将处理后的解压文件生成对应的csv文件后存放在指定根目录下;若否,则转入下一个zip文件的处理。
6.根据权利要求5所述的一种基于文件存储的核电历史数据对比方法,其特征在于:根据预设规则将文件内容格式改为和历史数据库中的历史数据格式保持一致包括如下一种或多种的组合:
判断zip文件中的time值是否为毫米级别,若否,则将time值后面加三个0增加000;
判断zip文件的数据类型是否为整数值,若是,则对整数值补一位小数点。
7.根据权利要求3所述的一种基于文件存储的核电历史数据对比方法,其特征在于:S23中,将map文件中采集时间戳对应的值取出来和list中的相同采集时间戳对应的值作比较包括:
如果二者对应的值相同,则将该条数据从map文件中移除;
如果二者对应的值不同,则在map文件中继续保留该数据;
如果map文件中没有该对应的采集时间戳,则在map文件中新增该条数据。
8.一种基于文件存储的核电历史数据对比系统,其特征在于,包括:
历史数据文件导出模块,用于根据预设的测点范围与时间范围从历史数据库中导出历史数据文件,其中,所述历史数据文件包括多组测点历史数据文件,每个所述测点历史数据文件存储一个测点一年的历史数据,且所述历史数据按照各自采集时间戳的顺序存储,并基于测点名、导出开始日期与导出结束日期为每个测点历史数据文件命名;
数据比较模块,用于将所述历史数据文件与全量数据库中源数据进行比较,其中,所述全量数据库中,每个测点对应设置一个文件夹,每个文件夹的存储与访问路径设置为电厂/机组/测点,所述源数据以天文件的形式分片存储在指定的文件夹下,每个所述天文件存储测点其中一天的源数据且每个天文件在该文件夹下以对应的采集时间戳命名;则将所述历史数据文件与全量数据库中源数据进行比较包括:对于每个测点历史数据文件,基于所述测点历史数据文件的测点名、导出开始日期与导出结束日期在全量数据库找到对应的天文件,将具体相同采集时间戳的天文件与测点历史数据文件对应的历史数据依次进行比较,判断二者存储的值是否相同以获取存在值差异的历史数据记录;
差异性文件生成模块,用于基于全部的存在值差异的历史数据记录形成差异性文件。
9.一种计算机设备,其特征在于:包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410070801.9A CN117591577B (zh) | 2024-01-18 | 2024-01-18 | 一种基于文件存储的核电历史数据对比方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410070801.9A CN117591577B (zh) | 2024-01-18 | 2024-01-18 | 一种基于文件存储的核电历史数据对比方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117591577A true CN117591577A (zh) | 2024-02-23 |
CN117591577B CN117591577B (zh) | 2024-05-03 |
Family
ID=89913682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410070801.9A Active CN117591577B (zh) | 2024-01-18 | 2024-01-18 | 一种基于文件存储的核电历史数据对比方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591577B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118246076A (zh) * | 2024-05-27 | 2024-06-25 | 中核武汉核电运行技术股份有限公司 | 一种核电数据完整性自校验方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140960A1 (en) * | 2006-12-06 | 2008-06-12 | Jason Ferris Basler | System and method for optimizing memory usage during data backup |
CN101667205A (zh) * | 2009-09-28 | 2010-03-10 | 河南电力试验研究院 | 一种面向快速回放的实时测点数据存储方法 |
CN102646130A (zh) * | 2012-03-12 | 2012-08-22 | 华中科技大学 | 一种海量历史数据的存储及索引方法 |
US20130091266A1 (en) * | 2011-10-05 | 2013-04-11 | Ajit Bhave | System for organizing and fast searching of massive amounts of data |
US20140258254A1 (en) * | 2013-03-08 | 2014-09-11 | Oracle International Corporation | Analyzing database cluster behavior by transforming discrete time series measurements |
JP2014232389A (ja) * | 2013-05-28 | 2014-12-11 | Kddi株式会社 | 辞書生成装置 |
CN107766529A (zh) * | 2017-10-27 | 2018-03-06 | 合肥城市云数据中心股份有限公司 | 一种用于污水处理行业的海量数据存储方法 |
JP6432893B1 (ja) * | 2017-10-04 | 2018-12-05 | 株式会社シマント | データベース処理装置、グループマップファイル生産方法及びプログラム |
CN111241144A (zh) * | 2018-11-28 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和系统 |
US20210303565A1 (en) * | 2020-03-31 | 2021-09-30 | At&T Intellectual Property I, L.P. | Managing temporal views of data |
CN114265834A (zh) * | 2021-12-27 | 2022-04-01 | 山东浪潮科学研究院有限公司 | 一种分布式时序数据库存储引擎方法、装置及介质 |
CN115618033A (zh) * | 2022-12-15 | 2023-01-17 | 山东科技大学 | 数据采集与处理方法、系统、计算机设备以及存储介质 |
WO2023024247A1 (zh) * | 2021-08-26 | 2023-03-02 | 苏州浪潮智能科技有限公司 | 一种标签数据的范围查询方法、装置、设备及存储介质 |
CN115934642A (zh) * | 2022-12-31 | 2023-04-07 | 重庆傲雄在线信息技术有限公司 | 基于锁链哈希的电子档案巡检系统、方法、设备及介质 |
-
2024
- 2024-01-18 CN CN202410070801.9A patent/CN117591577B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140960A1 (en) * | 2006-12-06 | 2008-06-12 | Jason Ferris Basler | System and method for optimizing memory usage during data backup |
CN101667205A (zh) * | 2009-09-28 | 2010-03-10 | 河南电力试验研究院 | 一种面向快速回放的实时测点数据存储方法 |
US20130091266A1 (en) * | 2011-10-05 | 2013-04-11 | Ajit Bhave | System for organizing and fast searching of massive amounts of data |
CN102646130A (zh) * | 2012-03-12 | 2012-08-22 | 华中科技大学 | 一种海量历史数据的存储及索引方法 |
US20140258254A1 (en) * | 2013-03-08 | 2014-09-11 | Oracle International Corporation | Analyzing database cluster behavior by transforming discrete time series measurements |
JP2014232389A (ja) * | 2013-05-28 | 2014-12-11 | Kddi株式会社 | 辞書生成装置 |
JP6432893B1 (ja) * | 2017-10-04 | 2018-12-05 | 株式会社シマント | データベース処理装置、グループマップファイル生産方法及びプログラム |
CN107766529A (zh) * | 2017-10-27 | 2018-03-06 | 合肥城市云数据中心股份有限公司 | 一种用于污水处理行业的海量数据存储方法 |
CN111241144A (zh) * | 2018-11-28 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和系统 |
US20210303565A1 (en) * | 2020-03-31 | 2021-09-30 | At&T Intellectual Property I, L.P. | Managing temporal views of data |
WO2023024247A1 (zh) * | 2021-08-26 | 2023-03-02 | 苏州浪潮智能科技有限公司 | 一种标签数据的范围查询方法、装置、设备及存储介质 |
CN114265834A (zh) * | 2021-12-27 | 2022-04-01 | 山东浪潮科学研究院有限公司 | 一种分布式时序数据库存储引擎方法、装置及介质 |
CN115618033A (zh) * | 2022-12-15 | 2023-01-17 | 山东科技大学 | 数据采集与处理方法、系统、计算机设备以及存储介质 |
CN115934642A (zh) * | 2022-12-31 | 2023-04-07 | 重庆傲雄在线信息技术有限公司 | 基于锁链哈希的电子档案巡检系统、方法、设备及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118246076A (zh) * | 2024-05-27 | 2024-06-25 | 中核武汉核电运行技术股份有限公司 | 一种核电数据完整性自校验方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117591577B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117591577B (zh) | 一种基于文件存储的核电历史数据对比方法及系统 | |
CN110879813B (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
CN101553813B (zh) | 管理可单独访问的数据单元的存储器 | |
CN111367886A (zh) | 数据库中数据迁移的方法及装置 | |
CN113535856B (zh) | 数据同步方法及系统 | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN112507027A (zh) | 基于Kafka的增量数据同步方法、装置、设备及介质 | |
CN112632006A (zh) | 电子报表文件导出方法、装置、设备及存储介质 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN110389967B (zh) | 数据存储方法、装置、服务器及存储介质 | |
CN109714249B (zh) | 一种小程序消息的推送方法及相关装置 | |
CN111061758B (zh) | 数据存储方法、装置及存储介质 | |
CN110019367B (zh) | 一种统计数据特征的方法和装置 | |
CN112559475A (zh) | 数据实时捕获和传输方法及系统 | |
CN112380278A (zh) | 财务数据报表的生成方法、装置、设备及存储介质 | |
CN112328631A (zh) | 一种生产故障分析方法、装置、电子设备及存储介质 | |
CN116644035B (zh) | 文件批量入库方法、装置、设备及存储介质 | |
CN116680315A (zh) | 数据离线处理方法、装置、电子设备及存储介质 | |
CN117591497B (zh) | 一种核电历史数据跨系统迁移方法 | |
CN114398520A (zh) | 数据检索方法、系统、装置、电子设备及存储介质 | |
CN114896197A (zh) | 多格式文档统一入库方法、装置及系统 | |
CN110019169B (zh) | 一种数据处理的方法及装置 | |
CN112559536A (zh) | 一种工业设备数据的处理方法及系统 | |
CN112817930A (zh) | 一种数据迁移的方法和装置 | |
CN114676054A (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 |