CN111078694A - 一种数据存储方法和装置 - Google Patents
一种数据存储方法和装置 Download PDFInfo
- Publication number
- CN111078694A CN111078694A CN201911198455.8A CN201911198455A CN111078694A CN 111078694 A CN111078694 A CN 111078694A CN 201911198455 A CN201911198455 A CN 201911198455A CN 111078694 A CN111078694 A CN 111078694A
- Authority
- CN
- China
- Prior art keywords
- engineering value
- data
- value information
- source code
- engineering
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000013500 data storage Methods 0.000 title claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000012216 screening Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013515 script 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- 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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据存储方法和装置,所述方法包括:从网络中获取卫星遥测数据;判断所述卫星遥测数据的类型为源码数据或工程值数据;若确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库;若确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,若所述工程值信息与缓存区中已存在的工程值信息不相同,则将所述工程值信息存入所述缓存区,同时也存入数据库的缓冲区,当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。如此,能减少数据库的开销和存储空间,优化遥测数据存储的性能。
Description
技术领域
本发明涉及多星遥测领域,尤其涉及一种多星遥测数据的高效存储的方法和装置。
背景技术
随着商业卫星的发展,特别是中低轨卫星及星座的大批量发射,在轨商业卫星数量急剧增长,对测控提出了新的挑战。卫星遥测数据包括遥测源码数据和工程值数据,因此,多星遥测数据的数据量较大,是系统中占存储空间最多的数据。
随着卫星数量的增长,遥测数据的存储量也急剧增长,极大的加重了测控系统的负担。因此,亟需一种多星遥测数据高效存储方法,尽可能减少数据库的开销和存储空间,以提高遥测数据存储的性能。
发明内容
有鉴于此,本发明的主要目的在于提供一种数据存储方法和装置,通过该方法和装置,能减少数据库的开销和存储空间,优化遥测数据存储的性能。
为达到上述目的,本发明的技术方案是这样实现的:
一种数据存储方法,所述方法包括:
从网络中获取卫星遥测数据;判断所述卫星遥测数据的类型为源码数据或工程值数据;其中,所述源码数据为从卫星上传出的原始数据;所述工程值数据为将所述源码解析后得到的有关所述卫星的具体数据;
若确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库;
若确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,再将所述工程值信息与缓存区中已存在的工程值信息进行对比,当确定所述工程值信息与所述缓存区中已存在的工程值信息不相同时,将所述工程值信息存入所述缓存区中,并将所述工程值信息存入数据库的缓冲区;当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。
上述方案中,所述将所述源码数据从字节型转换为字符型,包括:
源码线程池中的源码存储线程调用源码数据转换模块对所述源码数据进行数据类型转换。
上述方案中,所述将所述工程值数据解析为工程值信息,还包括:
工程值线程池中的所述工程值存储线程将所述工程值数据解析为工程值信息,所述工程值信息包括:卫星号、工程值代号以及工程值数值;
其中,卫星号用于标识所述工程值数据所属的卫星。
上述方案中,所述将所述工程值信息与缓存区中已存在的工程值信息进行对比,包括:
所述工程值线程池中的所述工程值存储线程调用数据对比模块对所述工程值信息进行对比。
上述方案中,所述确定所述工程值信息与所述缓存区中已存在的工程值信息不相同,包括:
当确定所述工程值信息中的所述卫星号、所述工程值代号以及所述工程值数值与所述缓存区中已存在的工程值信息的所述卫星号、所述工程值代号以及所述工程值数值至少一个不相同时,确定所述工程值信息与所述缓存区中已存在的工程值信息不相同
上述方案中,所述方法还包括:当确定所述工程值信息与所述缓存区中已存在的工程值信息存在相同的数据时,丢弃所述工程值信息。
上述方案中,所述将所述工程值信息存入数据库的缓冲区,包括:
将所述工程值信息改写为一条能够插入数据库表的SQL语句,并将所述SQL语句存入所述缓冲区。
上述方案中,所述方法还包括:将所述缓冲区的所述SQL语句对应的工程值信息存入对应的数据库表前,对比所述缓冲区的所述SQL语句对应的工程值信息与所述SQL语句对应的所述数据库表中的工程值信息是否相同;若不同,则保留所述SQL语句,否则,从所述缓冲区中删除所述SQL语句。
一种数据存储装置,所述装置包括:获取模块、判断模块和处理模块;
所述获取模块,用于从网络中获取卫星遥测数据;
所述判断模块:用于判断所述卫星遥测数据的类型为源码数据或工程值数据;其中,所述源码数据为从卫星上传出的原始数据;所述工程值数据为将所述源码解析后得到的有关所述卫星的具体数据;
所述处理模块,用于若所述判断模块确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库;若所述判断模块确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,再将所述工程值信息与缓存区中已存在的工程值信息进行对比,当确定所述工程值信息与所述缓存区中已存在的工程值信息不相同时,将所述工程值信息存入所述缓存区中,并将所述工程值信息存入数据库的缓冲区;当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。
一种存储介质,所述存储介质存储有可执行指令,当所述可执行指令被至少一个处理器执行时,实现上述实施例中的任一方法。
本发明实施例提供的一种数据存储方法,针对源码数据,先做数据类型转换,再将转换后的数据存入数据库;而针对工程值数据,先对数据做对比压缩筛选,再将筛选后的数据存入数据库的缓冲区中,当缓冲区中工程值信息的数量达到预设阈值时,批量执行插入操作,将这些数据存入数据库中。如此,提高源码数据存入数据库的效率,减少存储工程值数据时连接数据库的次数,降低对数据库的损耗,节约数据库的存储空间,从而优化遥测数据存储的性能。
附图说明
图1为本发明实施例提供的一种数据存储方法的流程示意图;
图2为本发明实施例提供的一种源码数据存储流程示意图;
图3为本发明实施例提供的一种工程值数据存储流程示意图;
图4为本发明实施例提供的另一种数据存储方法的流程示意图;
图5为本发明实施例提供的一种数据存储装置的结构框图。
具体实施方式
本发明实施例提供一种数据存储方法,如图1所示,图1为一种数据存储方法的流程示意图。具体的:
卫星遥测数据包括遥测源码数据和工程值数据,源码数据是从卫星上通过网络传下来的原始数据,工程值数据是源码解析后得到的有关所述卫星的具体参数信息,是反映卫星运行时状态的主要数据,以及设备监视与状态分析的主要内容。上述原始数据和工程值数据可以是图片,也可以是声音等等,本发明实施例包括但不限于上述信息。
遥测源码数据帧一般为512或1024字节每秒。遥测工程值数据的数量根据卫星的不同而有所差别,一般小卫星的遥测工程值数据为三五千,大卫星的遥测工程值数据可多达上万个。
S101、从网络中获取卫星遥测数据;判断所述卫星遥测数据的类型为源码数据或工程值数据。
服务器启动多星遥测数据存储进程,实时监听接收网络中的源码和工程值数据。所有卫星将源码数据发送到一个统一网络端口,而将工程值数据发送到另一个统一网络端口。当服务器接收到数据后,根据接收端口判断数据为源码数据还是工程值数据。其中,所述服务器可以是台式机、笔记本电脑等可以处理大量数据的主机,包括但不限于上述两类。
遥测存储进程中包含一个遥测源码数据存储线程池和一个遥测工程值存储线程池,可根据需要配置线程池的最大线程数。当接收到不同卫星的遥测数据时,线程池自动为每一帧遥测源码数据和遥测工程值启动一个独立的存储线程,来进行多颗卫星的遥测源码数据和工程值数据的存储。可以理解的是,当接收到卫星A的遥测数据时,为卫星A分配源码存储线程A和工程值存储线程A;当接收到卫星B的遥测数据时,为卫星B分配源码存储线程B和工程值存储线程B,即针对不同的卫星传出的遥测数据,线程池分配不同的存储线程处理该数据信息。
S102、若确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库。具体如图2所示,图2为本发明实施例提供的一种源码数据存储流程。
源码线程池中的源码存储线程调用源码数据转换模块对所述源码数据进行数据类型转换。
图2中,当存储进程监听到数据,并通过端口号确定该数据为源码数据时,源码线程池中的线程如源码1Thread存储线程,先从源码帧中通过帧协议解析出该源码数据所属的卫星号、源码时间和字节型源码数据,对源码数据进行转换,具体的:通过调用源码数据转换模块,把字节型遥测源码数据转换成字符型遥测源码数据即源码字符数据,并将所述字符型数据存储到数据库。通过存储字符型的源码数据来提高数据库的存储效率。
S103、若确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,再将所述工程值信息与缓存区中已存在的工程值信息进行对比,当确定所述工程值信息与所述缓存区中已存在的工程值信息不相同时,将所述工程值信息存入所述缓存区中,并将所述工程值信息存入数据库的缓冲区;当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。具体如图3所示,图3为本发明实施例提供的一种遥测工程值数据存储流程示意图。
工程值线程池中的所述工程值存储线程将所述工程值数据解析为工程值信息,所述工程值信息包括:卫星号、工程值代号以及工程值数值;其中,卫星号用于标识所述工程值数据所属的卫星。
图3中,当存储进程监听到数据,并通过端口号确定该数据为工程值数据时,工程值线程池中的线程如数据帧1Thread存储线程通过帧协议对工程值数据帧进行解析,得到工程值信息;该工程值信息包括卫星号、工程值代号以及工程值数值;通过卫星号可以确定该工程值信息是从哪个卫星上传下的。值得注意的是,通过帧协议解析出的工程值信息包括但不限于上述三种,比如,还包括卫星发送该数据的时间,或者其他的相关信息。
所述工程值线程池中的所述工程值存储线程调用数据对比模块对所述工程值信息进行对比。
当确定所述工程值信息中的所述卫星号、所述工程值代号以及所述工程值数值与所述缓存区中已存在的工程值信息的所述卫星号、所述工程值代号以及所述工程值数值至少一个不相同时,确定所述工程值信息与所述缓存区中已存在的工程值信息不相同。
鉴于从工程值数据中解析得到的还可能是其他信息,但是在本发明实施例中主要通过对比卫星号,工程值代号和工程值数值来确定消息是否相同,本领域技术人员还可以根据实际经验设置其他的指标来判断工程值数据是否与缓存区中已存在的数据相同。
在本发明实施例中,工程值线程池中的所述工程值存储线程调用数据对比模块将接收的解析后的工程值信息与缓存区中已经存储的工程值信息进行对比,主要对比一条工程值信息中的卫星号、工程值代号和工程值数值;当确定接收的工程值信息中这三个值中至少一个与缓存区中存储的工程值信息不同时,可认为接收的工程值信息与缓存区中已存储的工程值信息是没有重复的,此时将该工程值信息存储到缓存区中。
可以理解的是,上述三个信息中,当所属的卫星不同时,即使此时工程值代号和工程值信息相同,这个信息也应该是不同的;当工程值代号不同,即使是相同的卫星发来的数据信息,且其工程值数值相同,整个数据也不同;同样的,当工程值数值不同,即使所属卫星和工程值代号相同,也应认定该值不同。
当确定所述工程值信息与所述缓存区中已存在的工程值信息存在相同的数据时,丢弃所述工程值信息。
当确定接收的工程值信息中上述三个字段的信息与缓存区中某一条的上述三个字段表征的信息都相同,则认为接收的该工程值信息与缓存区中工程值信息是有重复的,此时,工程值线程将丢弃该工程值信息。
当然本领域技术人员可以根据经验从工程值传输帧解析出的其他信息中确定更重要的信息作为判断该工程值信息是否与缓存区中已有的工程值信息相同的依据,从而使数据对比模块对数据进行筛选,达到压缩工程值数据的目的。
本发明实施例通过丢弃与缓存区相同的信息,只保存与缓存区不相同的信息,来保证这个时间段内该缓存区中的工程值信息是没有重复的,相当于对接收的工程值信息进行了一道筛选,剔除了重复数据,从而实现对接收的工程值信息的压缩。
将所述工程值信息改写为一条能够插入数据库表的SQL语句,并将所述SQL语句存入所述缓冲区。
工程值存储线程在通过数据对比模块确定了接收的工程值信息不是重复数据后,将该工程值信息改写成能够插入数据库表的一条SQL语句。如一条工程值信息为:卫星号:Satellite A,工程值代号:110,工程值数值:50,那么将该工程值信息改写为一条insert语句,可以为:INSERT INTO table name VALUES(Satellite A,110,50),当然,工程值信息实际可能会比这些信息多出很多,可根据情况将对应字段的数值写入该SQL语句。每一个遥测参数对应一张数据库表,可将工程值线程正在处理的工程值信息写成SQL语句存入数据库的缓冲区,当需要存储缓冲区中的数据时,执行各SQL语句就可以将数据写入数据库对应的数据库表中。
如图3所示,服务器根据用户配置的提交频率扫描数据库的缓冲区,如果缓冲区内的SQL语句数量达到提交数,则将所有SQL语句统一执行提交,完成一次批量的遥测工程值存储,同时清空缓冲区内的数据。若缓冲区内的SQL语句未达到存储数量,则继续进行数据的缓冲。在清空缓冲区时,清空缓存区中除了最后存储的工程值信息之外的所有数据,也就是说,如果按照SQL语句排列的顺序执行,最后加入缓存区的工程值信息也将是最后存入数据库表中的数据,此时,缓存区中保留的数据也是数据库中最新的一条工程值信息,而空出的缓存区域也可以存储新的数据。
通过将工程值信息先存入缓冲区,再在缓冲区中数据数量达到预设数目时执行SQL语句的方式,可有效的减少连接数据库和向数据库存数据的次数,从而节约数据库开销和存储时间,提升对遥测数据的存储性能。
将所述缓冲区的所述SQL语句对应的工程值信息存入对应的数据库表前,对比所述缓冲区的所述SQL语句对应的工程值信息与所述SQL语句对应的所述数据库表中的工程值信息是否相同;若不同,则保留所述SQL语句,否则,从所述缓冲区中删除所述SQL语句。
正如前述,在工程值信息存入缓存区时,已经将该工程值信息与存在缓存区的工程值信息进行了对比,筛掉了那一批次的工程值信息中重复的信息。由于存入缓存区中的数据同时也存入了数据库缓冲区,因此,该过程也保证了加入缓冲区的数据是没有重复的,但是这样并不能保证新接收的、缓冲区中的工程值信息与已存入数据库表中的数据是不重复的。因此,在批量执行缓冲区中数据时,需要先判断缓冲区中任一条SQL语句对应的工程值信息与该SQL语句对应的数据库表中的工程值信息是否存在相同,当存在相同时,则从该缓冲区中删掉该数据,否则保留该数据。
在执行缓冲区中信息之前将缓冲区中的信息与数据库表中的数据进行对比,删掉部分重复的数据,同样可以节约数据库的存储空间。
本发明实施例提供的一种数据存储方法,针对源码数据,先做数据类型转换,再将转换后的数据存入数据库;而针对工程值数据,先对数据做对比压缩筛选,再将筛选后的数据存入数据库的缓冲区中,当缓冲区中工程值信息的数量达到预设阈值时,批量执行插入操作,将这些数据存入数据库中。如此,提高源码数据存入数据库的效率,减少存储工程值数据时连接数据库的次数,降低对数据库的损耗,节约数据库的存储空间,从而优化遥测数据存储的性能。
本发明实施例提供一种数据存储方法,如图4所示,图4为本发明实施例提供的另一种数据存储方法的流程示意图。具体的:
服务器启动多星遥测数据存储进程,实时监听接收网络中的源码数据和工程值数据。该存储进程中包含一个遥测源码存储线程池和一个遥测工程值存储线程池,根据实际需要配置线程池的最大线程数,当接收到不同卫星的遥测数据时,线程池自动为每一帧遥测源码数据和遥测工程值数据启动一个独立的存储线程,来进行多颗卫星的遥测源码数据和工程值数据的存储。
本发明实施例中,将接收的遥测数据作为一条待处理的任务添加到线程池的队列,当线程池中已创建的线程的数量小于最大线程数时,线程池创建线程后自动按顺序启动队列中的任务;当线程池中已创建的线程的数量等于最大线程数时,任务继续等候,直到有一条线程处理完当前的任后务,开始执行队列中的新任务。通过线程池管理线程,避免了处理短时间任务时创建与销毁线程的代价,保证内核的充分利用,防止过分调度,提高了对遥测数据的处理速度。
进一步地,本发明实施例针对遥测数据的不同类型采用两种线程池,分别对不同的数据采用不同的处理方式,也提高了对遥测数据的处理速度。
在接收到遥测数据后,通过网络端口判断该遥测数据为源码数据还是工程值数据。当确定为源码数据时,源码存储线程池启动源码存储线程,该线程先从源码数据帧中解析出所属卫星号、源码时间和源码字节数据,然后调用数据转换模块,把遥测源码字节数据转换成字符数据,再将该字符数据存储进数据库,当处理结束后,关闭该源码存储线程。若此时任务队列还有新的任务,则重新开启该存储线程并开始处理下一个源码数据。
当确定数据为工程值数据时,工程值存储线程池也会自动启动工程值存储线程,该线程从接收到的工程值传输帧中解析出所有遥测工程值信息,该信息包括:所属卫星、工程值代号和工程值数值,当然,根据实际信息,解析出的工程值信息很可能会多余上述三个,本发明实施例中,我们考虑至少这三个信息。
工程值数据线程调用数据对比模块将当前工程值信息中的所属卫星、工程值代号和工程值数值与缓存区中的工程值信息进行对比,当上述三个信息与缓存区中任一条工程值信息所包含的三个信息均相同时,丢弃该工程值信息;当至少一个信息不相同时,将该工程值信息存入缓存区中,同时,将该工程值信息改写为一条SQL语句存入数据库的缓冲区中。
系统根据用户配置的提交频率进行扫描,当缓冲区中存储的工程值信息的语句数量达到预设阈值时,统一提交缓冲区中的数据,使得缓冲区中的工程值信息存入数据库,同时清空缓冲区里的数据,为下一次接收工程值信息做准确。
本发明实施例提供的一种数据存储方法,针对源码数据,先做数据类型转换,再将转换后的数据存入数据库;而针对工程值数据,先对数据做对比压缩筛选,再将筛选后的数据存入数据库的缓冲区中,当缓冲区中工程值信息的数量达到预设阈值时,批量执行插入操作,将这些数据存入数据库中。如此,提高源码数据存入数据库的效率,减少存储工程值数据时连接数据库的次数,降低对数据库的损耗,节约数据库的存储空间,从而优化遥测数据存储的性能。
本发明实施例提供一种数据存储装置,如图5所示,图5中为本发明实施例提供的一种数据存储装置结构框图。
一种数据存储装置10,所述装置10包括:获取模块11、判断模块12和处理模块13;
所述获取模块11,用于从网络中获取卫星遥测数据;
所述判断模块12:用于判断所述卫星遥测数据的类型为源码数据或工程值数据;其中,所述源码数据为从卫星上传出的原始数据;所述工程值数据为将所述源码解析后得到的有关所述卫星的具体数据;
所述数据存储装置10启动多星遥测数据存储进程,实时监听接收网络中的源码和工程值数据。所有卫星将源码数据发送到一个统一网络端口,而将工程值数据发送到另一个统一网络端口。当接收到数据后,判断模块12根据接收端口判断该数据为源码数据还是工程值数据。
遥测存储进程中包含一个遥测源码数据存储线程池和一个遥测工程值存储线程池,可根据需要配置线程池的最大线程数,当存储进程接收到不同卫星的遥测数据时,线程池自动为每一帧遥测源码数据和遥测工程值启动一个独立的存储线程,来进行多颗卫星的遥测源码数据和工程值数据的存储。
所述处理模块13,用于若所述判断模块12确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库;若所述判断模块12确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,再将所述工程值信息与缓存区中已存在的工程值信息进行对比,当确定所述工程值信息与所述缓存区中已存在的工程值信息不相同时,将所述工程值信息存入所述缓存区中,并将所述工程值信息存入数据库的缓冲区;当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。
当存储进程监听到数据,所述判断模块12通过端口号确定该数据为源码数据时,源码线程池中的源码存储线程,先从源码数据帧中通过帧协议解析出该源码数据所属的卫星号、源码时间和字节型源码数据,通过调用源码数据转换模块,把字节型遥测源码数据转换成字符型遥测源码数据即源码字符数据,并将所述字符型数据存储到数据库。通过存储字符型的源码数据来提高数据库的存储效率。
当存储进程监听到数据,所述判断模块12通过端口号确定该数据为工程值数据时,通过帧协议对数据帧进行解析,得到工程值信息;该工程值信息包括卫星号、工程值代号以及工程值数值;通过卫星号可以确定该工程值信息是从哪个卫星上传下的。通过帧协议解析出的工程值信息包括但不限于上述三种,比如,还包括卫星发送该数据的时间,或者其他的相关信息。
当确定所述工程值信息中的所述卫星号、所述工程值代号以及所述工程值数值与所述缓存区中已存在的工程值信息的所述卫星号、所述工程值代号以及所述工程值数值至少一个不相同时,确定所述工程值信息与所述缓存区中已存在的工程值信息不相同。
鉴于从工程值数据中解析得到的还可能是其他信息,但是在本发明实施例中主要通过对比卫星号,工程值代号和工程值数值来确定消息是否相同,本领域技术人员还可以根据实际经验设置其他的指标来判断工程值数据是否与缓存区中已存在的数据相同。
在本发明实施例中,工程值线程池中的所述工程值存储线程调用数据对比模块将接收的解析后的工程值信息与缓存区中已经存储的工程值信息进行对比,当确定接收的工程值信息与缓存区中存储的工程值信息不同时,可认为接收的工程值信息与缓存区中已存储的工程值信息是没有重复的,此时将该工程值信息存储到缓存区中;当确定接收的工程值信息与缓存区中某一条的上述三个字段表征的信息都相同,则认为接收的该工程值信息与缓存区中工程值信息是有重复的,此时,工程值存储线程丢弃该工程值信息。
本发明实施例通过丢弃与缓存区相同的信息,只保存与缓存区不相同的信息,来保证这个时间段内该缓存区中的工程值信息是没有重复的,相当于对接收的工程值信息进行了一道筛选,剔除了重复数据,从而实现对接收的工程值信息的压缩。
在将工程值信息保存如缓存区的同时,也将该工程值信息改写为数据库能够识别的SQL语句存入数据库的缓冲区中,此时缓冲区的数据由于在存入之前已通过缓冲区中的工程值信息进行了一道筛选,保证了缓冲区中的数据也没有重复的SQL语句。当缓冲区中的SQL语句的数量达到预设阈值时,统一执行缓冲区中的语句,使得缓冲区中对应的工程值信息存入到数据库,从而完成将工程值信息存入数据库的任务。
本发明实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法,例如,如图1示出的方法。
一种存储介质,所述存储介质存储有可执行指令,当所述可执行指令被至少一个处理器执行时,实现上述实施例中的任一方法。
在一些实施例中,存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种数据存储方法,其特征在于,所述方法包括:
从网络中获取卫星遥测数据;判断所述卫星遥测数据的类型为源码数据或工程值数据;其中,所述源码数据为从卫星上传出的原始数据;所述工程值数据为将所述源码解析后得到的有关所述卫星的具体数据;
若确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库;
若确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,再将所述工程值信息与缓存区中已存在的工程值信息进行对比,当确定所述工程值信息与所述缓存区中已存在的工程值信息不相同时,将所述工程值信息存入所述缓存区中,并将所述工程值信息存入数据库的缓冲区;当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。
2.根据权利要求1中所述的数据存储方法,其特征在于,所述将所述源码数据从字节型转换为字符型,包括:
源码线程池中的源码存储线程调用源码数据转换模块对所述源码数据进行数据类型转换。
3.根据权利要求1中所述的数据存储方法,其特征在于,所述将所述工程值数据解析为工程值信息,还包括:
工程值线程池中的所述工程值存储线程将所述工程值数据解析为工程值信息,所述工程值信息包括:卫星号、工程值代号以及工程值数值;
其中,卫星号用于标识所述工程值数据所属的卫星。
4.根据权利要求3中所述的数据存储方法,其特征在于,所述将所述工程值信息与缓存区中已存在的工程值信息进行对比,包括:
所述工程值线程池中的所述工程值存储线程调用数据对比模块对所述工程值信息进行对比。
5.根据权利要求1中所述的数据存储方法,其特征在于,所述确定所述工程值信息与所述缓存区中已存在的工程值信息不相同,包括:
当确定所述工程值信息中的所述卫星号、所述工程值代号以及所述工程值数值与所述缓存区中已存在的工程值信息的所述卫星号、所述工程值代号以及所述工程值数值至少一个不相同时,确定所述工程值信息与所述缓存区中已存在的工程值信息不相同。
6.根据权利要求4中所述的数据存储方法,其特征在于,所述方法还包括:
当确定所述工程值信息与所述缓存区中已存在的工程值信息存在相同的数据时,丢弃所述工程值信息。
7.根据权利要求1中所述的数据存储方法,其特征在于,所述将所述工程值信息存入数据库的缓冲区,包括:
将所述工程值信息改写为一条能够插入数据库表的SQL语句,并将所述SQL语句存入所述缓冲区。
8.根据权利要求7中所述的数据存储方法,其特征在于,所述方法还包括:
将所述缓冲区的所述SQL语句对应的工程值信息存入对应的数据库表前,对比所述缓冲区的所述SQL语句对应的工程值信息与所述SQL语句对应的所述数据库表中的工程值信息是否相同;若不同,则保留所述SQL语句,否则,从所述缓冲区中删除所述SQL语句。
9.一种数据存储装置,其特征在于,所述装置包括:获取模块、判断模块和处理模块;
所述获取模块,用于从网络中获取卫星遥测数据;
所述判断模块:用于判断所述卫星遥测数据的类型为源码数据或工程值数据;其中,所述源码数据为从卫星上传出的原始数据;所述工程值数据为将所述源码解析后得到的有关所述卫星的具体数据;
所述处理模块,用于若所述判断模块确定所述卫星遥测数据为源码数据,则将所述源码数据从字节型转换为字符型,再将所述字符型的源码数据存入数据库;若所述判断模块确定所述卫星遥测数据为工程值数据,则将所述工程值数据解析为工程值信息,再将所述工程值信息与缓存区中已存在的工程值信息进行对比,当确定所述工程值信息与所述缓存区中已存在的工程值信息不相同时,将所述工程值信息存入所述缓存区中,并将所述工程值信息存入数据库的缓冲区;当所述缓冲区中存入的所述工程值信息的数量达到预设阈值时,将所述缓冲区中所有的工程值信息存入所述数据库。
10.一种存储介质,其特征在于,所述存储介质存储有可执行指令,当所述可执行指令被至少一个处理器执行时,实现权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911198455.8A CN111078694A (zh) | 2019-11-29 | 2019-11-29 | 一种数据存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911198455.8A CN111078694A (zh) | 2019-11-29 | 2019-11-29 | 一种数据存储方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111078694A true CN111078694A (zh) | 2020-04-28 |
Family
ID=70312393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911198455.8A Pending CN111078694A (zh) | 2019-11-29 | 2019-11-29 | 一种数据存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078694A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367108A (zh) * | 2020-09-28 | 2021-02-12 | 北京空间飞行器总体设计部 | 一种卫星实时监测系统缓存动态优化方法 |
CN112783056A (zh) * | 2021-01-04 | 2021-05-11 | 潍柴动力股份有限公司 | Ecu的数据烧写方法、装置、设备及存储介质 |
CN113220698A (zh) * | 2021-06-08 | 2021-08-06 | 星河动力(北京)空间科技有限公司 | 试验数据处理方法、装置、设备及计算机可读存储介质 |
CN116521687A (zh) * | 2023-07-04 | 2023-08-01 | 北京航天驭星科技有限公司 | 遥测数据解析结果存储与查询方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100260187A1 (en) * | 2009-04-10 | 2010-10-14 | Barracuda Networks, Inc | Vpn optimization by defragmentation and deduplication apparatus and method |
CN103914565A (zh) * | 2014-04-21 | 2014-07-09 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
CN104252526A (zh) * | 2014-08-29 | 2014-12-31 | 航天东方红卫星有限公司 | 基于冗余消除的遥测存储方法 |
CN105608088A (zh) * | 2014-11-19 | 2016-05-25 | 中国航空工业集团公司西安飞机设计研究所 | 一种基于配置文件的数据库自动创建与数据动态记录方法 |
CN108536736A (zh) * | 2018-03-06 | 2018-09-14 | 航天东方红卫星有限公司 | 一种小卫星综合测试系统实时数据库搭建方法及系统 |
-
2019
- 2019-11-29 CN CN201911198455.8A patent/CN111078694A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100260187A1 (en) * | 2009-04-10 | 2010-10-14 | Barracuda Networks, Inc | Vpn optimization by defragmentation and deduplication apparatus and method |
CN103914565A (zh) * | 2014-04-21 | 2014-07-09 | 北京搜狐新媒体信息技术有限公司 | 一种向数据库插入数据的方法及装置 |
CN104252526A (zh) * | 2014-08-29 | 2014-12-31 | 航天东方红卫星有限公司 | 基于冗余消除的遥测存储方法 |
CN105608088A (zh) * | 2014-11-19 | 2016-05-25 | 中国航空工业集团公司西安飞机设计研究所 | 一种基于配置文件的数据库自动创建与数据动态记录方法 |
CN108536736A (zh) * | 2018-03-06 | 2018-09-14 | 航天东方红卫星有限公司 | 一种小卫星综合测试系统实时数据库搭建方法及系统 |
Non-Patent Citations (1)
Title |
---|
杨猛,吴超: "卫星测试数据接收及存储系统的实现", 军民两用技术与产品, no. 05 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112367108A (zh) * | 2020-09-28 | 2021-02-12 | 北京空间飞行器总体设计部 | 一种卫星实时监测系统缓存动态优化方法 |
CN112783056A (zh) * | 2021-01-04 | 2021-05-11 | 潍柴动力股份有限公司 | Ecu的数据烧写方法、装置、设备及存储介质 |
CN113220698A (zh) * | 2021-06-08 | 2021-08-06 | 星河动力(北京)空间科技有限公司 | 试验数据处理方法、装置、设备及计算机可读存储介质 |
CN116521687A (zh) * | 2023-07-04 | 2023-08-01 | 北京航天驭星科技有限公司 | 遥测数据解析结果存储与查询方法、装置及存储介质 |
CN116521687B (zh) * | 2023-07-04 | 2023-09-22 | 北京航天驭星科技有限公司 | 遥测数据解析结果存储与查询方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078694A (zh) | 一种数据存储方法和装置 | |
US11188380B2 (en) | Method and apparatus for processing task in smart device | |
CN101821728B (zh) | 批处理系统 | |
CN111045721B (zh) | 动态修改Nginx配置参数的方法、装置及存储介质 | |
CN106557470B (zh) | 数据提取方法和装置 | |
CN110445828B (zh) | 一种基于Redis的数据分布式处理方法及其相关设备 | |
CN111111214B (zh) | 一种游戏存档的处理方法、装置及系统 | |
WO2021204013A1 (zh) | 智能派工方法、装置、设备及存储介质 | |
US10754728B2 (en) | Accelerating system dump capturing | |
CN112953983A (zh) | Sftp传输方法及装置 | |
CN111866101A (zh) | 访问请求处理方法及装置、存储介质和电子设备 | |
CN110389840B (zh) | 负载消耗预警方法、装置、计算机设备和存储介质 | |
CN108595178B (zh) | 一种基于hook的数据采集方法、装置及设备 | |
CN110333916B (zh) | 请求消息处理方法、装置、计算机系统及可读存储介质 | |
CN111046245A (zh) | 多源异构数据源融合计算方法、系统、设备和存储介质 | |
CN111752916B (zh) | 数据采集方法及装置、计算机可读存储介质、电子设备 | |
CN112422564A (zh) | 协议的测试方法、装置、存储介质以及电子装置 | |
CN116233101A (zh) | 一种基于http接口热部署的数据采集任务框架及使用方法 | |
US11216352B2 (en) | Method for automatically analyzing bottleneck in real time and an apparatus for performing the method | |
US9436448B2 (en) | Optimization of meta-template instantiations | |
CN112883088A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN110471669B (zh) | 一种空指针引用的检测方法及检测装置 | |
CN114296865A (zh) | 一种虚拟机线程的调度方法、装置、电子设备及存储介质 | |
CN113806046A (zh) | 一种基于线程池的任务调度系统 | |
CN110597607B (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 |