一种灵活扩展数据库字段的方法与流程

文档序号:29958925发布日期:2022-05-11 08:37阅读:274来源:国知局
1.本发明属于数据库字段存储领域,尤其是涉及一种灵活扩展数据库字段的方法。
背景技术
::2.丰富的数据库字段对于数据库用户来可以说是一个非常重要的业务承载体,什么样的数据库字段类型存什么样的数据最合适一直都是用户必须要考虑的问题。而对于数据库产品本身的开发者来讲,最大程度地满足客户的存储需求是要面对的一项艰巨的任务。如何突破目前数据库字段中的限制具有重要意义。技术实现要素:3.有鉴于此,本发明旨在提出一种灵活扩展数据库字段的方法,以解决数据库字段存储有上限,数据字段不能进行灵活扩展的问题。4.为达到上述目的,本发明的技术方案是这样实现的:一种灵活扩展数据库字段的方法,包括字段写入方法和字段读取方法,具体步骤:字段写入方法:s11、数据库设存储单条数据容量为m1的一级缓存、存储单条数据容量为m2的二级缓存、存储单条数据容量大于m2的大数据存储介质,m1=m2;s12、客户端连接集群,启动字段写入流程;s13、判断写入的字段是否为扩展字段,如果是扩展字段则大数据存取引擎层开始接收数据,如果不是扩展字段,则将字段直接存入数据库文件后返回客户端;s14、大数据存取引擎层接收数据时,判断写入的数据量是否小于m2,若小于m2,则通过一级缓存写入二级缓存中,并返回二级缓存中字段存储地址信息,若不小于m2,则通过一级缓存分多次逐步存入大数据存储介质中,并返回字段存入大数据存储介质的地址信息;s15、将地址信息存入数据库文件后,字段写入成功,返回客户端;数据读取方法:s21、用户通过客户端发送需要读取的字段数据的请求s22、判断字段的标记是否为扩展字段,如果不是扩展字段则检索数据库文件读取字段,如果是扩展字段,则检索数据库文件确认字段存放的地址信息,根据地址信息从二级缓存或大数据存储介质中读取字段;s23、将字段数据返回给客户端。5.步骤s11中,一级缓存不向外部提供数据及数据检索,只用于存储数据后向二级缓存或大数据存储介质中写入数据;二级缓存用于存储和查询,包括hbase内存数据库、redis内存数据库、memcached内存数据库;大数据存储介质包括磁盘文件、分布式存储系统、云端存储。6.进一步的,步骤s13,判断写入的字段是否为扩展字段,具体方法,建立需要存入数据库的元数据表,所述元数据表包括字段类型列、对应字段类型列设置的字段内容列;若字段类型为扩展字段时,则添加uri尾缀;判断写入的字段是否为扩展字段即通过确认字段类型是否有uri尾缀。7.进一步的,步骤s13,大数据存取引擎层开始接收数据的方法是采用流式数据处理方式对扩展字段进行存储。8.进一步的,步骤s14,通过一级缓存写入二级缓存,具体方法:s1401、将需存入二级缓存的字段数据先写入一级缓存;s1402、将一级缓存和二级缓存的读写操作同时加锁,将一级缓存中的数据全部读出,并一次性写入二级缓存中,对一级缓存和二级缓存的读写操作同时解锁;s1403、清空步骤s1401中写入一级缓存的字段数据。9.进一步的,步骤s14中,通过一级缓存分多次逐步存入大数据存储介质,具体方法:s1411、将需存入大数据存储介质的字段数据写入到一级缓存中;s1412、由于是分多次逐步存入,因此每次存入大数据存储介质时均需判断一级缓存存入的字段数据是否已经达到m1限定阈值,若达到m1限定阈值,对一级缓存加锁,暂停从客户端向一级缓存中写入数据,同时对一级缓存和大数据存储介质读写操作同时加锁,将一级缓存中的数据全部读出,并全部写入大数据存储介质中,清空一级缓存空间,对一级缓存和大数据存储介质读写操作同时解锁;若未达到m1限定阈值,判断需存入大数据存储介质的字段数据是否已经全部读完,如果未读完,继续读取字段数据,并将字段数据写入到一级缓存中,再次判断一级缓存存入的字段数据是否已经达到m1限定阈值;如果读完,对一级缓存和大数据存储介质读写操作同时加锁,将一级缓存中的数据全部读出,并全部写入大数据存储介质中,清空一级缓存空间,对一级缓存和大数据存储介质读写操作同时解锁,返回在大数据存储介质中的地址信息。10.进一步的,地址信息包括地址协议、字符集、数据大小、时间戳、md5校验码。11.进一步的,基于上述的一种灵活扩展数据库字段的方法的一种灵活扩展数据库字段的系统,包括用于存储普通字段的磁盘、用于控制数据库扩展字段存储的大数据存取引擎层,所述大数据存取引擎层包括一级缓存、二级缓存、大数据存储介质,所述一级缓存仅用于存储,并将需要存储且数据量小于m2的扩展字段通过一级缓存存入二级缓存中,将需要存储且数据量不小于m2的扩展字段通过一级缓存存入大数据存储介质中,二级缓存、大数据存储介质存储数据并提供检索读取数据功能。12.相对于现有技术,本发明所述的一种灵活扩展数据库字段的方法具有以下有益效果:(1)本发明所述的一种灵活扩展数据库字段的方法,查询语句方法与普通语句查询相同,从数据库文件中读取时,普通字段从数据库文件中读取,扩展字段从数据库文件中读取地址信息,再通过地址信息从二级缓存或大数据存储介质中,调取字段数据,实现了对普通数据大小限制的字段的有效扩展,使普通数据字段也具有了无限扩展的可能;实现数据字段灵活扩展,同时使客户能够无感进行字段数据操作。13.(2)本发明所述的一种灵活扩展数据库字段的方法,通过二级缓存的筛选,将小于二级缓存的数据数据,即较小的扩展字段数据存入二级缓存中,较大的扩展字段数据存入大数据存储介质中,在后续对字段数据进行检索的时候,较小的扩展字段数据无需进大数据存储介质中进行检索,提高检索效率。14.(3)本发明所述的一种灵活扩展数据库字段的系统,考虑到写入二级缓存或者大数据存储介质时需要对其加锁,设置一级缓存,一级缓存不向外部提供数据,只用于存够一批后向二级缓存或者大数据存储介质一次性写入数据;通过一级缓存向二级缓存或大数据存储介质中存储拓展字段数据,增加一次性写入的数据量,不会中途因为外界检索读取二级缓存或大数据存储介质中内容是被暂停打断,以优化提升性能。附图说明15.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明实施例所述的一种灵活扩展数据库字段的方法框架示意图。具体实施方式16.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。17.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。18.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。19.下面将参考附图并结合实施例来详细说明本发明。20.如图1所示,一种灵活扩展数据库字段的方法,包括字段写入方法和字段读取方法,具体步骤:字段写入方法:s11、数据库设存储单条数据容量为m1的一级缓存、存储单条数据容量为m2的二级缓存、存储单条数据容量大于m2的大数据存储介质,m1=m2;s12、客户端连接集群,启动字段写入流程;s13、判断写入的字段是否为扩展字段,如果是扩展字段则大数据存取引擎层开始接收数据,如果不是扩展字段,则将字段直接存入数据库文件后返回客户端;s14、大数据存取引擎层接收数据时,判断写入的数据量是否小于m2,若小于m2,则通过一级缓存写入二级缓存中,并返回二级缓存中字段存储地址信息,若不小于m2,则通过一级缓存分多次逐步存入大数据存储介质中,并返回字段存入大数据存储介质的地址信息;s15、将地址信息存入数据库文件后,字段写入成功,返回客户端;数据读取方法:s21、用户通过客户端发送需要读取的字段数据的请求s22、判断字段的标记是否为扩展字段,如果不是扩展字段则检索数据库文件读取字段,如果是扩展字段,则检索数据库文件确认字段存放的地址信息,根据地址信息从二级缓存或大数据存储介质中读取字段;s23、将字段数据返回给客户端。21.扩展字段是突破普通字段的限制而进行的扩展定义,如varcharuri、texturi、bloburi,普通字段如int、varchar、text、blob等字段,这些字段均有存储上限,超值写入会报错。22.如图1所示,步骤s11中,一级缓存不向外部提供数据及数据检索,只用于存储数据后向二级缓存或大数据存储介质中写入数据;二级缓存用于存储和查询,包括hbase内存数据库、redis内存数据库、memcached内存数据库;大数据存储介质包括磁盘文件、分布式存储系统、云端存储。23.如图1所示,步骤s13,判断写入的字段是否为扩展字段,具体方法,建立需要存入数据库的元数据表,所述元数据表包括字段类型列、对应字段类型列设置的字段内容列;若字段类型为扩展字段时,则添加uri尾缀;判断写入的字段是否为扩展字段即通过确认字段类型是否有uri尾缀。24.如图1所示,步骤s13,大数据存取引擎层开始接收数据的方法是采用流式数据处理方式对扩展字段进行存储。25.如图1所示,步骤s14,通过一级缓存写入二级缓存,具体方法:s1401、将需存入二级缓存的字段数据先写入一级缓存;s1402、将一级缓存和二级缓存的读写操作同时加锁,将一级缓存中的数据全部读出,并一次性写入二级缓存中,对一级缓存和二级缓存的读写操作同时解锁;s1403、清空步骤s1401中写入一级缓存的字段数据。26.如图1所示,步骤s14中,通过一级缓存分多次逐步存入大数据存储介质,具体方法:s1411、将需存入大数据存储介质的字段数据写入到一级缓存中;s1412、由于是分多次逐步存入,因此每次存入大数据存储介质时均需判断一级缓存存入的字段数据是否已经达到m1限定阈值,若达到m1限定阈值,对一级缓存加锁,暂停从客户端向一级缓存中写入数据,同时对一级缓存和大数据存储介质读写操作同时加锁,将一级缓存中的数据全部读出,并全部写入大数据存储介质中,清空一级缓存空间,对一级缓存和大数据存储介质读写操作同时解锁;若未达到m1限定阈值,判断需存入大数据存储介质的字段数据是否已经全部读完,如果未读完,继续读取字段数据,并将字段数据写入到一级缓存中,再次判断一级缓存存入的字段数据是否已经达到m1限定阈值;如果读完,对一级缓存和大数据存储介质读写操作同时加锁,将一级缓存中的数据全部读出,并全部写入大数据存储介质中,清空一级缓存空间,对一级缓存和大数据存储介质读写操作同时解锁,返回在大数据存储介质中的地址信息。27.如图1所示,一种灵活扩展数据库字段的系统,其特征在于:地址信息包括地址协议、字符集、数据大小、时间戳、md5校验码。28.如图1所示,基于上述一种灵活扩展数据库字段的方法的一种灵活扩展数据库字段的系统,包括用于存储普通字段的磁盘、用于控制数据库扩展字段存储的大数据存取引擎层,所述大数据存取引擎层包括一级缓存、二级缓存、大数据存储介质,所述一级缓存仅用于存储,并将需要存储且数据量小于m2的扩展字段通过一级缓存存入二级缓存中,将需要存储且数据量不小于m2的扩展字段通过一级缓存存入大数据存储介质中,二级缓存、大数据存储介质存储数据并提供检索读取数据功能。29.工作示例:建表语句,对扩展字段进行定义:createtableturi(iindex,avarcharuri,btexturi,cbloburi);分别对普通的字符串字段、文本型大对象字段、二进制型大对象字段做了扩展,加uri标记,后期方便识别扩展字段,这些字段如果是普通的字符对于不同产品来讲是几百、几千、几万个字符,但定义成了扩展型字段后,理论上存取上限只取决于硬盘介质的大小,这种定义方式灵活方便对用户来讲完全透明。30.可以通过showcreatetableturi语句,显示建表信息。31.将字段数据写入数据库时,判断写入的字段是否为扩展字段,即是否有uri标记,如果是扩展字段则大数据存取引擎层开始接收数据,如果不是扩展字段,则将字段直接存入数据库文件后返回客户端;根据扩展字段数据大小确定二级缓存还是大数据存储介质中,即判断写入的数据量是否小于m2,若小于m2,则通过一级缓存写入二级缓存中,并返回二级缓存中字段存储地址信息,若不小于m2,则通过一级缓存分多次逐步存入大数据存储介质中,并返回字段存入大数据存储介质的地址信息;将地址信息存入数据库文件后,字段写入成功,返回客户端;地址信息可以根据用户定义任意定义格式,包括地址协议、字符集、数据大小、时间戳、md5校验码等;数据查询语句:selecta,b,cfromturi;查询语句方法与普通语句查询相同,从数据库文件中读取时,普通字段从数据库文件中读取,扩展字段从数据库文件中读取地址信息,再通过地址信息从二级缓存或大数据存储介质中,调取字段数据,实现了对普通数据大小限制的字段的有效扩展,使普通数据字段也具有了无限扩展的可能;同时使客户能够无感进行数据操作。32.通过二级缓存的筛选,将小于二级缓存的数据数据,即较小的扩展字段数据存入二级缓存中,较大的扩展字段数据存入大数据存储介质中,在后续对字段数据进行检索的时候,较小的扩展字段数据无需进大数据存储介质中进行检索,提高检索效率。33.考虑到写入二级缓存或者大数据存储介质时需要对其加锁,设置一级缓存,一级缓存不向外部提供数据,只用于存够一批后向二级缓存或者大数据存储介质一次性写入数据;通过一级缓存向二级缓存或大数据存储介质中存储拓展字段数据,增加一次性写入的数据量,不会中途因为外界检索读取二级缓存或大数据存储介质中内容是被暂停打断,以优化提升性能。34.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1