一种用于分布异构数据资源整合的云数据库系统的制作方法

文档序号:6518048阅读:292来源:国知局
一种用于分布异构数据资源整合的云数据库系统的制作方法
【专利摘要】本发明涉及计算机应用【技术领域】,尤其是一种用于分布异构数据资源整合的云数据库系统。本发明系统由元数据服务节点、服务节点、前置机节点、以及生产机节点构成,元数据服务节点提供系统服务,实现对整个云数据库系统全局的管理;服务节点主要提供数据服务;前置机节点上的各种异构分布的数据库或者文件系统作为云数据库系统的数据源,通过云数据库系统提供的接入机制将这些数据源接入到云数据库系统的内部;生产系统实时的将数据写入到生产机节点上的数据库系统中,然后由云数据库系统的数据同步模块将数据周期性的复制到前置机上。本发明解决了分布异构信息资源的整合,可以应用于分布式异构数据库中。
【专利说明】一种用于分布异构数据资源整合的云数据库系统
【技术领域】
[0001]本发明涉及计算机应用【技术领域】,尤其是一种用于分布异构数据资源整合的云数据库系统。
【背景技术】
[0002]公共信息资源包括政务部门依法采集的信息资源、政务部门在履行职能过程中产生的信息资源、政务部门投资建设的信息资源、政务部门依法授权管理的信息资源。从公共信息资源的这些内容特点上来看,目前采集、加工、存储、管理、使用公共信息资源的主体是各级政务部门,例如工商、税务、规划、国土、房产、交通等。因此,在物理上,公共信息资源是分散存储在各部门的相关信息资源的统称。
[0003]一方面,海量信息资源无序而杂乱地分布在政务资源网络中,缺乏统一的管理;另一方面,资源拥有部门之间缺乏有效的共享机制与协同技术,导致信息需求者难以发现既存资源。事实证明,部门化、分散化的资源服务组织模式已不能满足社会信息化对信息服务业的发展要求。
[0004]公共信息资源共享和开发利用过程中存在着两个方面的信息不对称,严重影响到信息资源共享平台的建设。第一,使用者对各部门拥有什么样的信息资源包括信息资源的数量、质量、内容、分布情况不了解,妨碍了对信息的获取;第二,拥有数据的部门对使用者的需求不了解,信息资源开发不足、服务手段陈旧。尤其是基于互联网的信息资源共享和服务模式的应用更是一个薄弱环节,资源拥有部门之间缺乏有效的共享机制与协同技术,难以直接将信息资源发送到使用者。同时,各政府部门的公共信息资源缺乏完善统一的采集标准,各部门自行建立的数据库不规范,数据类型、格式与存储方式差异严重,这样就导致部门间信息资源不一致、不完整。
[0005]此外,公共信息资源多方采集、重复采集现象普遍,各部门数据不能同步更新,造成部门间信息资源不一致。这些标准各异的政务信息数据库加大了信息资源共享平台建设的难度。
[0006]造成这种技术问题的根本原因在于缺少一套统一的分布异构信息资源的整合技术。

【发明内容】

