CN104391992B - 针对资产数据的数据处理系统 - Google Patents
针对资产数据的数据处理系统 Download PDFInfo
- Publication number
- CN104391992B CN104391992B CN201410775769.0A CN201410775769A CN104391992B CN 104391992 B CN104391992 B CN 104391992B CN 201410775769 A CN201410775769 A CN 201410775769A CN 104391992 B CN104391992 B CN 104391992B
- Authority
- CN
- China
- Prior art keywords
- assets
- data
- layer
- attribute
- data storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种针对资产数据的数据处理系统,所述数据处理系统包括逻辑层、缓存层和数据存储层,其中,所述数据存储层用于以分别存储的方式存储配置项、配置项之间的关系以及配置项的属性;所述缓存层用于以缓存的形式存储所述数据存储层中的数据;所述逻辑层包括查询优化模块,用于根据查询条件查询所述缓存层,并根据查询结果确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据。采用本发明提供的数据处理系统,能够提高对资产数据的维护效率和查询效率。
Description
技术领域
本发明涉及数据处理领域,更为具体而言,涉及一种针对资产数据的数据处理系统。
背景技术
IT资产(实体资产和虚拟资产)是自动化运维的基础,目前大多数运维系统随着业务规模不断增长都会因为设计问题导致资产数据难以维护、产生错误数据等问题,从而降低自动化运维的效率,严重时甚至出现线上故障。
目前资产管理多是采用关系型数据库(例如,MySQL、SQL Server、Oracle等),即不同类别的资产数据分表存储在不同表中,资产之间的关系通过表外键来关联。
现有的直接通过关系型数据库(不同类别的资产分表存储于不同表中)的方式会带来如下问题:1.每增加一类资产时需要新建一张表,同时需要增加该类资产的操作、维护、流程及页面;2.为资产添加某类属性时,会给整张表加锁,导致其它请求阻塞甚至超时,效率过低;3.资产间关系不明确,从而导致涉及影响范围之类的问题无法高效给出结论;4.信息分散,不易统计分析;5.直接通过数据库联表,效率低下。
发明内容
为了解决现有技术所存在的缺陷,本发明实施方式提供一种针对资产数据的数据处理系统,能以合理的方式存储资产数据,提高资产数据的查询和维护效率。
本发明实施方式提供了一种针对资产数据的数据处理系统,包括逻辑层、缓存层和数据存储层,其中,
所述数据存储层用于以分别存储的方式存储配置项、配置项之间的关系以及配置项的属性;
所述缓存层用于以缓存的形式存储所述数据存储层中的数据;
所述逻辑层包括查询优化模块,用于根据查询条件查询所述缓存层,并根据查询结果确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据。
可选地,在本发明实施例的一种实现方式中,所述配置项包括资产分类和资产实例,所述资产实例的第一属性值存储在第一表中,所述资产实例的第二属性值存储在表结构不同于所述第一表的第二表中。
可选地,在本发明实施例的另一种实现方式中,所述配置项包括资产分类和资产实例;所述数据存储层包括:用于存储属性信息的第一存储区,用于存储资产分类信息的第二存储区,用于存储资产分类与属性的对应关系的第三存储区,用于存储资产分类之间的关系的第四存储区,用于存储资产实例信息的第五存储区,用于存储资产实例的属性值的第六存储区;用于存储资产实例之间的关系的第七存储区,其中,在第六存储区中,以横表的形式存储所述资产实例的第一属性值,以纵表的形式存储所述资产实例的第二属性值。
可选地,在本发明实施例的再一种实现方式中,所述配置项包括资产分类和资产实例;在所述缓存层中,以第一数据结构缓存资产分类信息、属性信息以及资产分类与属性的对应关系,以第二数据结构缓存所有资产实例的属性值,以第三数据结构缓存资产分类之间的关系、资产实例之间的关系、热点属性信息和索引信息。
可选地,在本发明实施例的又一种实现方式中,所述缓存层还用于采用MemcacheQ对所述底层数据存储区进行数据库操作。
可选地,在本发明实施例的更一种实现方式中,所述查询优化模块具体用于:根据查询条件中的属性查询所述缓存层中的索引信息以确定查询条件中的属性是否为热点属性;如果不是热点属性,则从所述数据存储层中查询目标信息;如果是热点属性,则从所述缓存层中查询目标信息。其中,优选地,在根据关系型查询条件从所述缓存层中查询目标信息时,根据关联资产实例的量进行判断,如果关联资产实例的量超过阈值,则从所述数据存储层中查询目标信息;如果未超过阈值,则从所述缓存层中查询目标信息。
可选地,在本方面实施例的其它实现方式中,一方面,所述逻辑层还包括事务支持模块,所述事务支持模块用于识别事务类请求;所述缓存层还通过REDIS(一种键值(Key-Value)数据库)的multi/exec实现所述缓存层的事务特性。另一方面,所述系统可包括:数据抓取层,用于抓取线上资产数据;一致性校验和同步模块,用于根据抓取的资产数据对所述数据存储层中的数据和所述缓存层中的数据进行一致性校验,以及用于将抓取到的资产数据中同步到所述数据存储层和所述缓存层中。再一方面,所述系统可包括对外接口,用于接收用户的操作请求以对所述数据存储层中的数据进行查询或维护等处理。
采用本发明的各种实施例具有以下有益效果:
1)通过将资产实例的属性值存储于不同表结构的表中,例如,将经常用作查询条件的属性所对应的属性值存储于横表,将描述信息存储于纵表,能够达到以下有益效果:一方面,相对于采用纵表存储所有属性值而言,能够降低数据量以及查询结果返回后的结果集拼装难度,提高维护效率;另一方面,相对于采用横表存储所有属性值而言,能够降低数据查询过程中需要遍历的数据量,有效提高查询效率。
2)通过将配置项、配置项之间的关系以及配置项的属性分别存储,能够灵活地对各部分数据进行增、删、改、查等处理,提高了数据维护的便利性。
3)在查询过程中,根据查询优化模块查询缓存层的查询结果确定适合的后续查询逻辑,能够充分利用缓冲层和数据存储层具有不同数据结构的特点提高查询效率。
附图说明
图1是根据本发明实施例的一种针对资产数据的数据处理系统的方块示意图;
图2是根据本发明实施例的一种实现方式的数据存储层的方块示意图;
图3是根据本发明实施例的一种实现方式的查询优化方法的流程示意图;
图4是根据本发明实施例的一种针对资产数据的数据处理系统的方块示意图。
具体实施方式
以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,众所周知的模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施方式中以任何方式组合。本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。还可以容易理解,本文所述和附图所示的各实施方式中的模块或单元或步骤可以按各种不同配置进行组合和设计。
首先,对本发明涉及的术语进行解释:
CMDB(Configuration Management Database):配置管理数据库,用于存储与管理企业IT架构中设备的各种配置信息。本发明各个实施例可以理解为对现有CMDB的改进,也可以理解为基于现有CMDB提出的新的技术方案。
图1是根据本发明实施例的一种针对资产数据的数据处理系统的方块示意图,参照图1,数据处理系统包括数据存储层11、缓存层12和逻辑层13。下面分别进行说明。
数据存储层11用于以分别存储的方式存储配置项(CI)、配置项之间的关系以及配置项的属性。
其中,配置项包括资产分类和资产实例。“资产分类”是指按照分类策略对所有资产进行划分得到的多个类别,例如“服务器”、“VIP”等均指资产中的类别;“资产实例”是指某个资产分类下的具体个体或单位,例如,服务器这一资产分类下可以包括服务器A、服务器B等资产实例。
可选地,在本实施例的一种具体实现方式中,资产实例的第一属性值存储在第一表中,第二属性值存储在表结构不同于所述第一表的第二表中。例如,第一表为横表,其中存储的第一属性值是资产实例的属性中用作或经常用作查询条件的属性所对应的属性值;第二表为纵表,其中存储的第二属性值是资产实例的描述信息,该类信息一般不会用作查询条件,但却是查询结果的一部分。本领域技术人员可以根据需要灵活地确定将哪些属性用作查询条件,本发明对此不做具体限制。
采用如上所述的存储方式,一方面,相对于采用纵表存储所有属性值而言,能够降低数据量以及查询结果返回后的结果集拼装难度,有效提高维护效率;另一方面,相对于采用横表存储所有属性值而言,能够降低数据查询过程中需要遍历的数据量,有效提高查询效率。此外,由于将配置项、配置项之间的关系以及配置项的属性分别存储,从而能够灵活地对各部分数据进行增、删、改、查等处理,提高了数据维护的便利性。
可选地,在本实施例的一种实现方式中,关于数据存储层11的具体说明,请参见下文结合图2进行的说明。
缓存层12用于以缓存的形式存储所述数据存储层中的数据。并且,优选地,缓存层12采用不同的数据结构(例如,集合(set)、串(string)、哈希(hash)数据结构等)缓存所述数据存储层中的数据。
在本实施例中,通过缓存层12缓存数据存储层11中的数据,避免了将所有的查询操作都落在数据存储层11,有效降低了数据存储层11在查询过程中的压力。
可选地,在本实施例的一种具体实现方式中,关于缓存层12的具体说明,请参见下文结合表(一)进行的说明。
逻辑层13包括查询优化模块131,用于根据查询条件查询所述缓存层,并根据查询结果确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据。
在本实施例中,通过查询优化模块131确定查询逻辑,一方面,避免了将所有的查询都落在数据存储层,降低了数据储层的压力;另一方面,对于某些查询(例如,下文提及的热点属性查询),通过查询缓存层能够明显提高查询效率。
可选地,在本实施例的一种具体实现方式中,关于查询优化模块131的具体说明,请参见下文结合图3进行的说明。
图2是根据本发明实施例的一种实现方式的数据存储层的方块示意图,参照图2,数据存储层包括第一存储区201至第七存储区304,其中,PK(Primary Key)表示主键,FK(Foreign Key)表示外键。下面对第一存储区201至第七存储区304分别进行说明。
第一存储区201(或者称作属性池表),用于存储属性信息。换言之,在第一存储区201中存储整个数据处理系统中涉及到的所有属性。其中,单个属性可以包括以下信息:属性名称、限制类型(如整型、非定长字符串等)、默认值、是否可以为空等等。
第二存储区203(或者称作CI分类表),用于存储资产分类信息。例如,存储各资产分类的名称等。
第三存储区202(或者称作CI分类与属性关联表),用于定义各资产分类具有哪些属性。其中的“属性信息所在表表名”和“对应字段”用于定位资产分类的部分属性的属性值在数据存储层中的位置(例如,“资产分类1”的“属性2”的属性值存储在“CI实例属性横表”的“字段1”中)。其中的“实例属性id”是指201中所有属性id中属于某资产实例的属性id。
第四存储区204(或者称作CI分类关系表),用于存储资产分类之间的关系,包括:彼此之间存在关系的资产分类的id(例如,关系一方分类id和关系另一方分类id,当然,还可包括关系更多的分类id)以及资产分类之间的关系类型。
其中,资产分类之间可以包括很多种关系类型,例如,1:1(即,一个资产分类下的一个资产实例只能与另一资产分类下的一个资产实例对应)、1:m(即,一个资产分类下的一个资产实例可以与另一资产分类下的多个资产实例对应)、m:1(即,一个资产分类下的多个资产实例可以与另一资产分类下的一个资产实例对应)等类型,但同一类型的关系可以具有不同的含义,如“固定于”、“归属于”等。例如,资产分类A与资产分类B为1:1关系,含义可以是“资产分类A的一个实例A1绑定了资产分类B的一个实例B1”,资产分类C与资产分类D也是1:1的类型,但其含义可以是“资产分类C的一个实例C1存放于资产分类D的一个实例D1上”。资产分类之间的关系是单向的(即,不同资产分类之间的关系在数据库中只存一份),本领域技术人员应当理解,通过对资产分类之间的关系的约束,进而约束了资产实例之间的关系。
在第四存储区204中,“约束方法”是可选地,其用于定义某些可计算功能,例如,在用户插入IP但未提供网段的操作处理中,根据约束方法确定,在指向上述操作处理之前,需要根据IP计算网段信息并校验网段信息是否符合预设要求。
第五存储区303(或者称作CI实例表),用于存储资产实例信息。例如,用于存储各资产实例的唯一标识(例如,id)、资产实例所属的资产分类id等。此外,还可以记录实例状态,例如,当删除某个实例时,采用软删除(即不直接删除,而是变更状态)的方式,以便更好的追踪该实例的历史。
第六存储区301和302,用于存储资产实例的属性值。其中,302(或者称作CI实例属性横表)以横表的形式存储资产实例的常用作查询条件的属性所对应的属性值。在横表中,可以建立索引以存储热点属性。301(或者称作CI实例属性纵表)以纵表的形式存储资产实例的其它信息(例如,一般不用作查询条件的描述信息)。
第七存储区304(或者称作CI实例关系表),用于存储不同资产分类的资产实例之间的关系,例如对于存在关系的两个资产实例,存储关系一方实例id和关系另一方实例id。其中,关系状态与前文所述的实例状态类似,此处不赘述。关系id对应第四存储区204的id,在查询204确定两种资产分类之间的关系之后,根据已知的一方实例id和用于标识上述两种资产分类之间的关系的关系id查询304,可以确定与一方实例存在关系的另一方实例的id。
除了上述存储区之外,如图2所示,数据存储层还可以包括CI分类主键表101和CI快照401。其中,分类主键表101用于定义例如某类资产的唯一性约束等,CI快照401用于存储资产实例的快照信息,例如,存储每一次操作(例如,修改、增加、删除等操作)某资产实例(以资产实例id标识)相关数据的操作时间、所执行的具体操作、变更后的新值等。
为便于理解,同时本领域技术人员也应当理解,201-204可以看作类(抽象定义),301-304则可看作相应的对象(具体数据)。此外,可以采用MySQL建立数据存储层。
以上对根据本发明实施例的一种实现方式的数据存储层进行了说明,接下来对根据本发明实施例的一种实现方式的缓存层进行说明。
缓存层可以采用第一数据结构(例如,hash数据结构)缓存属性、资产分类信息以及资产分类与属性的对应关系;采用第二数据结构(例如,string数据结构)缓存资产实例的属性值;采用第三数据结构(例如,set数据结构)缓存资产分类之间的关系、资产实例之间的关系、热点属性信息和索引信息。
通常来讲,如果缓存层缓存的数据较多,则查询方便但更新工作量较大,如果缓存的数据较少,则降低了更新的工作量,但查询不便,导致很多查询会落到数据存储层,给数据存储层造成很大的压力。根据发明人的研究发现,针对资产数据的数据处理系统都包含如下的几个特点:多数查询都集中在少数几类资产中、多数查询都集中在少数几类查询中(即查询模式相对集中)、大部分查询都是简单精确查询。结合以上特点,在本实施例的一种具体实现方式中,缓存层可以按照表(一)所示的数据存储结构存储相关数据。
表(一)
参照表(一),其中涉及多种数据结构,因此,在本实施例的一种具体实现方式中,缓存区可以是采用REDIS建立的缓存区。
如前文所述,不同资产分类之间的关系在数据库只存储一份(即单向存储),但在缓存层中,如表(一)所示,会存储两份以用于插入和删除约束。例如,当插入VPORT信息时,可以根据缓存的“资产分类关系(插入)”查询出VPORT依赖于VIP而存在,然后检查VIP存在与否,若不存在则不予插入;再例如,当同时插入VIP和VPORT信息时,可利用缓存的“资产分类关系(插入)”计算出VIP和VPORT的插入顺序;再例如,当删除IP时,可根据缓存的“资产分类关系(删除)”确定IP被PORT依赖,此时如果尚存在关联PORT则不予删除或者是级联删除等。
如前文所述,在数据存储层中,资产实例的属性值被打散在横表和纵表中,但如表(一)所示,在缓存层中,结合REDIS高并发的特性,可以将资产实例的属性值组成JSON串缓存下来,以便于直接查询资产实例的所有属性的属性值。
参照表(一),对于热点属性或热点属性的组合,通过在缓存层中建立类似于MySQL中的索引或联合索引,能够提高查询效率。此外,利用集合查询大小复杂度为O(1)的特性将资产实例的关系数据存储成Set类型,有利于查询逻辑的优化。其中,关于热点属性以及查询逻辑的说明将在下文进行说明。
可选地,在其它实现方式中,缓存层还可用于采用队列处理系统MemcacheQ对所述底层数据存储区进行数据库操作。
图3是根据本发明实施例的一种实现方式的查询优化方法的流程示意图,该方法可以由前文所述的查询优化模块执行。参照图3,所述方法包括:
30:判断查询条件中的属性是否为热点属性。具体而言,根据查询条件中的属性查询缓存层中的索引信息以确定查询条件中的属性是否为热点属性。
32:如果不是热点属性,则从数据存储层中查询目标信息。例如,根据在查询索引信息之前将查询信息转化得到的id(例如,资产分类id、资产实例id和属性id),从数据存储层中查询目标信息。
34:如果是热点属性,则从缓存层中查询目标信息。例如,根据在查询索引信息之前将查询信息转化得到的id(例如,资产分类id、资产实例id和属性id),从缓存层中查询目标信息。
其中,优选地,如果所述查询条件是关系型查询条件(例如,查询的是与某资产实例相关的另一资产实例的信息,而不是查询某一资产实例的直接相关的信息),则在处理34中,根据关联资产实例的量进行判断,如果关联资产实例的量超过阈值,则从所述数据存储层中查询目标信息;如果未超过阈值,则从所述缓存层中查询目标信息。
为便于理解,以下结合一种具体查询场景对本实施例中的查询优化模块所采用的查询优化方法进行说明。假设查询信息为查询“主机名为ABC的服务器所在机架位的行列信息”,此时,查询条件为“主机名为ABC的服务器”,查询的目标信息为“机架位的行列信息”,通过缓存层进行查询的过程如下:
①.根据缓存层中存储的“所有资产分类信息”确定“服务器”所属资产分类的分类id和“机架位”所属资产分类的分类id;②.查询缓存层中存储的“属性池信息”确定是否存在“主机名”、“行”、“列”这三种属性名称(若不存在,可以进行模糊搜索或者提示用户输入错误),如果存在,则获取相应的属性id;③.根据服务器的分类id查询缓存层中存储的“资产分类与属性对应关系”,确定服务器的分类id和主机名的属性id对应(如果不对应,可以提示查询条件错误等),即确定服务器这一资产分类下具有主机名这一属性;④.根据服务器的资产分类id查询缓存层中存储的“某资产分类所有索引信息”,根据主机名的属性id是否存在于集合中确定主机名这一属性是否属于热点属性;⑤.如果属于热点属性,则根据服务器的分类id、主机名的属性id、主机名的属性值(即ABC)查找缓存层中存储的“热点属性/联合索引”,从而获取与上述三个条件相关联的服务器的实例id;⑥.根据获取的服务器的实例id和机架位的资产分类id查询缓存层中存储的“资产实例关系数据”,获取与主机名为ABC的服务器相关联的机架位的实例id;⑦.根据获取的机架位的实例id、行属性id和列属性id查询缓存层中存储的“某资产实例所有属性信息”,从而获取到欲查询的“机架位的行列信息”。
可选地,在上述查询流程中,在处理③中,可以根据属性id查询获取到主机名所在表的表名(做查询条件的字段必然是在横表,例如横表TA1中)及对应字段(例如F1),从而确定待连接(JOIN)的表及字段,同样地,可以根据机架位的行属性id和列属性id查询获取到待连接的表(可能在横表TA1或纵表TA2中)及字段。之后,在处理④中,如果发现主机名这一属性不属于热点属性,则从数据存储层获取相关信息,流程如下:a)根据①中查询到的服务器的分类id和机架位的分类id,查询第四存储区204(第四存储区204中按照一定的规则存储资产分类之间的关系,例如,分类id小的为一方,大的为另一方,此处假设服务器分类id较小)获取两个资产分类的关系,从而获取到关系id如RID1;b)将第七存储区标识304为TR,如果查询的目标属性均在横表当中,此时仅需查询机架位的横表信息,假设行属性和列属性分别对应TA1的F1和F2,则采用如下第一方式获取机架位的行属性值和列属性值:
SELECT TA1B.F1,TA1B.F2
FROM TA1AS TA1A JOIN TR
ON TA1A.实例id=TR.关系一方实例id
JOIN TA1AS TA1B
ON TR.关系另一方实例id=TA1B.id
WHERE TA1A.F1=‘ABC’AND TR.关系id=RID1;
在另一种情况下,如果查询的目的属性在纵表当中,则采用如下第二方式获取机架位的行属性值和列属性值:
SELECT TA2.实例属性值,TA2.实例属性id,TA2实例id
FROM TA1JOIN TR
ON TA1.实例id=TR.关系一方实例id
JOIN TA2
ON TR.关系另一方实例id=TA2.id
WHERE TA1.F1=‘ABC’AND TR.关系id=RID1;
在这种情况下需要遍历结果做组装,以实例id为主键将其它属性值组合到一起。例如,假设服务器与机架位是1对多关系(实际情况一般是1对1关系,此处仅作为举例对本实现方式的思想进行解释),采用上述第二方式会分别得到机架位1的行属性值、机架位1的列属性值、机架位2的行属性值、机架位2的列属性值,之后通过拼接得到机架位1的行属性值和列属性值以及机架位2的行属性值和列属性值。
可选地,在前述流程的处理⑥中,如果发现与主机名为ABC的服务器相关联的机架位的实例的量超过阈值(通过采用set数据结构以便于在O(1)时间c内查询到关联的机架位的实例的量),则执行处理⑦;否则,从数据存储层获取相关信息,流程如上述处理a和处理b,此处不赘述。
图4是根据本发明实施例的一种针对资产数据的数据处理系统的方块示意图,如图4所示,数据处理系统包括对外接口(或称作应用接口)、逻辑层、缓存层、数据存储层、数据抓取层、一致性校验模块和同步模块。其中,逻辑层、缓存层、数据存储层可以相应地具有前文所述的特征,此处不赘述。
在本实施例中,数据抓取层用于抓取线上资产数据;一致性校验和同步模块,用于根据抓取的资产数据对所述数据存储层中的数据和所述缓存层中的数据进行一致性校验,以及用于将抓取到的资产数据同步到所述数据存储层和所述缓存层中。通过一致性校验和同步模块能够保证数据存储层和缓存层中的数据准确性。
对外接口用于接收用户的操作以对所述数据存储层中的数据进行查询或维护。更具体而言,对外接口可以提供资产全文搜索服务、资产CURD(创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete))操作、数据关系展现服务、资产快照查询、CMDB管理系统等。
其中,资产全文搜索服务利用缓存层中缓存的热点属性数据(热点属性是指为“较常用来做查询条件,且区分度较高的属性”,可以由相关人员根据经验或历史数据设置,在横表中可以建立索引以便于查询)、结合数据库查询,从整个资产处理系统中查找出相关的资产数据。数据关系展现服务,是指通过一个起点,例如最开始通过指定主机名查找到固定服务器,然后通过REDIS中缓存的关系数据自动关联出与该服务器相关的其他资产数据(如机房、机架位、归属产品线等),如此深度和广度遍历即可得到以该起点为中心的资产关系图。CMDB管理系统可以支持管理员添加资产分类、为分类建立关系,维护属性池、数据导入、数据导出等操作处理。无论是全文搜索服务还是数据关系展现服务,均是基于本发明实施例提供的缓存层与数据存储层的具体结构而实现的,本领域技术人员还可以在此基础上进行其它功能扩展,本发明对此不进行详述。
可选地,在本实施例的一种实现方式中,逻辑层还包括事务支持模块,所述事务支持模块用于识别事务类请求(即,用于识别打包操作);缓存层还通过REDIS的multi/exec实现所述缓存层的事务特性。逻辑层还可支持回滚,例如,通过逻辑层预先生成需要发送给缓存层和MemcacheQ的指令,同时生成逆向操作的指令,用于支持后续的回滚需求(例如,业务层的回滚需求)。
可选地,在本实施例的一种实现方式中,逻辑层还可以包括用于解析应用请求的解析模块、用于校验域完整性和实体完整性的校验模块、用于为资产实例分配id的发号器模块等。
可选地,在本实施例的一种实现方式中,可以利用MySQL的自增为资产分类及属性池中的属性设置id。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。
Claims (9)
1.一种针对资产数据的数据处理系统,其特征在于,所述数据处理系统包括逻辑层、缓存层和数据存储层,其中,
所述数据存储层用于以分别存储的方式存储配置项、配置项之间的关系以及配置项的属性;
所述缓存层用于以缓存的形式存储所述数据存储层中的数据;
所述逻辑层包括查询优化模块,用于根据查询条件查询所述缓存层,并根据查询结果确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据;
其中,所述配置项包括资产分类和资产实例;
其中,所述数据存储层包括:
用于存储属性信息的第一存储区,
用于存储资产分类信息的第二存储区,
用于存储资产分类与属性的对应关系的第三存储区,
用于存储资产分类之间的关系的第四存储区,
用于存储资产实例信息的第五存储区,
用于存储资产实例的属性值的第六存储区,
用于存储资产实例之间的关系的第七存储区,
在所述第六存储区中,以横表的形式存储所述资产实例的第一属性值,以纵表的形式存储所述资产实例的第二属性值。
2.如权利要求1所述的系统,其特征在于,所述配置项包括资产分类和资产实例,所述资产实例的第一属性值存储在第一表中,所述资产实例的第二属性值存储在表结构不同于所述第一表的第二表中。
3.如权利要求1或2所述的系统,其特征在于,
所述配置项包括资产分类和资产实例;
在所述缓存层中,以第一数据结构缓存资产分类信息、属性信息以及资产分类与属性的对应关系,以第二数据结构缓存所有资产实例的属性值,以第三数据结构缓存资产分类之间的关系、资产实例之间的关系、热点属性信息和索引信息。
4.如权利要求1或2所述的系统,其特征在于,所述缓存层还用于,采用MemcacheQ对所述数据存储层进行数据库操作。
5.如权利要求3所述的系统,其特征在于,所述查询优化模块具体用于:
根据查询条件中的属性查询所述缓存层中的索引信息以确定查询条件中的属性是否为热点属性;
如果不是热点属性,则从所述数据存储层中查询目标信息;
如果是热点属性,则从所述缓存层中查询目标信息。
6.如权利要求5所述的系统,其特征在于,所述查询优化模块具体用于:
在根据关系型查询条件从所述缓存层中查询目标信息时,根据关联资产实例的量进行判断,如果关联资产实例的量超过阈值,则从所述数据存储层中查询目标信息;如果未超过阈值,则从所述缓存层中查询目标信息。
7.如权利要求1或2所述的系统,其特征在于,
所述逻辑层还包括事务支持模块,所述事务支持模块用于识别事务类请求;
所述缓存层还通过REDIS的multi/exec实现所述缓存层的事务特性。
8.如权利要求1或2所述的系统,其特征在于,所述系统还包括:
数据抓取层,用于抓取线上资产数据;
一致性校验和同步模块,用于根据抓取的资产数据对所述数据存储层中的数据和所述缓存层中的数据进行一致性校验,以及用于将抓取到的资产数据中同步到所述数据存储层和所述缓存层中。
9.如权利要求1或2所述的系统,其特征在于,所述系统还包括对外接口,用于接收用户的操作请求以对所述数据存储层中的数据进行查询或维护。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410775769.0A CN104391992B (zh) | 2014-12-15 | 2014-12-15 | 针对资产数据的数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410775769.0A CN104391992B (zh) | 2014-12-15 | 2014-12-15 | 针对资产数据的数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391992A CN104391992A (zh) | 2015-03-04 |
CN104391992B true CN104391992B (zh) | 2018-10-09 |
Family
ID=52609896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410775769.0A Active CN104391992B (zh) | 2014-12-15 | 2014-12-15 | 针对资产数据的数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391992B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955655B (zh) * | 2018-09-26 | 2022-10-14 | 千寻位置网络有限公司 | 动态cmdb数据库模型存储方法和系统 |
CN110400067A (zh) * | 2019-07-18 | 2019-11-01 | 福建威盾科技集团有限公司 | 一种通用资产管理的方法及系统 |
CN110929109A (zh) * | 2019-10-30 | 2020-03-27 | 中盈优创资讯科技有限公司 | 用于数据中台的数据查询方法及装置 |
CN111382121B (zh) * | 2020-03-04 | 2023-08-25 | 深圳乐信软件技术有限公司 | 一种信息管理系统及存储介质 |
CN111882286A (zh) * | 2020-06-19 | 2020-11-03 | 五八到家有限公司 | 一种抽佣数据处理方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576918A (zh) * | 2009-06-19 | 2009-11-11 | 用友软件股份有限公司 | 具备负载均衡功能的数据缓存系统 |
CN103020146A (zh) * | 2012-11-22 | 2013-04-03 | 华为技术有限公司 | 数据处理方法及设备 |
CN104123238A (zh) * | 2014-06-30 | 2014-10-29 | 海视云(北京)科技有限公司 | 数据存储方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201306035D0 (en) * | 2013-04-03 | 2013-05-22 | King Com Ltd | Method and system for data cash handling |
-
2014
- 2014-12-15 CN CN201410775769.0A patent/CN104391992B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101576918A (zh) * | 2009-06-19 | 2009-11-11 | 用友软件股份有限公司 | 具备负载均衡功能的数据缓存系统 |
CN103020146A (zh) * | 2012-11-22 | 2013-04-03 | 华为技术有限公司 | 数据处理方法及设备 |
CN104123238A (zh) * | 2014-06-30 | 2014-10-29 | 海视云(北京)科技有限公司 | 数据存储方法及装置 |
Non-Patent Citations (1)
Title |
---|
用SQL数据库做多表关联应怎样设计库结构;if_else__;《新浪博客(http://blog.sina.com.cn/s/blog_5d911a3f0101pwiq.html)》;20140318;第3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104391992A (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11645183B1 (en) | User interface for correlation of virtual machine information and storage information | |
JP6634527B2 (ja) | ユーザ権限データ検索方法および電子機器 | |
CN104391992B (zh) | 针对资产数据的数据处理系统 | |
US10642831B2 (en) | Static data caching for queries with a clause that requires multiple iterations to execute | |
US10289718B2 (en) | Partition access method for query optimization | |
US8103658B2 (en) | Index backbone join | |
US20170024435A1 (en) | Use Of Dynamic Dictionary Encoding With An Associated Hash Table To Support Many-To-Many Joins And Aggregations | |
CN103617199B (zh) | 一种操作数据的方法和系统 | |
CN106326381A (zh) | 基于MapDB构建的HBase数据检索方法 | |
US20120166620A1 (en) | System and method for integrated real time reporting and analytics across networked applications | |
CN105159950B (zh) | 海量数据实时排序查询方法及系统 | |
CN108287840A (zh) | 一种基于矩阵哈希的数据存储和查询方法 | |
EP2880556A1 (en) | Supporting multi-tenancy in a federated data management system | |
CN109062936B (zh) | 一种数据查询方法、计算机可读存储介质及终端设备 | |
US20140019454A1 (en) | Systems and Methods for Caching Data Object Identifiers | |
CN105426375A (zh) | 一种关系网络的计算方法及装置 | |
US20130046798A1 (en) | Method and apparatus for visualization of infrastructure using a non-relational graph data store | |
US10108669B1 (en) | Partitioning data stores using tenant specific partitioning strategies | |
CN104731969A (zh) | 分布式环境下海量数据连接聚集查询方法、装置和系统 | |
CN105989140A (zh) | 一种数据块处理方法和设备 | |
CN109614521B (zh) | 一种高效的隐私保护子图查询处理方法 | |
CN113704248B (zh) | 一种基于外置索引的区块链查询优化方法 | |
CN103377236B (zh) | 一种用于分布式数据库的连接查询方法及系统 | |
CN110119422A (zh) | 小微信贷租户数据仓库数据处理系统及设备 | |
CN109359205A (zh) | 一种基于地理格网的遥感影像切分方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |