论文部分内容阅读
摘 要:随着信息技术的全面发展,二叉树算法在各个领域的应用越来越广泛,需要运用二叉树算法技术对数据进行数据库模型构建,提升数据信息的存取能力,通过对二叉树算法技术的应用研究,可以提升金融行业数据控制层能力。具体实施过程中采取开源框架无疑是一条捷径。但是,借鉴和使用开源框架需要结合各自的实际需求,通过分析Dataline节点的特点。把数据控制模型作为Dataline节点的研究基础,把数据控制模型的部分特点运用到实际项目中,建立数据控制模型完全支持的关系数据模型,提升数据信息挖掘能力。
关键词:二叉树算法;数据控制层;数据库模型构建
中图分类号:TP301.6
Dataline节点提供的是一个比较简单的数据库HBase,该数据库是以数据控制模型作为基础的HBase[1],其无论在设计思想方面还是选取的数据模型在很大程度上与Google开发的数据库BigTable非常的类似。然而HBase对完全的关系数据模型并不支持,仅仅给用户提供了比较简单的数据模型,让他们动态控制数据的分布和格式。HBase是稀疏能够存在硬盘上,具有多维度和排序的映射表[2]。该表将行关键字和列关键字以及时间戳作为索引。任何一个值都是不解释的一个字符数组,用户需要对数据库模型构建的字串的类型与内涵进行解释。从这个角度来看,该模型的灵活性是非常强的,依靠数据表示的仔细选择,用户能够有效的对数据局部化进行控制。当然任何事情都具有两面性,该模型具有灵活性,但是同时也就不支持完全的关系数据模型,这就使得传统的数据数据库模型构建格式和HBase不能有效的协调起来。Google的GFS具有自身的特殊性,其是专门为网页搜索而构建的,BigTable的简单数据模型能够把符串形式灵活数据库模型构建网页的URL,时间戳等信息[3]。为了提高有效性,在设计数据控制模型的时候,充分考虑和吸取了GFS的思想,所以当前版本的数据控制模型能够很好的去支持网页搜索。然而数据控制模型使用的是传统的关系数据模型,支持网页搜索的这个优点并没有发挥太大的优势,其没有提供传统的关系数据库的相关功能。
1 分布式数据(NODE 控制)的整体架构设计
在对数据控制层应用需求进行分析,还有充分考虑到当前流行的解决方案存在不足的基础之上,在这里专门设计了崭新的一个架构Distributed Data Farm(NODE控制)。NODE控制有一个非常大的优势,那就是与实际需要进行挂钩,同时还参考和借鉴了MapReduce以及数据控制模型上面的一些优势还有设计思想。
1.1 NODE 控制的总体架构
NODE 控制系统提供的是一个分布式和可伸缩的数据功能。但是NODE 控制和分布式数据库有着非常大的不同,NODE 控制在系统底层使用的是关系数据库保存数据。NODE控制系统有很多个数据窗口,同时也包括了很多个冗余服务器。在这里冗余服务器和数据窗口能够保持数据同步,这样就可以实现fail-over的功能。典型的数据窗口是由一个调度节点池还有多个数据节点池构成的。
数据窗口(Farm)来源于网页搜索领域,泛指一个搜索的范围。NODE 控制中引入了这个概念,但是它的概念和网页搜索中的数据窗口不尽相同[4]。
数据窗口(Farm)是构成NODE控制系统最为基本的单位。一般来说,NODE控制系统可以由一个或几个数据窗口构成。这些数据窗口是互相独立的,数据窗口之间能够相互进行通信。数据窗口(Farm)在一般情况下只是对其自身范围内的数据操作进行负责。数据窗口往往是通过其自然属性来进行划分的,例如可以根据国家和地区还有客户的组织等划分。数据窗口(Farm)包括了多个由调度节点构成的节点池,调度节点负责节点池,同时还构建数据数据库模型。在对调度节点池进行设计的时候充分考虑了负载均衡(Load Balance),一个数据窗口一般包括了一个调度节点还有多个数据节点池[5]。
1.2 NODE控制的数据结构
在描述了NODE控制的总体架构之后,我们有必要介绍一下NODE控制的数据结构。这一数据结构的定义是从某公司新产品的实际需要出发而制定的,采用了传统的面向对象思想,将一个数据实体视为一个对象(object)。这个数据实体具备基本的结构和属性,可以视作整个系统中的所有对象的基类,从而可以在它的基础上派生出各种不同用途的对象。这个数据实体应具有如下特点:
*Object本身具有类似XML格式的树形结构。与XML不同的是,Object本身并没有强制的序列顺序要求。
*每个Object都有一个26位的全局标识(UID)。这个26位的全局标识是这个Object整个生命周期中的全局唯一标识符。
*Object是可分解的。出于安全和访问目的的考虑,只允许大多数用户使用Object的一个子结构,而不是整个对象。
如前所述,某公司新产品所面对的数据具有海量,异构的特点,具体说来,包括以下几种对象:
*用户对象。这类数据是最常见的也可能是数量最多的。如前所述,新产品定位是一个平台(platform),这个平台允许用户定制应用,因此就必须允许用户创建并保存对象。NODE控制要求用户对象必须具有完整的XML格式,但是对用户对象的复杂度和数量没有限制。
*聊天条目。按照最初的设想,这些条目用于保存聊天主题之类的数据。具体实现有待将来完成。
*标签和标记对象的引用计数。这部分可以归于公用数据的一部分。
*反向索引(Inverted Index)。所有的Object都是有索引的,这样使得所有的Object都是可查询的。
*对象数据(Object Data)。这部分数据泛指所有的Object,包括平台本身预先提供的和用户定义的Object。 *查询数据(Search Data)。这部分数据特指和查询相关的数据,可分为两部分:即反向索引(Inverted Index)和其他数据(Others)。反向索引主要用于优化查询的速度;其他数据主要用于查询辅助,包括被标记为全文索引的对象,标签等。
2 NODE 控制的数据划分策略
由于当前存在非常多的异构的用户数据,因此对数据进行划分是非常有必要的,这样才能得到更好的查询性能。
数据划分策略包括了垂直数据划分(Horizontal partition)还有水平数据划分(Vertical partition)(Tim Chapman,2006)。NODE控制对这两种划分策略都应用到了。其中垂直数据划分主要依据的是功能:
*首先应该将对象、查询还有其他数据归类到不同的数据表里面。
*在这里由于对象数据根据对象类型(object type)来进行访问的,因此可以根据对象类型进一步进行垂直划分,将类型不同的对象数据归结到相对应的数据表里面。
*查询数据也根据对象类型对其进行垂直划分,数据库模型构建到相应的数据表中。
采用对象的全局标识(UID)的哈希值(hash)是水平划分的,这样就把对象数据划分到不同的数据节点(Data Node),但是这需要考虑到数据迁移的问题。
3 结束语
二叉树算法机需要和信息控制结合在一起,一个特定的数据节点只含有整个系统的一部分数据,但是它会有多个数据划分。一般的,数据节点基本是不用去过多的考虑数据划分问题的,调度节点不会把其他数据节点包含的数据划分的数据操作指向这个数据节点。这就意味着数据节点对数据位置问题的问题是不关心的,关心数据位置的是调度节点。数据对象的全局标识符已经决定其处于什么位置。对查询来说,默认的情况就是在当前数据窗口(Farm)中进行查询,同时调度节点必须要能够完成对其他数据窗口进行的查询,原理上与当前数据窗口进行的查询基本是相同的。
参考文献:
[1]刘文.二叉树算法商业模式有待成熟[J].硅谷,2011(13).
[2]许翠苹.IDC:二叉树算法将在中国走向主流[J].通讯世界,2011(06).
[3]范庆彬,王为.二叉树算法在电信运营商中的应用[J].信息通信,2011(03).
[4]陈飞.二叉树算法下的数字资源共建共享[J].河北科技图苑,2011(02).
[5]周红伟,李琦.基于二叉树算法的空间信息服务系统研究[J].计算机应用研究,2011(07).
作者单位:四川大学计算机学院2011级计算机科学与技术系,成都 610207
关键词:二叉树算法;数据控制层;数据库模型构建
中图分类号:TP301.6
Dataline节点提供的是一个比较简单的数据库HBase,该数据库是以数据控制模型作为基础的HBase[1],其无论在设计思想方面还是选取的数据模型在很大程度上与Google开发的数据库BigTable非常的类似。然而HBase对完全的关系数据模型并不支持,仅仅给用户提供了比较简单的数据模型,让他们动态控制数据的分布和格式。HBase是稀疏能够存在硬盘上,具有多维度和排序的映射表[2]。该表将行关键字和列关键字以及时间戳作为索引。任何一个值都是不解释的一个字符数组,用户需要对数据库模型构建的字串的类型与内涵进行解释。从这个角度来看,该模型的灵活性是非常强的,依靠数据表示的仔细选择,用户能够有效的对数据局部化进行控制。当然任何事情都具有两面性,该模型具有灵活性,但是同时也就不支持完全的关系数据模型,这就使得传统的数据数据库模型构建格式和HBase不能有效的协调起来。Google的GFS具有自身的特殊性,其是专门为网页搜索而构建的,BigTable的简单数据模型能够把符串形式灵活数据库模型构建网页的URL,时间戳等信息[3]。为了提高有效性,在设计数据控制模型的时候,充分考虑和吸取了GFS的思想,所以当前版本的数据控制模型能够很好的去支持网页搜索。然而数据控制模型使用的是传统的关系数据模型,支持网页搜索的这个优点并没有发挥太大的优势,其没有提供传统的关系数据库的相关功能。
1 分布式数据(NODE 控制)的整体架构设计
在对数据控制层应用需求进行分析,还有充分考虑到当前流行的解决方案存在不足的基础之上,在这里专门设计了崭新的一个架构Distributed Data Farm(NODE控制)。NODE控制有一个非常大的优势,那就是与实际需要进行挂钩,同时还参考和借鉴了MapReduce以及数据控制模型上面的一些优势还有设计思想。
1.1 NODE 控制的总体架构
NODE 控制系统提供的是一个分布式和可伸缩的数据功能。但是NODE 控制和分布式数据库有着非常大的不同,NODE 控制在系统底层使用的是关系数据库保存数据。NODE控制系统有很多个数据窗口,同时也包括了很多个冗余服务器。在这里冗余服务器和数据窗口能够保持数据同步,这样就可以实现fail-over的功能。典型的数据窗口是由一个调度节点池还有多个数据节点池构成的。
数据窗口(Farm)来源于网页搜索领域,泛指一个搜索的范围。NODE 控制中引入了这个概念,但是它的概念和网页搜索中的数据窗口不尽相同[4]。
数据窗口(Farm)是构成NODE控制系统最为基本的单位。一般来说,NODE控制系统可以由一个或几个数据窗口构成。这些数据窗口是互相独立的,数据窗口之间能够相互进行通信。数据窗口(Farm)在一般情况下只是对其自身范围内的数据操作进行负责。数据窗口往往是通过其自然属性来进行划分的,例如可以根据国家和地区还有客户的组织等划分。数据窗口(Farm)包括了多个由调度节点构成的节点池,调度节点负责节点池,同时还构建数据数据库模型。在对调度节点池进行设计的时候充分考虑了负载均衡(Load Balance),一个数据窗口一般包括了一个调度节点还有多个数据节点池[5]。
1.2 NODE控制的数据结构
在描述了NODE控制的总体架构之后,我们有必要介绍一下NODE控制的数据结构。这一数据结构的定义是从某公司新产品的实际需要出发而制定的,采用了传统的面向对象思想,将一个数据实体视为一个对象(object)。这个数据实体具备基本的结构和属性,可以视作整个系统中的所有对象的基类,从而可以在它的基础上派生出各种不同用途的对象。这个数据实体应具有如下特点:
*Object本身具有类似XML格式的树形结构。与XML不同的是,Object本身并没有强制的序列顺序要求。
*每个Object都有一个26位的全局标识(UID)。这个26位的全局标识是这个Object整个生命周期中的全局唯一标识符。
*Object是可分解的。出于安全和访问目的的考虑,只允许大多数用户使用Object的一个子结构,而不是整个对象。
如前所述,某公司新产品所面对的数据具有海量,异构的特点,具体说来,包括以下几种对象:
*用户对象。这类数据是最常见的也可能是数量最多的。如前所述,新产品定位是一个平台(platform),这个平台允许用户定制应用,因此就必须允许用户创建并保存对象。NODE控制要求用户对象必须具有完整的XML格式,但是对用户对象的复杂度和数量没有限制。
*聊天条目。按照最初的设想,这些条目用于保存聊天主题之类的数据。具体实现有待将来完成。
*标签和标记对象的引用计数。这部分可以归于公用数据的一部分。
*反向索引(Inverted Index)。所有的Object都是有索引的,这样使得所有的Object都是可查询的。
*对象数据(Object Data)。这部分数据泛指所有的Object,包括平台本身预先提供的和用户定义的Object。 *查询数据(Search Data)。这部分数据特指和查询相关的数据,可分为两部分:即反向索引(Inverted Index)和其他数据(Others)。反向索引主要用于优化查询的速度;其他数据主要用于查询辅助,包括被标记为全文索引的对象,标签等。
2 NODE 控制的数据划分策略
由于当前存在非常多的异构的用户数据,因此对数据进行划分是非常有必要的,这样才能得到更好的查询性能。
数据划分策略包括了垂直数据划分(Horizontal partition)还有水平数据划分(Vertical partition)(Tim Chapman,2006)。NODE控制对这两种划分策略都应用到了。其中垂直数据划分主要依据的是功能:
*首先应该将对象、查询还有其他数据归类到不同的数据表里面。
*在这里由于对象数据根据对象类型(object type)来进行访问的,因此可以根据对象类型进一步进行垂直划分,将类型不同的对象数据归结到相对应的数据表里面。
*查询数据也根据对象类型对其进行垂直划分,数据库模型构建到相应的数据表中。
采用对象的全局标识(UID)的哈希值(hash)是水平划分的,这样就把对象数据划分到不同的数据节点(Data Node),但是这需要考虑到数据迁移的问题。
3 结束语
二叉树算法机需要和信息控制结合在一起,一个特定的数据节点只含有整个系统的一部分数据,但是它会有多个数据划分。一般的,数据节点基本是不用去过多的考虑数据划分问题的,调度节点不会把其他数据节点包含的数据划分的数据操作指向这个数据节点。这就意味着数据节点对数据位置问题的问题是不关心的,关心数据位置的是调度节点。数据对象的全局标识符已经决定其处于什么位置。对查询来说,默认的情况就是在当前数据窗口(Farm)中进行查询,同时调度节点必须要能够完成对其他数据窗口进行的查询,原理上与当前数据窗口进行的查询基本是相同的。
参考文献:
[1]刘文.二叉树算法商业模式有待成熟[J].硅谷,2011(13).
[2]许翠苹.IDC:二叉树算法将在中国走向主流[J].通讯世界,2011(06).
[3]范庆彬,王为.二叉树算法在电信运营商中的应用[J].信息通信,2011(03).
[4]陈飞.二叉树算法下的数字资源共建共享[J].河北科技图苑,2011(02).
[5]周红伟,李琦.基于二叉树算法的空间信息服务系统研究[J].计算机应用研究,2011(07).
作者单位:四川大学计算机学院2011级计算机科学与技术系,成都 610207