[0007]本发明解决的技术问题在于提供一种云数据库系统,通过虚拟表以及虚拟数据库对底层分布异构的信息资源实现虚拟化,并抽象出统一的数据访问接口,形成统一的数据标准,打通了各个部门之间的信息孤岛。
[0008]本发明解决上述技术问题的技术方案是:
[0009]所述系统由元数据服务节点、服务节点、前置机节点、以及生产机节点构成,
[0010]所述的元数据服务节点提供系统服务,实现对整个云数据库系统全局的管理,包括租户管理服务、系统监控服务、数据目录服务、系统日志服务、系统管理界面;[0011]所述的服务节点主要提供数据服务,支持读取虚拟表中的数据,修改、删除虚拟表中的数据、以及往虚拟表中写入数据;
[0012]所述的前置机节点上的各种异构分布的数据库或者文件系统作为云数据库系统的数据源,通过云数据库系统提供的接入机制将这些数据源接入到云数据库系统的内部;
[0013]所述的生产机节点上面也部署了多种异构分布的数据库、或者文件系统;数据来自生产系统;生产系统实时的将数据写入到生产机节点上的数据库系统中,然后由云数据库系统的数据同步模块将数据周期性的复制到前置机上。
[0014]所述的元数据服务节点的
[0015]租户管理服务主要提供对云数据库系统中虚拟数据库管理员的管理服务,包括虚拟数据库管理员的注册、审批、登录;用户通过云数据库系统的注册功能成为云数据库系统的虚拟数据库管理员后可以自主的创建虚拟数据库;
[0016]系统监控服务负责对云数据库系统中所有的数据节点进行监控,主要包括:
[0017]A、实时收集每个数据节点的性能参数,包括节点当前的CPU利用率、内存总量、内存的剩余量、磁盘的总容量、磁盘的剩余空间;
[0018]B、支持将性能参数以波形图或者饼图的方式在界面上直观的显示出来;
[0019]C、将收集到的性能参数写入数据库,支持以指定时间段的方式对节点的历史性能参数进行查询;
[0020]数据目录服务支持以树形目录的形式列出云数据库系统中所有的虚拟数据库管理员、虚拟数据库、以及每个虚拟数据库中的虚拟表、共享的虚拟表、用户、角色;
[0021]系统日志服务的主要是详细的记录用户在云数据库系统中执行的各种操作,并支持对这些日志的查询;一条日志信息包括用户类型、所属角色、IP地址、操作时间、操作记录、所使用的浏览器版本,浏览器名称;
[0022]系统管理界面提供了一个可视化的操作界面,通过该界面,用户可以执行:
[0023]A、数据库的日常管理操作,如租户的管理、虚拟数据库的管理、虚拟表的管理、用户的管理、角色的管理等;
[0024]B、数据的访问操作,读取虚拟表(视图)中的数据,修改、删除虚拟表中的数据、以及往虚拟表中写入数据。
[0025]系统中允许存在多个服务节点,每个节点地位相同,提供相同的服务;节点的规模允许随系统负载变化按需弹性伸缩;当系统负载规模增加时,可以动态地往系统中增加新的数据节点,系统会将数据请求自动分流到新增的数据节点上,整个过程中云数据库系统正常提供服务,不需要重启系统;
[0026]一个数据节点可以为一个或者多个虚拟数据库提供数据服务,即:
[0027]A、针对一个虚拟数据库中的所有的虚拟表的访问请求必定会路由到同一个服务节点去执行完成;
[0028]B、针对多个虚拟数据库中的虚拟表的访问请求可能也会路由到同一个服务节点去执行完成。
[0029]系统采用“中心管理,对等处理”的架构;所有的元数据都存储在元数据服务节点的元数据库中,整个系统逻辑上由一个元数据服务节点来进行统一管理和调度;服务节点提供数据的访问操作,包括对数据的读取、查询、修改、删除四类操作。每个服务节点都是对等的,数据请求发送到任何一个节点上都是可以执行的。
[0030]所述的服务节点以两种方式提供数据服务,一种是REST的形式,一种是本地API的形式;两种类型的数据服务功能相同,但是基于的通讯协议不同;其中,REST服务接口是基于HTTP协议来实现的,而本地API是基于Web Server协议来完成。
[0031]本发明的云数据库系统能够接入物理位置上分布的多种异构数据源,包括异构数据库系统以及文件系统,实现数据资源的整合,提供统一的数据视图,屏蔽底层数据访问的物理细节。异构数据库系统包括MySQL、Oracle、DB2、SQL Server,文件系统包括Excel文件和KV文件两类文件。多个用户通过虚拟数据库共同使用同一个物理数据库,在使用时感觉不到其他用户的存在,就好像在独自使用该物理数据库。用户可以基于一个物理数据库创建虚拟数据库,多个用户可以基于同一个物理数据库创建多个虚拟数据库,从而实现多租户,同时,系统支持在创建虚拟数据库时,可以基于多个物理数据库。此外,本发明系统独立于生产系统,不直接操作生产系统,不会影响到现有生产系统的运行及维护。
【专利附图】

