《针对资产数据的数据处理系统.pdf》由会员分享,可在线阅读,更多相关《针对资产数据的数据处理系统.pdf(15页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201410775769.0 (22)申请日 2014.12.15 G06F 17/30(2006.01) (71)申请人 北京百度网讯科技有限公司 地址 100085 北京市海淀区上地十街 10 号 百度大厦 2 层 (72)发明人 张晴晴 季永锋 邢召林 (74)专利代理机构 广州三环专利代理有限公司 44202 代理人 温旭 郝传鑫 (54) 发明名称 针对资产数据的数据处理系统 (57) 摘要 本发明公开了一种针对资产数据的数据处理 系统, 所述数据处理系统包括逻辑层、 缓存层和数 据存储层, 其中, 所述数据存储层用于以分别存储。
2、 的方式存储配置项、 配置项之间的关系以及配置 项的属性 ; 所述缓存层用于以缓存的形式存储所 述数据存储层中的数据 ; 所述逻辑层包括查询优 化模块, 用于根据查询条件查询所述缓存层, 并根 据查询结果确定从缓存层中查询目标数据还是从 所述数据存储层中查询目标数据。采用本发明提 供的数据处理系统, 能够提高对资产数据的维护 效率和查询效率。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书10页 附图2页 (10)申请公布号 CN 104391992 A (43)申请公布日 2015.03.04 CN 104391992 A 1/2 。
3、页 2 1. 一种针对资产数据的数据处理系统, 其特征在于, 所述数据处理系统包括逻辑层、 缓 存层和数据存储层, 其中, 所述数据存储层用于以分别存储的方式存储配置项、 配置项之间的关系以及配置项的 属性 ; 所述缓存层用于以缓存的形式存储所述数据存储层中的数据 ; 所述逻辑层包括查询优化模块, 用于根据查询条件查询所述缓存层, 并根据查询结果 确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据。 2. 如权利要求 1 所述的系统, 其特征在于, 所述配置项包括资产分类和资产实例, 所述 资产实例的第一属性值存储在第一表中, 所述资产实例的第二属性值存储在表结构不同于 所述第一表的。
4、第二表中。 3. 如权利要求 1 所述的系统, 其特征在于, 所述配置项包括资产分类和资产实例 ; 所述数据存储层包括 : 用于存储属性信息的第一存储区, 用于存储资产分类信息的第二存储区, 用于存储资产分类与属性的对应关系的第三存储区, 用于存储资产分类之间的关系的第四存储区, 用于存储资产实例信息的第五存储区, 用于存储资产实例的属性值的第六存储区 ; 用于存储资产实例之间的关系的第七存储区, 其中, 在第六存储区中, 以横表的形式存储所述资产实例的第一属性值, 以纵表的形式 存储所述资产实例的第二属性值。 4. 如权利要求 1-3 中任一项所述的系统, 其特征在于, 所述配置项包括资产分。
5、类和资产实例 ; 在所述缓存层中, 以第一数据结构缓存资产分类信息、 属性信息以及资产分类与属性 的对应关系, 以第二数据结构缓存所有资产实例的属性值, 以第三数据结构缓存资产分类 之间的关系、 资产实例之间的关系、 热点属性信息和索引信息。 5. 如权利要求 1-3 中任一项所述的系统, 其特征在于, 所述缓存层还用于, 采用 MemcacheQ 对所述底层数据存储区进行数据库操作。 6. 如权利要求 4 所述的系统, 其特征在于, 所述查询优化模块具体用于 : 根据查询条件中的属性查询所述缓存层中的索引信息以确定查询条件中的属性是否 为热点属性 ; 如果不是热点属性, 则从所述数据存储层中。
6、查询目标信息 ; 如果是热点属性, 则从所述缓存层中查询目标信息。 7. 如权利要求 6 所述的系统, 其特征在于, 所述查询优化模块具体用于 : 在根据关系型查询条件从所述缓存层中查询目标信息时, 根据关联资产实例的量进行 判断, 如果关联资产实例的量超过阈值, 则从所述数据存储层中查询目标信息 ; 如果未超过 阈值, 则从所述缓存层中查询目标信息。 8. 如权利要求 1-3 中任一项所述的系统, 其特征在于, 权 利 要 求 书 CN 104391992 A 2 2/2 页 3 所述逻辑层还包括事务支持模块, 所述事务支持模块用于识别事务类请求 ; 所述缓存层还通过 REDIS 的 mul。
7、ti/exec 实现所述缓存层的事务特性。 9. 如权利要求 1-3 中任一项所述的系统, 其特征在于, 所述系统还包括 : 数据抓取层, 用于抓取线上资产数据 ; 一致性校验和同步模块, 用于根据抓取的资产数据对所述数据存储层中的数据和所述 缓存层中的数据进行一致性校验, 以及用于将抓取到的资产数据中同步到所述数据存储层 和所述缓存层中。 10. 如权利要求 1-3 中任一项所述的系统, 其特征在于, 所述系统还包括对外接口, 用 于接收用户的操作请求以对所述数据存储层中的数据进行查询或维护。 权 利 要 求 书 CN 104391992 A 3 1/10 页 4 针对资产数据的数据处理系统。
8、 技术领域 0001 本发明涉及数据处理领域, 更为具体而言, 涉及一种针对资产数据的数据处理系 统。 背景技术 0002 IT 资产 ( 实体资产和虚拟资产 ) 是自动化运维的基础, 目前大多数运维系统随着 业务规模不断增长都会因为设计问题导致资产数据难以维护、 产生错误数据等问题, 从而 降低自动化运维的效率, 严重时甚至出现线上故障。 0003 目前资产管理多是采用关系型数据库 ( 例如, MySQL、 SQL Server、 Oracle 等 ), 即 不同类别的资产数据分表存储在不同表中, 资产之间的关系通过表外键来关联。 0004 现有的直接通过关系型数据库 ( 不同类别的资产分表。
9、存储于不同表中 ) 的方式 会带来如下问题 : 1. 每增加一类资产时需要新建一张表, 同时需要增加该类资产的操作、 维护、 流程及页面 ; 2. 为资产添加某类属性时, 会给整张表加锁, 导致其它请求阻塞甚至超 时, 效率过低 ; 3. 资产间关系不明确, 从而导致涉及影响范围之类的问题无法高效给出结 论 ; 4. 信息分散, 不易统计分析 ; 5. 直接通过数据库联表, 效率低下。 发明内容 0005 为了解决现有技术所存在的缺陷, 本发明实施方式提供一种针对资产数据的数据 处理系统, 能以合理的方式存储资产数据, 提高资产数据的查询和维护效率。 0006 本发明实施方式提供了一种针对资产。
10、数据的数据处理系统, 包括逻辑层、 缓存层 和数据存储层, 其中, 0007 所述数据存储层用于以分别存储的方式存储配置项、 配置项之间的关系以及配置 项的属性 ; 0008 所述缓存层用于以缓存的形式存储所述数据存储层中的数据 ; 0009 所述逻辑层包括查询优化模块, 用于根据查询条件查询所述缓存层, 并根据查询 结果确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据。 0010 可选地, 在本发明实施例的一种实现方式中, 所述配置项包括资产分类和资产实 例, 所述资产实例的第一属性值存储在第一表中, 所述资产实例的第二属性值存储在表结 构不同于所述第一表的第二表中。 0011 。
11、可选地, 在本发明实施例的另一种实现方式中, 所述配置项包括资产分类和资产 实例 ; 所述数据存储层包括 : 用于存储属性信息的第一存储区, 用于存储资产分类信息的 第二存储区, 用于存储资产分类与属性的对应关系的第三存储区, 用于存储资产分类之间 的关系的第四存储区, 用于存储资产实例信息的第五存储区, 用于存储资产实例的属性值 的第六存储区 ; 用于存储资产实例之间的关系的第七存储区, 其中, 在第六存储区中, 以横 表的形式存储所述资产实例的第一属性值, 以纵表的形式存储所述资产实例的第二属性 值。 说 明 书 CN 104391992 A 4 2/10 页 5 0012 可选地, 在本。
12、发明实施例的再一种实现方式中, 所述配置项包括资产分类和资产 实例 ; 在所述缓存层中, 以第一数据结构缓存资产分类信息、 属性信息以及资产分类与属性 的对应关系, 以第二数据结构缓存所有资产实例的属性值, 以第三数据结构缓存资产分类 之间的关系、 资产实例之间的关系、 热点属性信息和索引信息。 0013 可选地, 在本发明实施例的又一种实现方式中, 所述缓存层还用于采用 MemcacheQ 对所述底层数据存储区进行数据库操作。 0014 可选地, 在本发明实施例的更一种实现方式中, 所述查询优化模块具体用于 : 根据 查询条件中的属性查询所述缓存层中的索引信息以确定查询条件中的属性是否为热点。
13、属 性 ; 如果不是热点属性, 则从所述数据存储层中查询目标信息 ; 如果是热点属性, 则从所述 缓存层中查询目标信息。 其中, 优选地, 在根据关系型查询条件从所述缓存层中查询目标信 息时, 根据关联资产实例的量进行判断, 如果关联资产实例的量超过阈值, 则从所述数据存 储层中查询目标信息 ; 如果未超过阈值, 则从所述缓存层中查询目标信息。 0015 可选地, 在本方面实施例的其它实现方式中, 一方面, 所述逻辑层还包括事务支 持模块, 所述事务支持模块用于识别事务类请求 ; 所述缓存层还通过 REDIS( 一种键值 (Key-Value) 数据库 ) 的 multi/exec 实现所述缓。
14、存层的事务特性。另一方面, 所述系统可 包括 : 数据抓取层, 用于抓取线上资产数据 ; 一致性校验和同步模块, 用于根据抓取的资产 数据对所述数据存储层中的数据和所述缓存层中的数据进行一致性校验, 以及用于将抓取 到的资产数据中同步到所述数据存储层和所述缓存层中。再一方面, 所述系统可包括对外 接口, 用于接收用户的操作请求以对所述数据存储层中的数据进行查询或维护等处理。 0016 采用本发明的各种实施例具有以下有益效果 : 0017 1) 通过将资产实例的属性值存储于不同表结构的表中, 例如, 将经常用作查询条 件的属性所对应的属性值存储于横表, 将描述信息存储于纵表, 能够达到以下有益效。
15、果 : 一 方面, 相对于采用纵表存储所有属性值而言, 能够降低数据量以及查询结果返回后的结果 集拼装难度, 提高维护效率 ; 另一方面, 相对于采用横表存储所有属性值而言, 能够降低数 据查询过程中需要遍历的数据量, 有效提高查询效率。 0018 2) 通过将配置项、 配置项之间的关系以及配置项的属性分别存储, 能够灵活地对 各部分数据进行增、 删、 改、 查等处理, 提高了数据维护的便利性。 0019 3) 在查询过程中, 根据查询优化模块查询缓存层的查询结果确定适合的后续查询 逻辑, 能够充分利用缓冲层和数据存储层具有不同数据结构的特点提高查询效率。 附图说明 0020 图 1 是根据本。
16、发明实施例的一种针对资产数据的数据处理系统的方块示意图 ; 0021 图 2 是根据本发明实施例的一种实现方式的数据存储层的方块示意图 ; 0022 图 3 是根据本发明实施例的一种实现方式的查询优化方法的流程示意图 ; 0023 图 4 是根据本发明实施例的一种针对资产数据的数据处理系统的方块示意图。 具体实施方式 0024 以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中, 众所周 知的模块、 单元及其相互之间的连接、 链接、 通信或操作没有示出或未作详细说明。 并且, 所 说 明 书 CN 104391992 A 5 3/10 页 6 描述的特征、 架构或功能可在一个或一个。
17、以上实施方式中以任何方式组合。本领域技术人 员应当理解, 下述的各种实施方式只用于举例说明, 而非用于限制本发明的保护范围。 还可 以容易理解, 本文所述和附图所示的各实施方式中的模块或单元或步骤可以按各种不同配 置进行组合和设计。 0025 首先, 对本发明涉及的术语进行解释 : 0026 CMDB(Confi guration Management Database) : 配置管理数据库, 用于存储与管理 企业 IT 架构中设备的各种配置信息。本发明各个实施例可以理解为对现有 CMDB 的改进, 也可以理解为基于现有 CMDB 提出的新的技术方案。 0027 图 1 是根据本发明实施例的一。
18、种针对资产数据的数据处理系统的方块示意图, 参 照图 1, 数据处理系统包括数据存储层 11、 缓存层 12 和逻辑层 13。下面分别进行说明。 0028 数据存储层 11 用于以分别存储的方式存储配置项 (CI)、 配置项之间的关系以及 配置项的属性。 0029 其中, 配置项包括资产分类和资产实例。 “资产分类” 是指按照分类策略对所有资 产进行划分得到的多个类别, 例如 “服务器” 、“VIP” 等均指资产中的类别 ;“资产实例” 是指 某个资产分类下的具体个体或单位, 例如, 服务器这一资产分类下可以包括服务器 A、 服务 器 B 等资产实例。 0030 可选地, 在本实施例的一种具体。
19、实现方式中, 资产实例的第一属性值存储在第一 表中, 第二属性值存储在表结构不同于所述第一表的第二表中。例如, 第一表为横表, 其中 存储的第一属性值是资产实例的属性中用作或经常用作查询条件的属性所对应的属性值 ; 第二表为纵表, 其中存储的第二属性值是资产实例的描述信息, 该类信息一般不会用作查 询条件, 但却是查询结果的一部分。本领域技术人员可以根据需要灵活地确定将哪些属性 用作查询条件, 本发明对此不做具体限制。 0031 采用如上所述的存储方式, 一方面, 相对于采用纵表存储所有属性值而言, 能够降 低数据量以及查询结果返回后的结果集拼装难度, 有效提高维护效率 ; 另一方面, 相对于。
20、采 用横表存储所有属性值而言, 能够降低数据查询过程中需要遍历的数据量, 有效提高查询 效率。此外, 由于将配置项、 配置项之间的关系以及配置项的属性分别存储, 从而能够灵活 地对各部分数据进行增、 删、 改、 查等处理, 提高了数据维护的便利性。 0032 可选地, 在本实施例的一种实现方式中, 关于数据存储层 11 的具体说明, 请参见 下文结合图 2 进行的说明。 0033 缓存层 12 用于以缓存的形式存储所述数据存储层中的数据。并且, 优选地, 缓存 层 12 采用不同的数据结构 ( 例如, 集合 (set)、 串 (string)、 哈希 (hash) 数据结构等 ) 缓 存所述数。
21、据存储层中的数据。 0034 在本实施例中, 通过缓存层12缓存数据存储层11中的数据, 避免了将所有的查询 操作都落在数据存储层 11, 有效降低了数据存储层 11 在查询过程中的压力。 0035 可选地, 在本实施例的一种具体实现方式中, 关于缓存层 12 的具体说明, 请参见 下文结合表 ( 一 ) 进行的说明。 0036 逻辑层 13 包括查询优化模块 131, 用于根据查询条件查询所述缓存层, 并根据查 询结果确定从缓存层中查询目标数据还是从所述数据存储层中查询目标数据。 0037 在本实施例中, 通过查询优化模块 131 确定查询逻辑, 一方面, 避免了将所有的查 说 明 书 CN。
22、 104391992 A 6 4/10 页 7 询都落在数据存储层, 降低了数据储层的压力 ; 另一方面, 对于某些查询 ( 例如, 下文提及 的热点属性查询 ), 通过查询缓存层能够明显提高查询效率。 0038 可选地, 在本实施例的一种具体实现方式中, 关于查询优化模块 131 的具体说明, 请参见下文结合图 3 进行的说明。 0039 图 2 是根据本发明实施例的一种实现方式的数据存储层的方块示意图, 参照图 2, 数据存储层包括第一存储区 201 至第七存储区 304, 其中, PK(Primary Key) 表示主键, FK(Foreign Key) 表示外键。下面对第一存储区 20。
23、1 至第七存储区 304 分别进行说明。 0040 第一存储区201(或者称作属性池表), 用于存储属性信息。 换言之, 在第一存储区 201 中存储整个数据处理系统中涉及到的所有属性。其中, 单个属性可以包括以下信息 : 属 性名称、 限制类型 ( 如整型、 非定长字符串等 )、 默认值、 是否可以为空等等。 0041 第二存储区 203( 或者称作 CI 分类表 ), 用于存储资产分类信息。例如, 存储各资 产分类的名称等。 0042 第三存储区202(或者称作CI分类与属性关联表), 用于定义各资产分类具有哪些 属性。其中的 “属性信息所在表表名” 和 “对应字段” 用于定位资产分类的部。
24、分属性的属性 值在数据存储层中的位置 ( 例如,“资产分类 1” 的 “属性 2” 的属性值存储在 “CI 实例属性 横表” 的 “字段 1” 中 )。其中的 “实例属性 id” 是指 201 中所有属性 id 中属于某资产实例 的属性 id。 0043 第四存储区204(或者称作CI分类关系表), 用于存储资产分类之间的关系, 包括 : 彼此之间存在关系的资产分类的id(例如, 关系一方分类id和关系另一方分类id, 当然, 还 可包括关系更多的分类 id) 以及资产分类之间的关系类型。 0044 其中, 资产分类之间可以包括很多种关系类型, 例如, 1:1( 即, 一个资产分类下的 一个资。
25、产实例只能与另一资产分类下的一个资产实例对应 )、 1:m( 即, 一个资产分类下的 一个资产实例可以与另一资产分类下的多个资产实例对应 )、 m:1( 即, 一个资产分类下的 多个资产实例可以与另一资产分类下的一个资产实例对应 ) 等类型, 但同一类型的关系可 以具有不同的含义, 如 “固定于” 、“归属于” 等。例如, 资产分类 A 与资产分类 B 为 1:1 关系, 含义可以是 “资产分类 A 的一个实例 A1 绑定了资产分类 B 的一个实例 B1” , 资产分类 C 与 资产分类 D 也是 1:1 的类型, 但其含义可以是 “资产分类 C 的一个实例 C1 存放于资产分类 D的一个实例。
26、D1上” 。 资产分类之间的关系是单向的(即, 不同资产分类之间的关系在数据 库中只存一份 ), 本领域技术人员应当理解, 通过对资产分类之间的关系的约束, 进而约束 了资产实例之间的关系。 0045 在第四存储区204中,“约束方法” 是可选地, 其用于定义某些可计算功能, 例如, 在 用户插入 IP 但未提供网段的操作处理中, 根据约束方法确定, 在指向上述操作处理之前, 需要根据 IP 计算网段信息并校验网段信息是否符合预设要求。 0046 第五存储区 303( 或者称作 CI 实例表 ), 用于存储资产实例信息。例如, 用于存储 各资产实例的唯一标识 ( 例如, id)、 资产实例所属。
27、的资产分类 id 等。此外, 还可以记录实 例状态, 例如, 当删除某个实例时, 采用软删除 ( 即不直接删除, 而是变更状态 ) 的方式, 以 便更好的追踪该实例的历史。 0047 第六存储区 301 和 302, 用于存储资产实例的属性值。其中, 302( 或者称作 CI 实 例属性横表 ) 以横表的形式存储资产实例的常用作查询条件的属性所对应的属性值。在横 说 明 书 CN 104391992 A 7 5/10 页 8 表中, 可以建立索引以存储热点属性。 301(或者称作CI实例属性纵表)以纵表的形式存储 资产实例的其它信息 ( 例如, 一般不用作查询条件的描述信息 )。 0048 第。
28、七存储区 304( 或者称作 CI 实例关系表 ), 用于存储不同资产分类的资产实例 之间的关系, 例如对于存在关系的两个资产实例, 存储关系一方实例 id 和关系另一方实例 id。其中, 关系状态与前文所述的实例状态类似, 此处不赘述。关系 id 对应第四存储区 204 的 id, 在查询 204 确定两种资产分类之间的关系之后, 根据已知的一方实例 id 和用于标识 上述两种资产分类之间的关系的关系 id 查询 304, 可以确定与一方实例存在关系的另一方 实例的 id。 0049 除了上述存储区之外, 如图 2 所示, 数据存储层还可以包括 CI 分类主键表 101 和 CI 快照 40。
29、1。其中, 分类主键表 101 用于定义例如某类资产的唯一性约束等, CI 快照 401 用 于存储资产实例的快照信息, 例如, 存储每一次操作 ( 例如, 修改、 增加、 删除等操作 ) 某资 产实例 ( 以资产实例 id 标识 ) 相关数据的操作时间、 所执行的具体操作、 变更后的新值等。 0050 为便于理解, 同时本领域技术人员也应当理解, 201-204可以看作类(抽象定义), 301-304 则可看作相应的对象 ( 具体数据 )。此外, 可以采用 MySQL 建立数据存储层。 0051 以上对根据本发明实施例的一种实现方式的数据存储层进行了说明, 接下来对根 据本发明实施例的一种实。
30、现方式的缓存层进行说明。 0052 缓存层可以采用第一数据结构 ( 例如, hash 数据结构 ) 缓存属性、 资产分类信息 以及资产分类与属性的对应关系 ; 采用第二数据结构 ( 例如, string 数据结构 ) 缓存资产 实例的属性值 ; 采用第三数据结构 ( 例如, set 数据结构 ) 缓存资产分类之间的关系、 资产 实例之间的关系、 热点属性信息和索引信息。 0053 通常来讲, 如果缓存层缓存的数据较多, 则查询方便但更新工作量较大, 如果缓存 的数据较少, 则降低了更新的工作量, 但查询不便, 导致很多查询会落到数据存储层, 给数 据存储层造成很大的压力。根据发明人的研究发现,。
31、 针对资产数据的数据处理系统都包含 如下的几个特点 : 多数查询都集中在少数几类资产中、 多数查询都集中在少数几类查询中 ( 即查询模式相对集中 )、 大部分查询都是简单精确查询。结合以上特点, 在本实施例的一 种具体实现方式中, 缓存层可以按照表 ( 一 ) 所示的数据存储结构存储相关数据。 0054 说 明 书 CN 104391992 A 8 6/10 页 9 0055 说 明 书 CN 104391992 A 9 7/10 页 10 0056 表 ( 一 ) 0057 参照表 ( 一 ), 其中涉及多种数据结构, 因此, 在本实施例的一种具体实现方式中, 缓存区可以是采用 REDIS 。
32、建立的缓存区。 0058 如前文所述, 不同资产分类之间的关系在数据库只存储一份 ( 即单向存储 ), 但在 缓存层中, 如表 ( 一 ) 所示, 会存储两份以用于插入和删除约束。例如, 当插入 VPORT 信息 时, 可以根据缓存的 “资产分类关系 ( 插入 )” 查询出 VPORT 依赖于 VIP 而存在, 然后检查 VIP 存在与否, 若不存在则不予插入 ; 再例如, 当同时插入 VIP 和 VPORT 信息时, 可利用缓存 的 “资产分类关系 ( 插入 )” 计算出 VIP 和 VPORT 的插入顺序 ; 再例如, 当删除 IP 时, 可根 据缓存的 “资产分类关系 ( 删除 )” 确。
33、定 IP 被 PORT 依赖, 此时如果尚存在关联 PORT 则不予 删除或者是级联删除等。 0059 如前文所述, 在数据存储层中, 资产实例的属性值被打散在横表和纵表中, 但如表 ( 一 ) 所示, 在缓存层中, 结合 REDIS 高并发的特性, 可以将资产实例的属性值组成 JSON 串 缓存下来, 以便于直接查询资产实例的所有属性的属性值。 0060 参照表 ( 一 ), 对于热点属性或热点属性的组合, 通过在缓存层中建立类似于 MySQL中的索引或联合索引, 能够提高查询效率。 此外, 利用集合查询大小复杂度为O(1)的 特性将资产实例的关系数据存储成 Set 类型, 有利于查询逻辑的。
34、优化。其中, 关于热点属性 以及查询逻辑的说明将在下文进行说明。 0061 可选地, 在其它实现方式中, 缓存层还可用于采用队列处理系统 MemcacheQ 对所 述底层数据存储区进行数据库操作。 0062 图 3 是根据本发明实施例的一种实现方式的查询优化方法的流程示意图, 该方法 可以由前文所述的查询优化模块执行。参照图 3, 所述方法包括 : 0063 30 : 判断查询条件中的属性是否为热点属性。 具体而言, 根据查询条件中的属性查 询缓存层中的索引信息以确定查询条件中的属性是否为热点属性。 0064 32 : 如果不是热点属性, 则从数据存储层中查询目标信息。例如, 根据在查询索引 。
35、信息之前将查询信息转化得到的 id( 例如, 资产分类 id、 资产实例 id 和属性 id), 从数据存 储层中查询目标信息。 0065 34 : 如果是热点属性, 则从缓存层中查询目标信息。例如, 根据在查询索引信息之 前将查询信息转化得到的 id( 例如, 资产分类 id、 资产实例 id 和属性 id), 从缓存层中查询 目标信息。 0066 其中, 优选地, 如果所述查询条件是关系型查询条件 ( 例如, 查询的是与某资产实 例相关的另一资产实例的信息, 而不是查询某一资产实例的直接相关的信息 ), 则在处理 34 中, 根据关联资产实例的量进行判断, 如果关联资产实例的量超过阈值, 。
36、则从所述数据存 储层中查询目标信息 ; 如果未超过阈值, 则从所述缓存层中查询目标信息。 0067 为便于理解, 以下结合一种具体查询场景对本实施例中的查询优化模块所采用的 查询优化方法进行说明。假设查询信息为查询 “主机名为 ABC 的服务器所在机架位的行列 信息” , 此时, 查询条件为 “主机名为 ABC 的服务器” , 查询的目标信息为 “机架位的行列信 息” , 通过缓存层进行查询的过程如下 : 0068 . 根据缓存层中存储的 “所有资产分类信息” 确定 “服务器” 所属资产分类的分 类 id 和 “机架位” 所属资产分类的分类 id ; . 查询缓存层中存储的 “属性池信息” 确。
37、定 说 明 书 CN 104391992 A 10 8/10 页 11 是否存在 “主机名” 、“行” 、“列” 这三种属性名称 ( 若不存在, 可以进行模糊搜索或者提示用 户输入错误 ), 如果存在, 则获取相应的属性 id ; . 根据服务器的分类 id 查询缓存层中 存储的 “资产分类与属性对应关系” , 确定服务器的分类 id 和主机名的属性 id 对应 ( 如果 不对应, 可以提示查询条件错误等 ), 即确定服务器这一资产分类下具有主机名这一属性 ; . 根据服务器的资产分类 id 查询缓存层中存储的 “某资产分类所有索引信息” , 根据主 机名的属性 id 是否存在于集合中确定主机。
38、名这一属性是否属于热点属性 ; . 如果属于 热点属性, 则根据服务器的分类 id、 主机名的属性 id、 主机名的属性值 ( 即 ABC) 查找缓存 层中存储的 “热点属性 / 联合索引” , 从而获取与上述三个条件相关联的服务器的实例 id ; . 根据获取的服务器的实例 id 和机架位的资产分类 id 查询缓存层中存储的 “资产实例 关系数据” , 获取与主机名为 ABC 的服务器相关联的机架位的实例 id ; . 根据获取的机架 位的实例 id、 行属性 id 和列属性 id 查询缓存层中存储的 “某资产实例所有属性信息” , 从 而获取到欲查询的 “机架位的行列信息” 。 0069 。
39、可选地, 在上述查询流程中, 在处理中, 可以根据属性 id 查询获取到主机名所 在表的表名 ( 做查询条件的字段必然是在横表, 例如横表 TA1 中 ) 及对应字段 ( 例如 F1), 从而确定待连接 (JOIN) 的表及字段, 同样地, 可以根据机架位的行属性 id 和列属性 id 查 询获取到待连接的表 ( 可能在横表 TA1 或纵表 TA2 中 ) 及字段。之后, 在处理中, 如果发 现主机名这一属性不属于热点属性, 则从数据存储层获取相关信息, 流程如下 : a) 根据 中查询到的服务器的分类 id 和机架位的分类 id, 查询第四存储区 204( 第四存储区 204 中 按照一定的。
40、规则存储资产分类之间的关系, 例如, 分类 id 小的为一方, 大的为另一方, 此处 假设服务器分类 id 较小 ) 获取两个资产分类的关系, 从而获取到关系 id 如 RID1 ; b) 将第 七存储区标识 304 为 TR, 如果查询的目标属性均在横表当中, 此时仅需查询机架位的横表 信息, 假设行属性和列属性分别对应 TA1 的 F1 和 F2, 则采用如下第一方式获取机架位的行 属性值和列属性值 : 0070 SELECT TA1B.F1,TA1B.F2 0071 FROM TA1AS TA1A JOIN TR 0072 ON TA1A. 实例 id TR. 关系一方实例 id 007。
41、3 JOIN TA1AS TA1B 0074 ON TR. 关系另一方实例 id TA1B.id 0075 WHERE TA1A.F1 ABC AND TR. 关系 id RID1 ; 0076 在另一种情况下, 如果查询的目的属性在纵表当中, 则采用如下第二方式获取机 架位的行属性值和列属性值 : 0077 SELECT TA2. 实例属性值 ,TA2. 实例属性 id, TA2 实例 id 0078 FROM TA1JOIN TR 0079 ON TA1. 实例 id TR. 关系一方实例 id 0080 JOIN TA2 0081 ON TR. 关系另一方实例 id TA2.id 008。
42、2 WHERE TA1.F1 ABC AND TR. 关系 id RID1 ; 0083 在这种情况下需要遍历结果做组装, 以实例 id 为主键将其它属性值组合到一起。 例如, 假设服务器与机架位是 1 对多关系 ( 实际情况一般是 1 对 1 关系, 此处仅作为举例对 说 明 书 CN 104391992 A 11 9/10 页 12 本实现方式的思想进行解释 ), 采用上述第二方式会分别得到机架位 1 的行属性值、 机架位 1的列属性值、 机架位2的行属性值、 机架位2的列属性值, 之后通过拼接得到机架位1的行 属性值和列属性值以及机架位 2 的行属性值和列属性值。 0084 可选地, 在。
43、前述流程的处理中, 如果发现与主机名为 ABC 的服务器相关联的机 架位的实例的量超过阈值 ( 通过采用 set 数据结构以便于在 O(1) 时间 c 内查询到关联的 机架位的实例的量 ), 则执行处理 ; 否则, 从数据存储层获取相关信息, 流程如上述处理 a 和处理 b, 此处不赘述。 0085 图 4 是根据本发明实施例的一种针对资产数据的数据处理系统的方块示意图, 如 图4所示, 数据处理系统包括对外接口(或称作应用接口)、 逻辑层、 缓存层、 数据存储层、 数 据抓取层、 一致性校验模块和同步模块。 其中, 逻辑层、 缓存层、 数据存储层可以相应地具有 前文所述的特征, 此处不赘述。。
44、 0086 在本实施例中, 数据抓取层用于抓取线上资产数据 ; 一致性校验和同步模块, 用于 根据抓取的资产数据对所述数据存储层中的数据和所述缓存层中的数据进行一致性校验, 以及用于将抓取到的资产数据同步到所述数据存储层和所述缓存层中。 通过一致性校验和 同步模块能够保证数据存储层和缓存层中的数据准确性。 0087 对外接口用于接收用户的操作以对所述数据存储层中的数据进行查询或维 护。更具体而言, 对外接口可以提供资产全文搜索服务、 资产 CURD( 创建 (Create)、 更新 (Update)、 读取 (Retrieve) 和删除 (Delete) 操作、 数据关系展现服务、 资产快照查。
45、询、 CMDB 管理系统等。 0088 其中, 资产全文搜索服务利用缓存层中缓存的热点属性数据 ( 热点属性是指为 “较常用来做查询条件, 且区分度较高的属性” , 可以由相关人员根据经验或历史数据设置, 在横表中可以建立索引以便于查询 )、 结合数据库查询, 从整个资产处理系统中查找出相关 的资产数据。 数据关系展现服务, 是指通过一个起点, 例如最开始通过指定主机名查找到固 定服务器, 然后通过 REDIS 中缓存的关系数据自动关联出与该服务器相关的其他资产数据 ( 如机房、 机架位、 归属产品线等 ), 如此深度和广度遍历即可得到以该起点为中心的资产 关系图。CMDB 管理系统可以支持管。
46、理员添加资产分类、 为分类建立关系, 维护属性池、 数据 导入、 数据导出等操作处理。 无论是全文搜索服务还是数据关系展现服务, 均是基于本发明 实施例提供的缓存层与数据存储层的具体结构而实现的, 本领域技术人员还可以在此基础 上进行其它功能扩展, 本发明对此不进行详述。 0089 可选地, 在本实施例的一种实现方式中, 逻辑层还包括事务支持模块, 所述事务支 持模块用于识别事务类请求(即, 用于识别打包操作) ; 缓存层还通过REDIS的multi/exec 实现所述缓存层的事务特性。 逻辑层还可支持回滚, 例如, 通过逻辑层预先生成需要发送给 缓存层和 MemcacheQ 的指令, 同时生。
47、成逆向操作的指令, 用于支持后续的回滚需求 ( 例如, 业务层的回滚需求 )。 0090 可选地, 在本实施例的一种实现方式中, 逻辑层还可以包括用于解析应用请求的 解析模块、 用于校验域完整性和实体完整性的校验模块、 用于为资产实例分配 id 的发号器 模块等。 0091 可选地, 在本实施例的一种实现方式中, 可以利用 MySQL 的自增为资产分类及属 性池中的属性设置 id。 说 明 书 CN 104391992 A 12 10/10 页 13 0092 通过以上的实施方式的描述, 本领域的技术人员可以清楚地了解到本发明可借助 软件结合硬件平台的方式来实现。基于这样的理解, 本发明的技术。
48、方案对背景技术做出贡 献的全部或者部分可以以软件产品的形式体现出来, 该计算机软件产品可以存储在存储介 质中, 如 ROM/RAM、 磁碟、 光盘等, 包括若干指令用以使得一台计算机设备 ( 可以是个人计算 机, 服务器, 智能手机或者网络设备等 ) 执行本发明各个实施例或者实施例的某些部分所 述的方法。 0093 本发明说明书中使用的术语和措辞仅仅为了举例说明, 并不意味构成限定。本领 域技术人员应当理解, 在不脱离所公开的实施方式的基本原理的前提下, 对上述实施方式 中的各细节可进行各种变化。因此, 本发明的范围只由权利要求确定, 在权利要求中, 除非 另有说明, 所有的术语应按最宽泛合理的意思进行理解。 说 明 书 CN 104391992 A 13 1/2 页 14 图 1 图 2 说 明 书 附 图 CN 104391992 A 14 2/2 页 15 图 3 图 4 说 明 书 附 图 CN 104391992 A 15 。