CN116501744A - 仿真数据的自动化建表与入库方法、装置和计算机设备 - Google Patents
仿真数据的自动化建表与入库方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN116501744A CN116501744A CN202310788961.2A CN202310788961A CN116501744A CN 116501744 A CN116501744 A CN 116501744A CN 202310788961 A CN202310788961 A CN 202310788961A CN 116501744 A CN116501744 A CN 116501744A
- Authority
- CN
- China
- Prior art keywords
- data
- attribute
- parameter
- simulation
- configuration file
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 title claims abstract description 42
- 235000019580 granularity Nutrition 0.000 claims description 33
- 230000002452 interceptive effect Effects 0.000 claims description 15
- 230000003993 interaction Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 abstract description 16
- 238000012545 processing Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000007405 data analysis Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000533950 Leucojum Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008846 dynamic interplay Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000003068 static effect Effects 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; 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/21—Design, administration or maintenance of databases
-
- 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
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种仿真数据的自动化建表与入库方法、装置和计算机设备,方法包括:首先设计仿真数据的配置文件格式,然后解析采集到的仿真数据,得到若干个属性或参数内容并填入采集配置文件框架,接着对于模型表信息容器中的属性或参数为多粒度的数据类型,将对应字段作为从属表字段单独建表,并在每一次单独建表时在主表中为该从属表字段添加一次附加信息字段。综上,本方案能够针对不同的仿真场景自动化建表和入库,大大降低了人工成本,并降低了人为产生错误的可能性,同时提高了建表和入库的效率,方便事后分析和处理。
Description
技术领域
本申请涉及计算机仿真技术领域,特别是涉及一种仿真数据的自动化建表与入库方法、装置和计算机设备。
背景技术
传统的仿真数据采集系统面对数据量大、数据多样、数据结构复杂等场景,针对不同的仿真场景在建表和数据入库时都会有所不同,因此需要频繁地修改仿真数据对象结构和数据表,加大了人工成本以及因人为而产生错误的可能性。
发明内容
基于此,有必要针对上述技术问题,提供一种仿真数据的自动化建表与入库方法、装置和计算机设备。
一种仿真数据的自动化建表与入库方法,所述方法包括:
确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据所述采集场景和所述配置文件格式构建仿真数据配置文件框架;
获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入所述仿真数据配置文件框架,得到模型表信息容器;
在所述模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为所述属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
一种仿真数据的自动化建表与入库装置,所述装置包括:
配置文件框架构建模块,用于确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据所述采集场景和所述配置文件格式构建仿真数据配置文件框架;
配置文件框架填充建取模块,用于获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入所述仿真数据配置文件框架,得到模型表信息容器;
关系表入库模块,用于在所述模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为所述属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据所述采集场景和所述配置文件格式构建仿真数据配置文件框架;
获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入所述仿真数据配置文件框架,得到模型表信息容器;
在所述模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为所述属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
上述仿真数据的自动化建表与入库方法、装置和计算机设备,首先设计仿真数据的配置文件格式,以此实现能够根据不同的仿真数据采集场景自适应调整得到采集配置文件框架;然后解析采集到的仿真数据,得到若干个属性或参数内容并填入采集配置文件框架,得到的模型表信息容器中包括后续用于创建关系表所需用到的以特定格式规范存储的仿真数据信息;接着对于模型表信息容器中的属性或参数为多粒度的数据类型,将对应字段作为从属表字段单独建表,并在每一次单独建表时在主表中为该从属表字段添加一次附加信息字段,这样在事后分析时,单独创建的新表能够与原主表中的从属表字段的附加信息字段关联起来,解决了对象模型模板中现有的数据定义将无法区分其关系表中的数据,并且所有数据将处在同一张关系表中,事后分析和处理将无法区分的问题。综上,本方案能够针对不同的仿真场景自动化建表和入库,大大降低了人工成本,并降低了人为产生错误的可能性,同时提高了建表和入库的效率,方便事后分析和处理。
附图说明
图1为一个实施例中仿真数据的自动化建表与入库方法的流程示意图;
图2为一个实施例中仿真数据配置文件格式示意图;其中(a)为仿真数据配置文件格式的树状示意图,(b)为参数/属性类型的树状示意图;
图3为一个实施例中数据整体解包格式示意图;
图4为一个实施例中数据自动入库运行图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
通用模拟数据采集技术是一种基于MDA(Model Driven Architecture,MDA)软件开发思想的数据采集技术。MDA软件开发的核心思想是将与具体应用相关部分与通用部分相分开,实现“特性”与“共性”的分离,以达到系统最大重用,减少重复开发。
通用模拟数据采集技术中的“通用”,是指采集系统能够适用于各种仿真系统,不局限于某个具体的仿真联邦,实现模拟数据采集的通用性和采集配置的灵活可配置性。其中,仿真联邦为实现某种特定仿真目的的仿真系统。
通用模拟数据采集技术主要涉及到两个技术:
(a)采集配置信息的格式化描述;
(b)采集成员的动态公布订购。
(1)采集配置信息的形式化描述
采集配置是仿真数据采集的初始化数据集合,同时也是实现仿真数据采集、解析通用性的前提条件。采集配置中描述的内容包括采集成员的创建所需信息:仿真联邦名、采集成员名、联邦fed文件;包括采集成员的公布订购信息:订购对象类、对象类属性、交互类、交互类参数,这些信息是采集成员采集到仿真数据的关键;另外还包括:对象类属性和交互类参数的定义(包括属性/参数的数据类型和粒度),以及复杂数据类型、简单数据类型和枚举数据类型的定义。这些信息必须以严格定义的数据格式进行描述,才能实现配置信息在采集配置设置工具和通用采集工具间的顺利交换,实现采集工具的顺利读取和正确理解。因此,采集配置信息可以采用XML语言作为描述语言,利用XML提供的层次性描述方式来设计采集配置文件格式,届时再通过XML解析工具解析该配置文件。
(2)采集成员的动态公布订购
这里的“动态”对于通用模拟数据方法实现“通用”有着非常重要的意义。在一般的HLA(High Level Architecture,HLA)仿真系统中,其联邦成员的公布订购关系是固定的,即在源代码中就确定了。编译生成成员以后就只能按照这个公布/订购关系进行仿真。而在动态公布/订购模块中摆脱了以往的模式。公布/订购关系是通过配置文件提供的信息来进行的,不同的配置文件形成不同的公布/订购关系。采集成员的动态公布订购一方面需要根据配置信息创建采集成员,加入仿真联邦,成员名称、联邦名称和联邦fed文件都从采集配置文件中获得;一方面需要向联邦声明订购,只有声明了订购对象类、交换类,才能实现数据的采集。而采集成员声明了订购关系,就可以采集所有订购了的对象类实例及其属性,交互类实例及其参数。在通用模拟数据方法中,由于没有在代码中生成相关对象类和交互类的定义,所以由RTI(Run-time Infrastructure,RTI)代理函数所得到的都是对象类的属性数据块或交互类的参数数据块,这些数据块的需要以特定的格式进行保存,才进行数据解析。
在一个实施例中,如图1所示,提供了一种仿真数据的自动化建表与入库方法,包括以下步骤:
步骤102,确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据采集场景和配置文件格式构建仿真数据配置文件框架。
针对在建表和数据入库时针对不同仿真场景需要频繁修改数据表信息和仿真数据对象结构信息的问题,为了能自动获得表信息和仿真数据对象的结构信息,本方案首先设计了一个仿真数据的配置文件格式,以此实现能够根据不同的仿真数据采集场景自适应调整得到对应的采集配置文件框架。
其中,配置文件格式可视作一个树状结构,该树状结构的顶端包含2个节点:交互类和对象类。对象类是指客观存在的数据元素,例如人,在不同时间戳,对象类的属性可能发生变化;交互类是指在某个时间段内,数据元素之间发生的动态交互,以参数表示。
步骤104,获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入仿真数据配置文件框架,得到模型表信息容器。
获取的仿真数据为打包形式,因此需要将其进行解析得到对象类的属性信息和交互类的参数信息。将解析得到的若干个属性或参数内容填入仿真数据配置文件框架后,得到的是一个初始的关系表集合,其中存在某些关系表需要作进一步处理。
步骤106,在模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
关系表的创建主要基于对象模型模板,即仿真数据配置文件框架进行,因此首先要考虑对象模型模板中定义的数据类型与一般关系数据库中数据类型的对应关系。以MYSQL数据库为例,对象模型模板OMT中数据类型与数据库中字段类型对应关系如表1所示。其中,char、byte8、double以及float一般以数据库所能表示的最大长度及精度为限制,应用时根据实际情况再作适当的调整。
表1 OMT中数据类型与MYSQL数据库中数据类型对应关系
考虑到对象模型模板文件中现有的数据定义将无法区分其关系表中的数据,若根据粒度建立字段存在XX问题,并且所有数据将处在同一张关系表中,事后分析和处理将无法区分,因此本方案通过添加额外的附加信息字段来解决上述问题。
以飞机对象为例,考虑平台对象属性表2,表2中共有一层继承关系,父类平台(Platform)以及子类飞机(Plane),Plane继承了Platform的loadNum、loadIDs、platformInfo和containerID属性,同时Plane又有自己独有的属性machineGun、rocketLauncher、missleLauncher、photoelectricBall和AttiAng,其中,loadIDs属性字段的粒度为10,为多粒度,因此将loadIDs属性字段添加一个‘$’符号,另建一张Platform_loadIDs表,表结构见表3第3列,事后分析时,由于Platform_loadIDs表通过Instance_id字段与原主表loadIDs$字段中的雪花数关联,可以快速查询到所需信息。
表2 平台对象属性表
表3MYSQL数据库中各表字段信息
因此,凡是遇到属性或参数多粒度的情况,均将对应的字段抽取出来,单独建表。
上述仿真数据的自动化建表与入库方法中,首先设计仿真数据的配置文件格式,以此实现能够根据不同的仿真数据采集场景自适应调整得到采集配置文件框架;然后解析采集到的仿真数据,得到若干个属性或参数内容并填入采集配置文件框架,得到的模型表信息容器中包括后续用于创建关系表所需用到的以特定格式规范存储的仿真数据信息;接着对于模型表信息容器中的属性或参数为多粒度的数据类型,将对应字段作为从属表字段单独建表,并在每一次单独建表时在主表中为该从属表字段添加一次附加信息字段,这样在事后分析时,单独创建的新表能够与原主表中的从属表字段的附加信息字段关联起来,解决了对象模型模板中现有的数据定义将无法区分其关系表中的数据,并且所有数据将处在同一张关系表中,事后分析和处理将无法区分的问题。此外,通过建立分表的手段,大大减少了主表承载的数据量,这样做不仅加快了仿真数据入库的速度,同时也有利于事后快速查询所需信息。综上,本方案能够针对不同的仿真场景自动化建表和入库,大大降低了人工成本,并降低了人为产生错误的可能性,同时提高了建表和入库的效率,方便事后分析和处理。
在一个实施例中,配置文件格式中包括对象类数据格式和交互类数据格式;
对象类数据格式中包括对象类ID、对象类名、对象类属性列表和对象类子类列表;对象类属性列表中包括属性名称、属性类型和属性粒度;交互类数据格式中包括交互类ID、交互类名、交互类参数列表和交互类子类列表;交互类参数列表中包括参数名称、参数类型和参数粒度;
属性类型和参数类型为简单数据类型、枚举数据类型和复杂数据类型中的一种或多种;简单数据类型由简单数据名称和字节大小组成; 枚举数据类型由枚举数据名称和值组成;复杂数据类型由数据名称、数据类型和数据粒度组成;复杂数据粒度为单粒度或多粒度。
如图2所示,提供配置文件格式的结构示意图。其中图2(a)为仿真数据配置文件格式的树状示意图;图2(b)为参数/属性类型的树状示意图。
在一个实施例中,当将模型表信息容器中存在复杂数据类型时,若将复杂数据类型解析到底层后,得到的简单数据类型和/或枚举数据类型为单粒度,将得到的单粒度简单数据类型和/或枚举数据类型分别与目标数据库中的数据类型相对应,得到对应的第二关系表。
由于对象模型模板中数据类型可能包含复杂数据结构,数据库建表时可以考虑采用面向对象的方式建表,但对事后测试与评估来说,仍然需要解析出对象的各项属性数据来进行分析,增加了事后测试与评估的负担。因此,为了减少不必要的麻烦,开始建表时就将复杂结构解析到底层简单数据类型,再分别与数据库中的数据类型相对应,事后测试与评估时,就可以直接利用表中的数据。
对于一般的复杂数据结构,如表2中父类Platform,包含四个属性loadNum、loadIDs、platformInfo和containerID,其中platformInfo为复杂数据结构,对platformInfo解析到底层type、currentStatus、rotation_x、rotation_y、rotation_z复杂域。
在一个实施例中,当将模型表信息容器中存在复杂数据类型时,将复杂数据类型解析到底层;
若得到的简单数据类型和/或枚举数据类型为多粒度,将多粒度对应的字段抽取出来作为从属表字段单独建表,并在每一次单独建表时在主表中为从属表字段添加一次附加信息字段,直至所有的关系表中数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到对应的多个第三关系表。
也就是说,如果遇到复杂数据域为多粒度或变粒度的情况,特别是复杂结构嵌套多粒度以及变粒度的情况,处理机制一样,通过递归调用,采用宽度优先的策略,一层层解析抽取,最终创建对应的关系表。也就是说,当对复杂数据类型进行解析后得到的还有可能是其他的复杂数据类型,此时若解析得到的复杂数据类型为多粒度或者变粒度,那么需要进行单独建表,直至解析到底层。
在一个实施例中,将所述模型表信息容器中的简单数据类型和/或枚举数据类型直接分别与目标数据库中的数据类型相对应,得到对应的第四关系表。
至此,可以知道,处理后的模型表信息容器中的简单数据类型或枚举数据类型包括:解析仿真数据包后直接得到的简单/枚举数据类型,以及从复杂数据类型解析到底层得到的简单/枚举数据类型。
在一个实施例中,对模型表信息容器中的对象类子类列表和参数类子类列表中的父类和子类均建立对应的关系表;
其中,对象类和交互类对应的关系表中包括仿真时间字段;对象类对应的关系表中还包括对象实例ID字段;仿真时间字段和对象实例ID字段均由仿真过程提供。
OMT中的对象类和交互类一般有多层继承关系,形成一个复杂的树型结构。但实际应用时,由于子类继承了父类的所有属性或参数,用户一般针对树的底层节点类进行分析。以飞机对象为例,考虑飞机对象属性表(表2)和复杂结构信息表(表4),表2中共有一层继承关系,父类平台类(Platform)以及子类飞机(Plane),Plane继承了Platform的loadNum、loadIDs、platformInfo和containerID属性,同时Plane又有自己独有的属性machineGun、rocketLauncher、missleLauncher、photoelectricBall和AttiAng。因此,用户一般选择对具体子类Plane的数据进行分析,但不排除某些特殊情况下,用户恰恰关心父类Platform的数据。因此建表时,对所有父类和子类都建立对应的关系表。
根据HLA公布、订购机制,如果用户订购了子类Plane的数据,则不管父类Platform订购与否,所有的数据都集中在子类Plane表中,父类Platform表中没有任何数据。如果用户只订购父类Platform,对应的就只有Platform表中有数据。具体情况视用户的需求而定。
表4飞机复杂结构信息表
为了事后分析和处理的需求,数据库关系表中需添加对应的附加字段。附加字段数据由两部分组成,一部分数据由仿真过程提供,一部分数据由事后用户提供。对对象类或交互类关系表来说,首先必须要有仿真时间字段,原因是只有标注了时戳的属性或参数才能有效地进行事后测试与评估,例如飞机的位置及速度信息就必须要与具体仿真时间相对应;其次,对对象类表来说,由于一张关系表对应OMT文件中的一个类,为了区分类表中各个具体的对象,还必须添加对应的对象实例ID字段。仿真时间和对象实例ID字段都是由仿真过程提供的,但有时用户需要通过多次仿真来比较仿真结果,则依靠现有的数据字段就不够了,这时需要用户介入,添加一些附加字段来标识,如试验号等等,这部分附加字段由事后用户提供(见表3)。
在一个实施例中,获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入仿真数据配置文件框架,得到模型表信息容器,包括:
获取采集到的仿真数据包,计算仿真数据包中每个域所占内存空间的长度;长度为对应域的自身长度与域之间的间隔长度的加和;
根据当前域的数据类型读取仿真数据,再根据当前域所占内存空间的长度跳到下一个域,如此从采集到的仿真数据中得到属性或参数键值对的数据值并填入仿真数据配置文件框架,得到模型表信息容器。
在一个实施例中,在第一关系表中,表字段以属性名、索引和域名,或者参数名、索引和域名命名;
在第二关系表中,表字段以属性名和域名,或者参数名和域名命名;
第三关系表中,表字段以属性名、索引和域名,或者参数名、索引和域名命名;
在第四关系表中,表字段以属性名或参数名命名。
根据数据解包的原理,将采集到的仿真数据块解析成一个个属性/参数内容,在数据解析过程中,需要注意两个问题:1、如何为数据块解析的数据内容分配内存,怎么去标识它们。2、在对复杂数据类型解包时发现,编译器在生成复杂数据类型的数据块时,并不是按照其定义一一存放域值的。为了保证内存使用的完整性,各域值之间可能会存在间隔。所以在解析复杂数据类型的数据块时就要跳过间隔,才能获得有效的数据内容。为了解决这两个问题,就需要在数据解包之前做好初始化工作。
首先,规定了属性/参数数据内容的命名规则来进行内存分配和标识工作。该规则为:对于简单数据类型的属性/参数,直接利用属性/参数名;对复杂数据类型,是属性/参数名加域名,直到分解到每个域都是简单数据类型。即如果把复杂数据类型看成一棵树,经过这样的命名,其每个叶子节点都是拥有唯一的名字简单数据类型;比较特殊的是多粒度的复杂属性/参数类型,命名方法是属性/参数名加索引加域名。
其次,计算各域所占长度来处理数据对齐机制导致的数据间隔。以VC++编译器为例,一个复杂数据类型包含两个double型,一个float型的结构。一般理解所占空间为8 + 8+ 4 = 20个字节。但是由于存在数据对齐的机制,它实际上占用的空间是8 + 8 + 8 = 24个字节。数据对齐机制的原理是要求在内存中数据内容的起始地址要和其数据长度成整数倍的关系。考虑到复杂数据类型的定义是固定的,所以在初始化时就可以根据各编译器的具体情况计算出每个域所占内存空间的长度(该长度等于该域自身的长度加上数据间隔的长度)。在数据解析的时候,先按照该域值的数据类型读取数据内容,然后再根据此域所占内存空间的长度跳到下一个域,这样就可以避免数据间隔带来的数据解析错位的情况。数据整体解包格式如图3所示。根据图3数据包格式以及上述解析规则,我们可以很容易从采集到的仿真数据内存块中得到属性/参数键值对的值,最后将这些数据值按对应数据表实现批量高效自动入库。
下面以一个具体实施例阐述本发明的方案。
步骤1:根据仿真场景修改仿真数据配置文件。仿真数据配置文件是模拟数据采集的初始化数据集合,同时也是实现模拟数据采集、解析通用性的前提条件。
步骤2:将自动建表与自动入库代码打包生成dll动态库文件,集成到整个系统框架中。
步骤3:在获取采集成员的公布订购信息后,调用自动建表函数CreateFOAndStatDatabase(),结合公布订购关系选择性创建或者克隆数据表。
步骤4:在获取到二进制仿真数据后,在线程函数中调用解析函数ParseAttrValue()解包数据后拼接生成insert语句,最后通过ODBC进行批量入库。
如图4所示,提供数据自动入库运行图。自动建表与入库以通用模拟数据采集与解析技术为核心,将与具体应用相关部分与通用部分相分开,实现“特性”与“共性”的分离,以达到系统最大重用,减少重复开发。对于不同的仿真数据采集场景,本方法通过修改仿真数据配置文件获得表结构并拼接建表SQL就能实现自动建表,通过模型表信息容器中的表字段控制二进制数据的偏移量offset截取所需数据的方式实现数据自动入库,从而实现模拟数据采集的通用性和采集配置的灵活可配置性。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种仿真数据的自动化建表与入库装置,包括:
配置文件框架构建模块,用于确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据采集场景和配置文件格式构建仿真数据配置文件框架;
配置文件框架填充建取模块,用于获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入仿真数据配置文件框架,得到模型表信息容器;
关系表入库模块,用于在模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
关于仿真数据的自动化建表与入库装置的具体限定可以参见上文中对于仿真数据的自动化建表与入库方法的限定,在此不再赘述。上述仿真数据的自动化建表与入库装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储仿真数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种仿真数据的自动化建表与入库方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种仿真数据的自动化建表与入库方法,其特征在于,所述方法包括:
确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据所述采集场景和所述配置文件格式构建仿真数据配置文件框架;
获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入所述仿真数据配置文件框架,得到模型表信息容器;
在所述模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为所述属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
2.根据权利要求1所述的方法,其特征在于,所述配置文件格式中包括对象类数据格式和交互类数据格式;
所述对象类数据格式中包括对象类ID、对象类名、对象类属性列表和对象类子类列表;所述对象类属性列表中包括属性名称、属性类型和属性粒度;
所述交互类数据格式中包括交互类ID、交互类名、交互类参数列表和交互类子类列表;所述交互类参数列表中包括参数名称、参数类型和参数粒度;
所述属性类型和参数类型为简单数据类型、枚举数据类型和复杂数据类型中的一种或多种;
所述简单数据类型由简单数据名称和字节大小组成;
所述枚举数据类型由枚举数据名称和值组成;
所述复杂数据类型由数据名称、数据类型和数据粒度组成;所述复杂数据粒度为单粒度或多粒度。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当将所述模型表信息容器中存在复杂数据类型时,若将所述复杂数据类型解析到底层后,得到的简单数据类型和/或枚举数据类型为单粒度,将得到的单粒度简单数据类型和/或枚举数据类型分别与目标数据库中的数据类型相对应,得到对应的第二关系表。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当将所述模型表信息容器中存在复杂数据类型时,将所述复杂数据类型解析到底层;
若得到的简单数据类型和/或枚举数据类型为多粒度,将多粒度对应的字段抽取出来作为从属表字段单独建表,并在每一次单独建表时在主表中为所述从属表字段添加一次附加信息字段,直至所有的关系表中数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到对应的多个第三关系表。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述模型表信息容器中的简单数据类型和/或枚举数据类型直接分别与目标数据库中的数据类型相对应,得到对应的第四关系表。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述模型表信息容器中的对象类子类列表和参数类子类列表中的父类和子类均建立对应的关系表;
其中,对象类和交互类对应的关系表中包括仿真时间字段;对象类对应的关系表中还包括对象实例ID字段;所述仿真时间字段和所述对象实例ID字段均由仿真过程提供。
7.根据权利要求2所述的方法,其特征在于,获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入所述仿真数据配置文件框架,得到模型表信息容器,包括:
获取采集到的仿真数据包,计算所述仿真数据包中每个域所占内存空间的长度;所述长度为对应域的自身长度与域之间的间隔长度的加和;
根据当前域的数据类型读取仿真数据,再根据当前域所占内存空间的长度跳到下一个域,如此从采集到的仿真数据中得到属性或参数键值对的数据值并填入所述仿真数据配置文件框架,得到模型表信息容器。
8.根据权利要求7所述的方法,其特征在于,在所述第一关系表中,表字段以属性名、索引和域名,或者参数名、索引和域名命名;
在所述第二关系表中,表字段以属性名和域名,或者参数名和域名命名;
所述第三关系表中,表字段以属性名、索引和域名,或者参数名、索引和域名命名;
在所述第四关系表中,表字段以属性名或参数名命名。
9.一种仿真数据的自动化建表与入库装置,其特征在于,所述装置包括:
配置文件框架构建模块,用于确定仿真数据的采集场景,获取预先设计的仿真数据的配置文件格式,根据所述采集场景和所述配置文件格式构建仿真数据配置文件框架;
配置文件框架填充建取模块,用于获取并解析采集到的仿真数据,得到若干个属性或参数内容并填入所述仿真数据配置文件框架,得到模型表信息容器;
关系表入库模块,用于在所述模型表信息容器中,当属性或参数的数据类型为多粒度时,将多粒度对应的属性或参数字段作为从属表字段单独建表,并在每一次单独建表时在主表中为所述属性或参数表字段添加一次附加信息字段,直至所有的关系表中属性或参数的数据类型均为单粒度,再分别与目标数据库中的数据类型相对应,得到多个第一关系表实现入库。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310788961.2A CN116501744B (zh) | 2023-06-30 | 2023-06-30 | 仿真数据的自动化建表与入库方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310788961.2A CN116501744B (zh) | 2023-06-30 | 2023-06-30 | 仿真数据的自动化建表与入库方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116501744A true CN116501744A (zh) | 2023-07-28 |
CN116501744B CN116501744B (zh) | 2023-09-19 |
Family
ID=87318741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310788961.2A Active CN116501744B (zh) | 2023-06-30 | 2023-06-30 | 仿真数据的自动化建表与入库方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501744B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060251289A1 (en) * | 2005-05-05 | 2006-11-09 | Sony United Kingdom Limited | Data processing apparatus and method |
CN101420437A (zh) * | 2008-11-14 | 2009-04-29 | 北京航空航天大学 | 一种原型系统与hla仿真系统的接口设备 |
US20110214067A1 (en) * | 2010-03-01 | 2011-09-01 | Salesforce.Com, Inc. | Method and system for providing an adaptive input user interface for data entry applications |
WO2013048273A1 (ru) * | 2011-09-26 | 2013-04-04 | Gorishniy Sergey Anatolievich | Система и метод хранения, извлечения и управления данными в объектной форме |
CN106844643A (zh) * | 2017-01-13 | 2017-06-13 | 王洋 | 一种基于模板引擎的数据库动态生成方法 |
US9852807B1 (en) * | 2015-12-17 | 2017-12-26 | Cadence Design Systems, Inc. | Content addressable memory in an emulation system |
CN107743072A (zh) * | 2017-07-04 | 2018-02-27 | 中国电力科学研究院 | 高效可扩展的网络仿真场景生成方法 |
CN109271355A (zh) * | 2018-08-27 | 2019-01-25 | 杭州迪普科技股份有限公司 | 一种清理日志文件缓存的方法及装置 |
CN110688387A (zh) * | 2019-10-10 | 2020-01-14 | 广州趣丸网络科技有限公司 | 一种数据处理方法及装置 |
CN112035410A (zh) * | 2020-08-18 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 日志存储方法、装置、节点设备及存储介质 |
CN115221361A (zh) * | 2022-06-23 | 2022-10-21 | 南京烽火星空通信发展有限公司 | 一种基于属性图模型存储和编码图数据的方法 |
CN116069530A (zh) * | 2023-04-03 | 2023-05-05 | 中国人民解放军国防科技大学 | 基于内存池的仿真引擎数据共享黑板系统 |
-
2023
- 2023-06-30 CN CN202310788961.2A patent/CN116501744B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060251289A1 (en) * | 2005-05-05 | 2006-11-09 | Sony United Kingdom Limited | Data processing apparatus and method |
CN101420437A (zh) * | 2008-11-14 | 2009-04-29 | 北京航空航天大学 | 一种原型系统与hla仿真系统的接口设备 |
US20110214067A1 (en) * | 2010-03-01 | 2011-09-01 | Salesforce.Com, Inc. | Method and system for providing an adaptive input user interface for data entry applications |
WO2013048273A1 (ru) * | 2011-09-26 | 2013-04-04 | Gorishniy Sergey Anatolievich | Система и метод хранения, извлечения и управления данными в объектной форме |
US9852807B1 (en) * | 2015-12-17 | 2017-12-26 | Cadence Design Systems, Inc. | Content addressable memory in an emulation system |
CN106844643A (zh) * | 2017-01-13 | 2017-06-13 | 王洋 | 一种基于模板引擎的数据库动态生成方法 |
CN107743072A (zh) * | 2017-07-04 | 2018-02-27 | 中国电力科学研究院 | 高效可扩展的网络仿真场景生成方法 |
CN109271355A (zh) * | 2018-08-27 | 2019-01-25 | 杭州迪普科技股份有限公司 | 一种清理日志文件缓存的方法及装置 |
CN110688387A (zh) * | 2019-10-10 | 2020-01-14 | 广州趣丸网络科技有限公司 | 一种数据处理方法及装置 |
CN112035410A (zh) * | 2020-08-18 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 日志存储方法、装置、节点设备及存储介质 |
CN115221361A (zh) * | 2022-06-23 | 2022-10-21 | 南京烽火星空通信发展有限公司 | 一种基于属性图模型存储和编码图数据的方法 |
CN116069530A (zh) * | 2023-04-03 | 2023-05-05 | 中国人民解放军国防科技大学 | 基于内存池的仿真引擎数据共享黑板系统 |
Non-Patent Citations (4)
Title |
---|
程思微, 陈璟, 沈林成: "基于代理的航天任务仿真资源库系统", 计算机仿真, pages 77 - 80 * |
陈彬;张国强;黄柯棣;: "一种基于HLA的通用仿真数据收集方法", 计算机仿真, no. 05, pages 132 - 135 * |
鞠儒生;乔海泉;邱晓钢;黄柯棣;: "HLA仿真结果数据库设计及其应用研究", 系统仿真学报, no. 02, pages 328 * |
鞠儒生;乔海泉;陈少卿;黄柯棣;: "HLA中基于OMT文件创建数据库关系表的方法", 计算机仿真, no. 05, pages 120 * |
Also Published As
Publication number | Publication date |
---|---|
CN116501744B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109670053B (zh) | 数据对象映射方法、装置、设备和计算机可读存储介质 | |
CN103412853B (zh) | 一种针对文档转换器的测试用例自动生成方法 | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
AU2014287654B2 (en) | Parser generation | |
CN111090417B (zh) | 二进制文件解析方法、装置、设备及介质 | |
CN106951231B (zh) | 一种计算机软件开发方法及装置 | |
CN110083617B (zh) | 一种ddl语句的处理方法、装置、电子设备和介质 | |
CN113791768B (zh) | 代码生成方法及装置、存储介质、终端 | |
CN109062565B (zh) | 数字卫星aos协议遥测源代码人工智能书写方法 | |
CN115543402B (zh) | 一种基于代码提交的软件知识图谱增量更新方法 | |
CN112187713B (zh) | 报文转换的方法、装置、计算机设备和存储介质 | |
CN107562429A (zh) | 一种基于编译规则的Android系统静态划分方法 | |
CN113986241A (zh) | 一种基于知识图谱的业务规则的配置方法以及装置 | |
EP3293644B1 (en) | Loading data for iterative evaluation through simd registers | |
CN111628975A (zh) | 一种组装xml报文的方法及装置 | |
CN110806973A (zh) | 一种接口报文的自动生成方法及装置 | |
CN116501744B (zh) | 仿真数据的自动化建表与入库方法、装置和计算机设备 | |
CN111625472A (zh) | 一种单元测试方法及装置 | |
CN111857662B (zh) | 基于map和接口来描述对象特定构成的程序设计方法 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN111325008A (zh) | 一种基于分布式的公式计算方法 | |
US20180314495A1 (en) | Method and apparatus for managing software | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN115543485B (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 |