【附图说明】
[0032]下面结合附图对本发明进一步说明:
[0033]图1是本发明云数据库系统逻辑架构图;
[0034]图2是本发明云数据库系统物理架构图;
[0035]图3是本发明云数据库系统服务交互流程图。
【具体实施方式】
[0036]本发明系统中节点区分为四种类型,包括:元数据服务节点、服务节点、前置机节点、生产机节点。
[0037]元数据服务节点
[0038]系统中逻辑上只有一个元数据服务节点,物理部署上可以有多个元数据服务节点,相互作为备份,以提高系统的可用性。元数据服务节点提供系统服务,实现对整个云数据库系统全局的管理,包括租户管理服务、系统监控服务、数据目录服务、系统日志服务、系统管理界面。
[0039]租户管理服务主要提供对云数据库系统中虚拟数据库管理员的管理服务,包括虚拟数据库管理员的注册、审批、登录。这里集中体现了云数据库的多租户的思想,用户通过云数据库系统的注册功能成为云数据库系统的虚拟数据库管理员后可以自主的创建虚拟数据库。为了防止恶意或者不正当的使用云数据库系统,在注册的过程中以及创建虚拟数据库的过程中,需要系统管理员的审批。
[0040]系统监控服务负责对云数据库系统中所有的数据节点进行监控,主要功能包括:
[0041](I)实时收集每个数据节点的性能参数,包括节点当前的CPU利用率、内存总量、内存的剩余量、磁盘的总容量、磁盘的剩余空间;
[0042](2)支持将性能参数以波形图或者饼图的方式在界面上直观的显示出来;
[0043](3)将收集到的性能参数写入数据库,支持以指定时间段的方式对节点的历史性能参数进行查询。
[0044]数据目录服务支持以树形目录的形式列出云数据库系统中所有的虚拟数据库管理员、虚拟数据库、以及每个虚拟数据库中的虚拟表、共享的虚拟表、用户、角色。
[0045]系统日志服务的主要功能是详细的记录用户在云数据库系统中执行的各种操作,并支持对这些日志的查询。一条日志信息包括用户类型(系统管理员或虚拟数据库管理员或普通用户)、所属角色、IP地址、操作时间、操作记录(例如:登录系统、创建虚拟数据库、退出系统等操作)、所使用的浏览器版本,浏览器名称。
[0046]系统管理界面提供了一个可视化的操作界面,通过该界面,用户可以执行:
[0047](I)云数据库的日常管理操作,如租户的管理、虚拟数据库的管理、虚拟表(视图)的管理、用户的管理、角色的管理等;
[0048](2)数据的访问操作,读取虚拟表(视图)中的数据,修改、删除虚拟表中的数据、以及往虚拟表中写入数据。
[0049]服务节点
[0050]系统中允许存在多个服务节点,每个服务节点地位相同,提供相同的服务。服务节点的规模允许随系统负载变化按需弹性伸缩。当系统负载规模增加时,可以动态地往系统中增加新的数据节点,系统会将数据请求自动分流到新增的服务节点上,整个过程中云数据库系统正常提供服务,不需要重启系统。
[0051]服务节点主要提供数据服务,支持读取虚拟表(视图)中的数据,修改、删除虚拟表中的数据、以及往虚拟表中写入数据。一个服务节点可以为一个或者多个虚拟数据库提供数据服务,即:
[0052](I)针对一个虚拟数据库中的所有的虚拟表(视图)的访问请求必定会路由到同一个数据节点去执行完成;
[0053](2)针对多个虚拟数据库中的虚拟表(视图)的访问请求可能也会路由到同一个数据节点去执行完成。
[0054]前置机节点
[0055]前置机的各种异构分布的数据库或者文件系统作为云数据库系统的数据源,通过云数据库系统提供的接入机制将这些数据源接入到云数据库系统的内部。前置机上的数据由数据同步模块周期性的从生产系统中抽取而来,云数据库系统管理员可以指定同步的开始时间以及同步的频率。区分前置机和生产系统的目的是为了避免云数据库系统干扰生产系统的正常运行。
[0056]生产机节点
[0057]和前置机一样,生产机上面也部署了多种异构分布的数据库、或者文件系统。与前置机不同的是,生产机上面的数据来自生产系统,生产系统包括各种应用软件,如企业的OA系统、ERP系统、电子商务系统、文件系统等等。生产系统会实时的将数据写入到生产机节点上的数据库系统中,然后由云数据库系统的数据同步模块将数据周期性的复制到前置机上。
[0058]元数据服务节点上有元数据库,一个名为CloudDB的数据库,里面有若干表,用来存储云数据库系统中的所有元数据。具体来说,CloudDB元数据库中的元信息表包括:虚拟库兀信息表、虚拟表兀信息表、角色表、用户表、同步表、日志表,其主要字段信息如下:
[0059](I)虚拟库元信息表,如虚拟数据库的名称,包含的角色、用户、以及虚拟表的列表;[0060](2)虚拟表元信息表:字段的名称、类型、长度、描述、必要的完整性约束;
[0061](3)角色表:角色名、操作权限、所属的虚拟数据库;
[0062](4)用户表:用户名、密码、所属的角色、所属的数据库;
[0063](5)同步表:同步频率、起始时间、源数据库信息、目的数据库信息、同步状态;
[0064](6)日志表:请求的来源、用户名、操作类型、操作时间。
[0065]元数据服务节点基于CloudDB对系统提供元数据的读写服务,服务节点的查询引擎在执行数据查询的时候会调用元服务节点上的服务获取虚拟表的元数据,然后才能进行解析处理,并将针对虚拟表的数据访问请求转换为针对前置机上分布异构的多种数据源的物理数据访问请求。前置机上的异构数据源,包括MySQL数据库、DB2数据库、Oracle数据库、SQL Server数据库、以及Excel文件和KV文件服务,接收到来自云数据库系统的数据访问请求后,会调用自身的数据库引擎或者文件处理引擎执行请求,并返回数据访问的结果。服务节点会接收前置机返回的结果,并对这些结果进行汇总处理后,将最终的查询结果返回给用户。
[0066]同步模块负责将生产节点上的最新数据以增量的方式,同步到前置机节点上。同步模块是基于数据库提供的现有的数据备份接口,这种实现方式的优点利用了专有的数据库备份文件数据结构以及数据传输协议,能显著提高同步的效率。
[0067]本发明云数据库采用“中心管理,对等处理”的架构。系统所有的元数据都存储在元服务节点的元数据库中,整个系统逻辑上由一个元服务节点来进行统一管理和调度。数据服务节点提供数据的访问操作,包括对数据的增力口、查询、修改、删除四类操作。每个数据服务节点都是对等的,数据请求发送到任何一个节点上都是可以执行的。
[0068]云数据库系统的逻辑架构详细描述了系统内部的功能模块,如图2所示。关于元数据服务节点前面已经介绍的比较详细了,在这里,我们重点介绍服务节点的具体实施过程。
[0069]服务节点以两种方式提供数据服务,一种是REST的形式,一种是本地API的形式。两种类型的数据服务功能相同,但是基于的通讯协议不同。其中,REST服务接口是基于HTTP协议来实现的,而本地API是基于Web Server协议来完成。数据服务是基于接口容器来发布,REST类型的数据服务采用Jetty作为接口容器,而本地API采用Axis作为接口容器。
[0070]分布式处理引擎负责解析数据请求,分析出请求相关的虚拟表,并向元服务节点发送虚拟表元数据的请求。当获得虚拟表的元数据后,构建执行计划树。执行计划树的每个节点代表一个子查询,节点之间的连线表示数据传递的方向。执行计划树构建好后会传递给优化器,优化器会根据系统的优化策略对执行计划树进行尽可能的优化,以提高查询的效率。常用的优化策略包括:
[0071](I)利用缓存:通过数据缓存,以减少对数据源的请求次数;
[0072](2)虚拟索引:通过虚拟表上面的索引,减少不必要的数据请求;
[0073](3)合并关联节点:合并执行计划树中的相关节点,缩短执行路径的深度;
[0074](4)过滤下推:将过滤条件向叶子节点方向下推,以减少网络中传输的数据流;
[0075](5)并行调度:将无关节点并发执行,以增加并行度。
[0076]物理控制器本质上是一个适配器,负责将系统内部特定格式的数据请求转换成针对不同数据源的SQL语句。物理控制器的生命周期包括创建、初始化、执行、销毁四个不同的阶段由物理控制管理器来维护。此外,访问控制、用户日志、以及系统监控的具体实现也是由数据服务节点来完成。
[0077]云数据库系统的交互流程如图3所示。用户与系统的交互有两个途径。
[0078](I)通过云数据库系统提供的系统界面进行交互,如图3中黑色部分所示;
[0079](2)通过客户端接口与云数据库系统交互,如图3中蓝色部分所示。
[0080]两种交互方式基本流程基本相同,但是通过系统界面支持两类功能。用户可以通过云数据库的界面实现系统的日常管理、数据访问。通过客户端接口,用户只能实现数据的访问。不过,以接口的方式访问数据允许用户根据需要带入多种不同的参数,因此,访问的方式更加的灵活。
[0081]用户执行系统日常管理,仅仅需要与元数据服务节点打交道。如果要执行数据访问,第一步是访问元数据服务节点,由元数据服务节点根据负载情况选择接收数据访问请求节点。然后,客户端将数据访问请求定位到指定的数据服务节点上。数据服务节点在执行数据请求的时候,需要访问元数据服务节点上的CloudDB数据库以获得虚拟表的元数据信息。
【权利要求】
1.一种用于整合分布异构数据资源的云数据库系统,其特征在于:所述系统由元数据服务节点、服务节点、前置机节点、以及生产机节点构成, 所述的元数据服务节点提供系统服务,实现对整个云数据库系统全局的管理,包括租户管理服务、系统监控服务、数据目录服务、系统日志服务、系统管理界面; 所述的服务节点主要提供数据服务,支持读取虚拟表中的数据,修改、删除虚拟表中的数据、以及往虚拟表中写入数据; 所述的前置机节点上的各种异构分布的数据库或者文件系统作为云数据库系统的数据源,通过云数据库系统提供的接入机制将这些数据源接入到云数据库系统的内部; 所述的生产机节点上面也部署了多种异构分布的数据库、或者文件系统;数据来自生产系统;生产系统实时的将数据写入到生产机节点上的数据库系统中,然后由云数据库系统的数据同步模块将数据周期性的复制到前置机上。
2.根据权利要求1所述的云数据库系统,其特征在于:所述的元数据服务节点的 租户管理服务主要提供对云数据库系统中虚拟数据库管理员的管理服务,包括虚拟数据库管理员的注册、审批、登录;用户通过云数据库系统的注册功能成为云数据库系统的虚拟数据库管理员后可以自主的创建虚拟数据库; 系统监控服务负责对云数据库系统中所有的数据节点进行监控,主要包括: A、实时收集每个数据节点的性能参数,包括节点当前的CPU利用率、内存总量、内存的剩余量、磁盘的总容量、磁盘的剩余空间; B、支持将性能参数以波形图或者饼图的方式在界面上直观的显示出来; C、将收集到的性能参数写入数据库,支持以指定时间段的方式对节点的历史性能参数进行查询; 数据目录服务支持以树形目录的形式列出云数据库系统中所有的虚拟数据库管理员、虚拟数据库、以及每个虚拟数据库中的虚拟表、共享的虚拟表、用户、角色; 系统日志服务的主要是详细的记录用户在云数据库系统中执行的各种操作,并支持对这些日志的查询;一条日志信息包括用户类型、所属角色、IP地址、操作时间、操作记录、所使用的浏览器版本,浏览器名称; 系统管理界面提供了一个可视化的操作界面,通过该界面,用户可以执行: A、数据库的日常管理操作,如租户的管理、虚拟数据库的管理、虚拟表的管理、用户的管理、角色的管理等; B、数据的访问操作,读取虚拟表(视图)中的数据,修改、删除虚拟表中的数据、以及往虚拟表中写入数据。
3.根据权利要求1所述的云数据库系统,其特征在于:系统中允许存在多个服务节点,每个节点地位相同,提供相同的服务;节点的规模允许随系统负载变化按需弹性伸缩;当系统负载规模增加时,可以动态地往系统中增加新的数据节点,系统会将数据请求自动分流到新增的数据节点上,整个过程中云数据库系统正常提供服务,不需要重启系统; 一个数据节点可以为一个或者多个虚拟数据库提供数据服务,即: A、针对一个虚拟数据库中的所有的虚拟表的访问请求必定会路由到同一个服务节点去执行完成; B、针对多个虚拟数据库中的虚拟表的访问请求可能也会路由到同一个服务节点去执行完成。
4.根据权利要求2所述的云数据库系统,其特征在于:系统中允许存在多个服务节点,每个节点地位相同,提供相同的服务;节点的规模允许随系统负载变化按需弹性伸缩;当系统负载规模增加时,可以动态地往系统中增加新的数据节点,系统会将数据请求自动分流到新增的数据节点上,整个过程中云数据库系统正常提供服务,不需要重启系统; 一个数据节点可以为一个或者多个虚拟数据库提供数据服务,即: A、针对一个虚拟数据库中的所有的虚拟表的访问请求必定会路由到同一个服务节点去执行完成; B、针对多个虚拟数据库中的虚拟表的访问请求可能也会路由到同一个服务节点去执行完成。
5.根据权利要求1至4任一项所述的云数据库系统,其特征在于:系统采用“中心管理,对等处理”的架构;所有的元数据都存储在元数据服务节点的元数据库中,整个系统逻辑上由一个元数据服务节点来进行统一管理和调度;服务节点提供数据的访问操作,包括对数据的读取、查询、修改、删除四类操作。每个服务节点都是对等的,数据请求发送到任何一个节点上都是可以执行的。
6.根据权利要求1至4任一项所述的云数据库系统,其特征在于:所述的服务节点以两种方式提供数据服务,一种是REST的形式,一种是本地API的形式;两种类型的数据服务功能相同,但是基于的通讯协议不同;其中,REST服务接口是基于HTTP协议来实现的,而本地API是基于Web Server协议来完成。
7.根据权利要求5所述的云数据库系统,其特征在于:所述的服务节点以两种方式提供数据服务,一种是REST的形式,一种是本地API的形式;两种类型的数据服务功能相同,但是基于的通讯协议不同;其中,REST服务接口是基于HTTP协议来实现的,而本地API是基于Web Server协议来完成。
【文档编号】G06F17/30GK103605698SQ201310545898
【公开日】2014年2月26日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】谢毅, 刘祥涛, 岳强, 季统凯, 徐志伟 申请人:广东电子工业研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1