一种面向列的数据库管理系统技术方案

技术编号:26504724 阅读:10 留言:0更新日期:2020-11-27 15:32
本发明专利技术实施例公开一种面向列的数据库管理系统,包括:用户界面模块,应用程序接口模块、核心服务模块和数据处理模块;所述核心服务模块包括内存池和工作线程,所述内存池包括M个内存块;其中,M大于等于2;所述数据处理模块用于将数据以列为单位进行组织聚合以及存储,并用于采用全索引的方式进行数据查询;其中,所述数据处理模块采用的数据结构为单列表数据结构。本发明专利技术实施例能够使使用者无须编写复杂的查询语句,并支持非结构数据和结构化数据的存储,关系和非关系数据的存储,任意条件组合查询。

【技术实现步骤摘要】
一种面向列的数据库管理系统
本专利技术涉及数据库
,尤其涉及一种面向列的数据库管理系统。
技术介绍
目前大数据系统的数据存储管理解决方案包括传统关系数据库RDBMS和非关系数据库NoSQL两类。由于网络的海量数据没有固定的结构,并且相互间存在复杂多样的关系,数据工程师往往需要同时使用多种关系数据库和NoSQL数据库来完成自己的数据处理需求。这种多类型混合使用方式,使得程序逻辑复杂,流程繁琐,执行缓慢,出错率高,扩展性弱,易用性差,移植困难,特别是给大数据统计分析和数据挖掘带来额外的不便。传统关系数据库的瓶颈主要表现在:数据类型单一,高并发读写的性能低,支撑容量有限,数据库的可扩展性和可用性低,建设和运维成本高等等。非关系数据库NoSQL极大地提高数据库的存取效率,但是却带来了更加严重的问题:数据库基本不具备通用性,移植能力差,数据迁移困难;弱化数据关系,导致数据统计挖掘分析困难;数据的格式需要用户自定义,把数据格式的管理交给上层应用负责,增加了开发软件的系统复杂性。
技术实现思路
为了解决现有技术的缺陷,本专利技术实施例提供一种面向列地数据管理系统,能够使用者无须编写复杂的查询语句,只需要给出查询条件字段和要查询的结果字段即可,并支持非结构数据和结构化数据的存储,关系和非关系数据的存储,任意条件组合查询。本专利技术实施例提供一种面向列的数据库管理系统,其特征在于,包括:用户界面模块,应用程序接口模块、核心服务模块和数据处理模块;所述核心服务模块包括内存池和工作线程,所述内存池包括M个内存块;其中,M大于等于2;所述数据处理模块用于将数据以列为单位进行组织聚合以及存储,并用于采用全索引的方式进行数据查询;其中,所述数据处理模块采用的数据结构为单列表数据结构。进一步地,所述的面向列的数据库管理系统,还包括分布式模块,用于采用MapReduce进行分布式扩展,以适应大规模和超大规模数据集群的存储和运算需求。进一步地,所述数据处理模块包括:列拆分单元、数据查询单元;所述列拆分单元用于以列为单位拆分接收到的数据表,并为拆分得到的每一单列表的每一行记录赋予一个全局ID;其中,属于所述数据表同一记录的,则赋予相同的全局ID;所述数据查询单元,用于在接收到数据查询请求时,根据查找条件在与所述单列表一一对应的索引里查找符合所述查找条件的全局ID,并提取所述全局ID对应的数据。进一步地,所述数据查询单元还用于,当所述查找条件为两个或两个以上时,对根据每一查找条件查找得到的全局ID求交集,获得符合所述查找条件的全局ID集合,并提取所述全局ID集合中每一个全局ID对应的数据。进一步地,所述的数据库管理系统,还包括:字段检测单元,用于当检测到单列表中的字段为空时,删除所述字段所在的记录。进一步地,所述数据处理模块还包括:列集建立单元所述列集建立单元,用于通过将数据表中每一行记录的所有字段分别作为列集中每一元组中的一组数值,并将赋予每一行所述记录的全局ID分别作为列集中的每一元组的键值构建列集。进一步地,当导入NoSQL数据库的非结构化数据时,将Key-Value键值对中的Key作全局ID,Value作为数据构建一个单列表。进一步地,所述列集数据的存储结构、所述索引数据的的存储结构、以及所述单列表数据的存储结构均为B+树的结构。相比于现有技术,本专利技术实施例的有益效果在于,本专利技术实施例提供一种面向列的数据库管理系统,包括:用户界面模块,应用程序接口模块、核心服务模块和数据处理模块;所述核心服务模块包括内存池和工作线程,所述内存池包括M个内存块;其中,M大于等于2;所述数据处理模块用于将数据以列为单位进行组织聚合以及存储,并用于采用全索引的方式进行数据查询;其中,所述数据处理模块采用的数据结构为单列表数据结构。本专利技术实施例能够使使用者无须编写复杂的查询语句,并支持非结构数据和结构化数据的存储,关系和非关系数据的存储,任意条件组合查询。附图说明图1为本专利技术实施例提供的面向列的数据库管理系统的结构图;图2是核心服务模块的体系架构示意图;图3是本专利技术其中一种实施例提供的面向列的数据库管理系统的结构图.图4是本专利技术其中一种实施例的拆分后的单列表。图5是本专利技术其中一种实施例的全索引。图6是本专利技术其中一种实施例提的查询流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术实施例提供一种面向列的数据库管理系统,包括:用户界面模块1,应用程序接口模块2、核心服务模块3和数据处理模块4。本专利技术实施例提供的核心服务模块3包括内存池和工作线程,所述内存池包括M个内存块;其中,M大于等于2。在本专利技术实施例中,核心服务(KernalService)是本专利技术实施例提供的面向列的数据库管理系统整个体系架构的心脏部分,其用于完成数据操作的关键演算并统和其他功能模块,相当于关系数据库中的存储引擎,也可将核心服务视为存储引擎,本专利技术实施例的核心服务(存储引擎)主要参考了MySQL和HBase等现有数据库的架构的优秀特性,例如即时插入、两次写(doublewrite)、自适应哈希索引(adaptivehashindex),这些特性为本专利技术实施例提供的面向列的数据库管理系统带来了更好的性能和更高的可靠性。图2简单显示了本专利技术面向列的数据库管理系统的核心服务的体系架构。在核心服务中,由至少包括两个内存块,这些内存块组成一个大的内存池(MemoryPool),负责所有进程/线程需要访问的内部数据结构,同时缓存磁盘上的数据,方便快速地读取,并且在对磁盘文件的数据进行修改之前在这里缓存。WorkerThread是一些后台的工作线程,主要作用是负责刷新内存池中的数据,缓冲池中的内存缓存是最近的数据。此外,WorkerThread还用于将已修改的数据文件刷新到磁盘文件,同时保证在数据库发生异常情况下本专利技术实施例提供的面向列的数据管理系统能恢复到正常运行状态。本专利技术实施例提供的数据处理模块4用于将数据以列为单位进行组织聚合以及存储,并用于采用全索引的方式进行数据查询。本专利技术实施例提供的数据处理模块也可称为数据处理系统(DataLibrarySystem)是本专利技术实施例提供的面向列的数据库管理系统的精髓和灵魂。数据处理系统主要核技术心包括,单列表数据结构、全索引查询技术和列集三个部分。为了实现提升数据查询效率,本专利技术实施例数据处理系统采用的数据结构为单列表数据结构,即数据库中的数据均是以列为单位进行组织聚合以及存储。相比于现有数据库,单列表数据结构使得不需要建表,只需要建属性字段,并本文档来自技高网...

【技术保护点】
1.一种面向列的数据库管理系统,其特征在于,包括:/n用户界面模块,应用程序接口模块、核心服务模块和数据处理模块;/n所述核心服务模块包括内存池和工作线程,所述内存池包括M个内存块;其中,M大于等于2;/n所述数据处理模块用于将数据以列为单位进行组织聚合以及存储,并用于采用全索引的方式进行数据查询;其中,所述数据处理模块采用的数据结构为单列表数据结构。/n

【技术特征摘要】
1.一种面向列的数据库管理系统,其特征在于,包括:
用户界面模块,应用程序接口模块、核心服务模块和数据处理模块;
所述核心服务模块包括内存池和工作线程,所述内存池包括M个内存块;其中,M大于等于2;
所述数据处理模块用于将数据以列为单位进行组织聚合以及存储,并用于采用全索引的方式进行数据查询;其中,所述数据处理模块采用的数据结构为单列表数据结构。


2.根据权利要求1所述的面向列的数据库管理系统,其特征在于,还包括分布式模块,用于采用MapReduce进行分布式扩展,以适应大规模和超大规模数据集群的存储和运算需求。


3.根据权利要求1或2所述的面向列的数据库管理系统,其特征在于,所述数据处理模块包括:列拆分单元、数据查询单元;所述列拆分单元用于以列为单位拆分接收到的数据表,并为拆分得到的每一单列表的每一行记录赋予一个全局ID;其中,属于所述数据表同一记录的,则赋予相同的全局ID;
所述数据查询单元,用于在接收到数据查询请求时,根据查找条件在与所述单列表一一对应的索引里查找符合所述查找条件的全局ID,并提取所述全局ID对应的数据。


4.根据权利要求3所述...

【专利技术属性】
技术研发人员:罗晶罗佳
申请(专利权)人:广州未名中智教育科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1