KDB数据库表配置文件的生成方法、装置和电子设备与流程

文档序号:33191762发布日期:2023-02-04 08:47阅读:25来源:国知局
kdb数据库表配置文件的生成方法、装置和电子设备
技术领域
:1.本发明涉及数据库的
技术领域
:,尤其是涉及一种kdb数据库表配置文件的生成方法、装置和电子设备。
背景技术
::2.kdb作为世界上最快的时序数据库,在国外获得了较多的金融机构的青睐,包括高盛、瑞银、汇丰等头部金融机构均有采用;在国内虽有平安银行、华泰证券、深交所等金融机构采用,但总体上还没有被广泛采用。3.kdb数据库使用的是q语言,与常见的sql语言差异较大,具有短小精悍、学习曲线陡峭的特点,而且配套的kxplatform虽然提供了可视化的操作界面,但是在建kdb数据库表配置文件时,需要在可视化界面上手工逐个单元格输入实现,而在建列数比较多的表配置文件时,配置繁琐,效率较低。而其它常用的数据库都有可以自动生成表配置文件脚本的工具,比如powerdesigner可以根据实体关系模型自动生成多种数据库的表配置文件脚本。4.综上所述,由于国内用户较少,也很少见到kdb相关的开源效率工具,再加上q语言学习难度较高,kdb的配套工具不完善等原因,kdb数据库表配置文件的生成工作比较繁琐,效率比较低。技术实现要素:5.有鉴于此,本发明的目的在于提供一种kdb数据库表配置文件的生成方法、装置和电子设备,以缓解现有的kdb数据库表配置文件的生成方法繁琐、效率低的技术问题。6.第一方面,本发明实施例提供了一种kdb数据库表配置文件的生成方法,包括:7.读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;8.对所述表设计文档对象中的信息进行解析,得到所述表设计文档对象中的表信息;9.根据kdb数据库表配置文件的节点格式对所述表信息进行重组,得到xml配置文件;10.将所述xml配置文件加载至kdb数据库,得到所述kdb数据库表配置文件。11.进一步的,对所述表设计文档对象中的信息进行解析,包括:12.遍历所述表设计文档对象中的块,根据所述预设格式对所述块的信息进行解析,得到所述块对应的表信息,进而得到所述表设计文档对象中的表信息。13.进一步的,所述kdb数据库表配置文件的节点格式为对所述kdb数据库表配置文件进行分析得到的。14.进一步的,根据kdb数据库表配置文件的节点格式对所述表信息进行重组,包括:15.将各所述表信息添加至所述kdb数据库表配置文件中对应的目标节点位置,进而完成对所述表信息的重组,得到所述xml配置文件。16.进一步的,所述表设计文档为word文档,且所述表设计文档中包括:大纲1级格式的表的类别、大纲2级格式的表的子类、大纲3级格式的表的名称、正文文本格式的说明信息和表格格式存储的表内容。17.进一步的,所述方法还包括:18.根据所述kdb数据库表配置文件建表进行数据的存储。19.第二方面,本发明实施例还提供了一种kdb数据库表配置文件的生成装置,包括:20.读取单元,用于读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;21.解析单元,用于对所述表设计文档对象中的信息进行解析,得到所述表设计文档对象中的表信息;22.重组单元,用于根据kdb数据库表配置文件的节点格式对所述表信息进行重组,得到xml配置文件;23.加载单元,用于将所述xml配置文件加载至kdb数据库,得到所述kdb数据库表配置文件。24.进一步的,所述解析单元还用于:25.遍历所述表设计文档对象中的块,根据所述预设格式对所述块的信息进行解析,得到所述块对应的表信息,进而得到所述表设计文档对象中的表信息。26.第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。27.第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述第一方面任一项所述的方法。28.在本发明实施例中,提供了一种kdb数据库表配置文件的生成方法,包括:读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;对表设计文档对象中的信息进行解析,得到表设计文档对象中的表信息;根据kdb数据库表配置文件的节点格式对表信息进行重组,得到xml配置文件;将xml配置文件加载至kdb数据库,得到kdb数据库表配置文件。通过上述描述可知,本发明的kdb数据库表配置文件的生成方法能够基于表设计文档自动生成kdb数据库表配置文件,不仅可以避免大量的繁琐的人工输入,提高工作效率,也避免了人工输入过程中出现的手误,提高了生成的kdb数据库表配置文件的准确性,缓解了现有的kdb数据库表配置文件的生成方法繁琐、效率低的技术问题。附图说明29.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。30.图1为本发明实施例提供的一种kdb数据库表配置文件的生成方法的流程图;31.图2为本发明实施例提供的一种kdb数据库表配置文件的生成装置的示意图;32.图3为本发明实施例提供的一种电子设备的示意图。33.图标:10-读取单元;20-解析单元;30-重组单元;40-加载单元。具体实施方式34.下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。35.目前,在建kdb数据库表配置文件时,需要在可视化界面上手工逐个单元格输入实现,而在建列数比较多的表配置文件时,配置繁琐,效率较低。36.基于此,本发明的kdb数据库表配置文件的生成方法能够基于表设计文档自动生成kdb数据库表配置文件,不仅可以避免大量的繁琐的人工输入,提高工作效率,也避免了人工输入过程中出现的手误,提高了生成的kdb数据库表配置文件的准确性。37.为便于对本实施例进行理解,首先对本发明实施例所公开的一种kdb数据库表配置文件的生成方法进行详细介绍。38.实施例一:39.根据本发明实施例,提供了一种kdb数据库表配置文件的生成方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。40.图1是根据本发明实施例的一种kdb数据库表配置文件的生成方法的流程图,如图1所示,该方法包括如下步骤:41.步骤s102,读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;42.在本发明实施例中,表设计文档为word文档,且表设计文档中包括:大纲1级格式的表的类别、大纲2级格式的表的子类、大纲3级格式的表的名称、正文文本格式的说明信息和表格格式存储的表内容。43.具体的,人工根据业务需求编写表设计文档时,按照下述预设格式进行编写:44.(1)将表的类别设为“大纲1级”;45.(2)将表的子类设为“大纲2级”;46.(3)将表的名称设为“大纲3级”;47.(4)将说明信息设为“正文文本”,说明信息可以用来说明表中数据的源系统、组名、分区字段、排序字段等,采用“属性名:属性值”的格式,不同的属性之间用“;”进行分割,如下述表格上方的:datasource:source_1;schemagroup:group_1;partitionfields:field_1;orderbyfields:(field_2,field_3);48.(5)将表内容用word表格格式存储,包含有:字段代码、字段名称、字段类型、可否为空、默认值、是否键列、属性和备注这8列。49.例如,编写的表设计文档可以如下:50.1tableclass_151.1.1tableclass_252.1.1.1tablename_153.datasource:source_1;schemagroup:group_1;partitionfields:field_1;orderbyfields:(field_2,field_3)[0054][0055]需要说明的是:表设计文档是根据业务需求进行人工设定的,例如:需要的是用户表,其中表格中的属性需要有:用户id、用户名、手机号、地址等,若对地址不关注,更多的是关注一些社交属性,那么可以不要地址属性,而增加微信,微博属性等,表格中所包含的属性字段需要根据业务需求来进行确定。再例如,需要的是证券的表,其中表格中的属性需要有:证券代码、证券名称等。[0056]步骤s104,对表设计文档对象中的信息进行解析,得到表设计文档对象中的表信息;[0057]具体的,在进行解析时,根据预设格式对表设计文档对象中的信息进行解析,进而得到其中的表信息。[0058]步骤s106,根据kdb数据库表配置文件的节点格式对表信息进行重组,得到xml配置文件;[0059]上述xml配置文件为xml格式的文件。[0060]步骤s108,将xml配置文件加载至kdb数据库,得到kdb数据库表配置文件。[0061]下文中再对上述过程进行详细介绍,在此不再赘述。[0062]在本发明实施例中,提供了一种kdb数据库表配置文件的生成方法,包括:读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;对表设计文档对象中的信息进行解析,得到表设计文档对象中的表信息;根据kdb数据库表配置文件的节点格式对表信息进行重组,得到xml配置文件;将xml配置文件加载至kdb数据库,得到kdb数据库表配置文件。通过上述描述可知,本发明的kdb数据库表配置文件的生成方法能够基于表设计文档自动生成kdb数据库表配置文件,不仅可以避免大量的繁琐的人工输入,提高工作效率,也避免了人工输入过程中出现的手误,提高了生成的kdb数据库表配置文件的准确性,缓解了现有的kdb数据库表配置文件的生成方法繁琐、效率低的技术问题。[0063]上述内容对本发明的kdb数据库表配置文件的生成方法进行了简要介绍,下面对其中涉及的具体内容进行详细描述。[0064]在本发明的一个可选实施例中,对表设计文档对象中的信息进行解析,具体包括如下步骤:[0065]遍历表设计文档对象中的块,根据预设格式对块的信息进行解析,得到块对应的表信息,进而得到表设计文档对象中的表信息。[0066]具体的,遍历表设计文档对象中的块“block”,根据预设格式对块的信息进行解析:如果该块为“paragraph”(即段落)且风格为“heading3”(即大纲3级),则可以判定该块为表的名称;如果该块为“paragraph”(即段落)且风格为“normal”(即正文文本),则可以判定该块为说明信息,可以按说明信息的格式进一步进行行解析;如果该块为“paragraph”(即段落)且风格为“table”(即表格),则可以判定该块为用来存储表内容的word表格,遍历该表格,可以进一步得到字段代码、字段名称、字段类型、可否为空、默认值、是否键列、属性、备注这些表信息,进而便能得到表设计文档对象中的所有的表信息。[0067]在本发明的一个可选实施例中,kdb数据库表配置文件的节点格式为对kdb数据库表配置文件进行分析得到的。[0068]具体的,经过分析发现,kdb数据库表配置文件为xml格式的文件,其父节点为schema,该节点下有ucname(常量值)、table(表名)、description(表描述信息)、column(列父节点)、schemagroup(表所属分组)这些子节点,而column子节点又包含column(字段代码)、coltype(字段类型)、default(默认值)、attribute(属性)、description(备注)这些节点。[0069]在本发明的一个可选实施例中,根据kdb数据库表配置文件的节点格式对表信息进行重组,具体包括如下步骤:[0070]将各表信息添加至kdb数据库表配置文件中对应的目标节点位置,进而完成对表信息的重组,得到xml配置文件;[0071]将xml配置文件加载至kdb数据库,便得到了kdb数据库表配置文件。[0072]具体的,得到的kdb数据库表配置文件如下所示:[0073][0074][0075]在本发明的一个可选实施例中,该方法还包括:[0076]根据kdb数据库表配置文件建表进行数据的存储。[0077]相比于现有技术的在kxplatform的可视化界面上手工逐个单元格输入进行建表配置文件的繁琐耗时低效的方法,本发明的生成方法在将表设计文档设计成标准化结构化的文档后,通过程序自动生成kdb数据库表配置文件,将大量的繁琐的手工操作改变为自动化的程序性工作,简单快捷。[0078]本发明的方案具有以下的优点:[0079](1)本方案需要将表设计文档进行标准化结构化处理,规范了表设计文档的形式和内容,使表设计文档具有统一性,更易于阅读和使用;[0080](2)本方案使用程序自动化生成kdb数据库表配置文件,不仅可以避免大量的繁琐的手动工作,提高了工作效率,也避免了手动工作中易出现的手误,提高了生成的kdb数据库表配置文件的准确性;[0081](3)本方案具有通用性和扩展性,只要表设计文档按照一定的格式进行标准化结构化编写,不仅可以生成kdb数据库表配置文件,还可以直接生成q语言的建表语句,减少q语言代码的编写工作。[0082]实施例二:[0083]本发明实施例还提供了一种kdb数据库表配置文件的生成装置,该kdb数据库表配置文件的生成装置主要用于执行本发明实施例一中所提供的kdb数据库表配置文件的生成方法,以下对本发明实施例提供的kdb数据库表配置文件的生成装置做具体介绍。[0084]图2是根据本发明实施例的一种kdb数据库表配置文件的生成装置的示意图,如图2所示,该装置主要包括:读取单元10、解析单元20、重组单元30和加载单元40,其中:[0085]读取单元,用于读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;[0086]解析单元,用于对表设计文档对象中的信息进行解析,得到表设计文档对象中的表信息;[0087]重组单元,用于根据kdb数据库表配置文件的节点格式对表信息进行重组,得到xml配置文件;[0088]加载单元,用于将xml配置文件加载至kdb数据库,得到kdb数据库表配置文件。[0089]在本发明实施例中,提供了一种kdb数据库表配置文件的生成装置,包括:读取人工根据业务需求按照预设格式编写的表设计文档,得到表设计文档对象;对表设计文档对象中的信息进行解析,得到表设计文档对象中的表信息;根据kdb数据库表配置文件的节点格式对表信息进行重组,得到xml配置文件;将xml配置文件加载至kdb数据库,得到kdb数据库表配置文件。通过上述描述可知,本发明的kdb数据库表配置文件的生成装置能够基于表设计文档自动生成kdb数据库表配置文件,不仅可以避免大量的繁琐的人工输入,提高工作效率,也避免了人工输入过程中出现的手误,提高了生成的kdb数据库表配置文件的准确性,缓解了现有的kdb数据库表配置文件的生成方法繁琐、效率低的技术问题。[0090]可选地,解析单元还用于:遍历表设计文档对象中的块,根据预设格式对块的信息进行解析,得到块对应的表信息,进而得到表设计文档对象中的表信息。[0091]可选地,kdb数据库表配置文件的节点格式为对kdb数据库表配置文件进行分析得到的。[0092]可选地,重组单元还用于:将各表信息添加至kdb数据库表配置文件中对应的目标节点位置,进而完成对表信息的重组,得到xml配置文件。[0093]可选地,表设计文档为word文档,且表设计文档中包括:大纲1级格式的表的类别、大纲2级格式的表的子类、大纲3级格式的表的名称、正文文本格式的说明信息和表格格式存储的表内容。[0094]可选地,该装置还用于:根据kdb数据库表配置文件建表进行数据的存储。[0095]本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。[0096]如图3所示,本技术实施例提供的一种电子设备600,包括:处理器601、存储器602和总线,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线通信,所述处理器601执行所述机器可读指令,以执行如上述kdb数据库表配置文件的生成方法的步骤。[0097]具体地,上述存储器602和处理器601能够为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述kdb数据库表配置文件的生成方法。[0098]处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现成可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。[0099]对应于上述kdb数据库表配置文件的生成方法,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述kdb数据库表配置文件的生成方法的步骤。[0100]本技术实施例所提供的kdb数据库表配置文件的生成装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本技术实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。[0101]在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0102]再例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0103]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0104]另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。[0105]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述车辆标记方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0106]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。[0107]最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1