在建大坝混凝土实时测温海量数据的存储方法及装置制造方法

文档序号:6626822阅读:612来源:国知局
在建大坝混凝土实时测温海量数据的存储方法及装置制造方法
【专利摘要】本发明公开了一种在建大坝混凝土实时测温海量数据的存储方法,包括以下步骤:将数据打包为多个数据块,并且根据多个数据块中每个数据块生成对应的数据块ID;检索每个数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目的地;根据最低代价的存储目的地发送存储请求以将每个数据块中数据存储至相应的存储位置,并更新存储位置映射表。本发明实施例通过将数据打包并且调度最低代价的存储目的地,实现根据最低代价的存储目的地发送存储请求以将数据进行存储的目的,充分利用现有低成本、大容量的存储设备,精细度和安全性高,提高存储效率,满足用户的使用要求。本发明还公开了一种在建大坝混凝土实时测温海量数据的存储装置。
【专利说明】在建大坝混凝土实时测温海量数据的存储方法及装置

【技术领域】
[0001] 本发明涉及计算机信息化【技术领域】,特别涉及一种在建大坝混凝土实时测温海量 数据的存储方法及装置。

【背景技术】
[0002] 相比较海量密集采集的数据而言,一个大型施工现场往往存在上万个以上的数据 采集点,采集的频率从几秒到几分钟不等,而施工期又往往在10年以上,往往导致海量数 据的累积,并且大型水利施工现场往往处于高山峡谷,导致上述单一存储点的风险大,而且 核心数据的安全性尤为重要,因为这些数据随着施工期不能再次采集,并且后续施工也要 以这些数据为基础,需要进行数据的异地灾难备份。
[0003] 相关技术中,在大型水利施工现场中使用传感器网络采集的数据例如温度、湿度、 压力和人员位置等存储在现场的数据采集终端中,有的用文件存储,有的用小型数据库系 统存储,一些开发的上层应用直接调用文件10函数或者数据库SQL(Structured Query Language,结构化查询语言)语言对这些采集上来的数据进行存储和检索。然而,相关技术 中并没有一个分布存储的完整方案,无法充分利用现有低成本、大容量的存储设备,且不能 很好地实现一定冗余,精细度不高,存在数据的安全存储和检索的隐患问题。


【发明内容】

[0004] 本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。
[0005] 为此,本发明的一个目的在于提出一种存储高效、精细度高的在建大坝混凝土实 时测温海量数据的存储方法。
[0006] 本发明的另一个目的在于提出一种在建大坝混凝土实时测温海量数据的存储装 置。
[0007] 为达到上述目的,本发明一方面实施例提出了一种在建大坝混凝土实时测温海量 数据的存储方法,包括以下步骤:将数据打包为固定大小的多个数据块,并且根据所述多个 数据块中每个数据块生成对应的数据块身份识别号ID (Identity,身份识别号);检索所述 每个数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目的地;以及根据 所述最低代价的存储目的地发送存储请求以将所述每个数据块中数据存储至相应的存储 位置,并更新存储位置映射表。
[0008] 根据本发明实施例提出的在建大坝混凝土实时测温海量数据的存储方法,通过将 数据打包为固定大小的数据块,并且检索数据块对应的存储调度节点掌握的资源池,从而 调度最低代价的存储目的地,实现根据最低代价的存储目的地发送存储请求以将数据进行 存储的目的,充分利用现有低成本、大容量的存储设备,精细度和安全性高,提高存储效率, 满足用户的使用要求。
[0009] 另外,根据本发明上述实施例的在建大坝混凝土实时测温海量数据的存储方法还 可以具有如下附加的技术特征:
[0010] 在本发明的一个实施例中,所述将数据打包为固定大小的多个数据块,并且根据 所述多个数据块中每个数据块生成对应的数据块ID,进一步包括:将所述每个数据块的属 性、数据采集点ID、数据采集块时间段、大小、内容归一化为唯一标记,以生成所述对应的数 据块ID。 toon] 进一步地,在本发明的一个实施例中,上述方法还包括:将所述每个数据块中数据 在预设周期备份至第一预设存储位置。
[0012] 进一步地,在本发明的一个实施例中,上述方法还包括:获取数据块ID ;根据所述 数据块ID与所述检索映射表获取所述数据块的存储位置;检索所述数据块对应的存储调 度节点掌握的资源池,以调度最低代价的存储目的地;以及根据所述最低代价的存储目的 地发送检索请求以根据所述存储位置调用所述数据块中数据。
[0013] 进一步地,在本发明的一个实施例中,上述方法还包括:将调用次数超过预设次数 的数据块存储至第二预设存储位置。
[0014] 本发明另一方面实施例提出了一种在建大坝混凝土实时测温海量数据的存储装 置,包括:生成模块,用于将数据打包为固定大小的多个数据块,并且根据所述多个数据块 中每个数据块生成对应的数据块ID ;第一检索模块,用于检索所述每个数据块对应的存储 调度节点掌握的资源池,以调度最低代价的存储目的地;以及存储请求模块,用于根据所述 最低代价的存储目的地发送存储请求以将所述每个数据块中数据存储至相应的存储位置, 并更新存储位置映射表。
[0015] 根据本发明实施例提出的在建大坝混凝土实时测温海量数据的存储装置,通过将 数据打包为固定大小的数据块,并且检索数据块对应的存储调度节点掌握的资源池,从而 调度最低代价的存储目的地,实现根据最低代价的存储目的地发送存储请求以将数据进行 存储的目的,充分利用现有低成本、大容量的存储设备,精细度和安全性高,提高存储效率, 满足用户的使用要求。
[0016] 另外,根据本发明上述实施例的在建大坝混凝土实时测温海量数据的存储装置还 可以具有如下附加的技术特征:
[0017] 在本发明的一个实施例中,所述生成模块还用于:将所述每个数据块的属性、数 据采集点ID、数据采集块时间段、大小、内容归一化为唯一标记,以生成所述对应的数据块 ID〇
[0018] 进一步地,在本发明的一个实施例中,上述装置还包括:备份模块,用于将所述数 据块中数据在预设周期备份至第一预设存储位置。
[0019] 进一步地,在本发明的一个实施例中,上述装置还包括:获取模块,用于获取数据 块ID ;第二检索模块,用于根据所述数据块ID与所述检索映射表获取所述数据块的存储位 置,并且检索所述数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目的 地;以及检索请求模块,用于根据所述最低代价的存储目的地发送检索请求以根据所述存 储位置调用所述数据块中数据。
[0020] 进一步地,在本发明的一个实施例中,上述装置还包括:存储模块,用于将调用次 数超过预设次数的数据块存储至第二预设存储位置。
[0021] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。

【专利附图】

【附图说明】
[0022] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变 得明显和容易理解,其中 :
[0023] 图1为根据本发明一个实施例的在建大坝混凝土实时测温海量数据的存储方法 的流程图;
[0024] 图2为根据本发明一个实施例的多层架构示意图;
[0025] 图3为根据本发明一个实施例的数据的检索方法的流程图;
[0026] 图4为根据本发明一个实施例的网络拓扑图;
[0027] 图5为根据本发明一个实施例的数据块的存储流程图;
[0028] 图6为根据本发明一个实施例的数据块的检索流程图;
[0029] 图7为根据本发明一个实施例的在建大坝混凝土实时测温海量数据的存储装置 的结构不意图;
[0030] 图8为根据本发明一个具体实施例的在建大坝混凝土实时测温海量数据的存储 装置的结构示意图;以及
[0031] 图9为根据本发明另一个实施例的在建大坝混凝土实时测温海量数据的存储装 置的结构示意图。

【具体实施方式】
[0032] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附 图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0033] 此外,术语"第一"、"第二"仅用于描述目的,而不能理解为指示或暗示相对重要性 或者隐含指明所指示的技术特征的数量。由此,限定有"第一"、"第二"的特征可以明示或 者隐含地包括一个或者更多个该特征。在本发明的描述中,"多个"的含义是两个或两个以 上,除非另有明确具体的限定。
[0034] 在本发明中,除非另有明确的规定和限定,术语"安装"、"相连"、"连接"、"固定"等 术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机 械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元 件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发 明中的具体含义。
[0035] 在本发明中,除非另有明确的规定和限定,第一特征在第二特征之"上"或之"下" 可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它 们之间的另外的特征接触。而且,第一特征在第二特征"之上"、"上方"和"上面"包括第一 特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征 在第二特征"之下"、"下方"和"下面"包括第一特征在第二特征正上方和斜上方,或仅仅表 示第一特征水平高度小于第二特征。
[0036] 下面参照附图描述根据本发明实施例提出的在建大坝混凝土实时测温海量数据 的存储方法及装置,首先将参照附图描述根据本发明实施例提出的在建大坝混凝土实时测 温海量数据的存储方法。参照图1所示,该方法包括以下步骤:
[0037] S101,将数据块打包为固定大小的多个数据块,并且根据多个数据块中每个数据 块生成对应的数据块身份识别号ID。
[0038] 其中,在本发明的一个实施例中,例如在水利施工现场中进行大坝混凝土实时测 温时,即运用埋设在混凝土内的温度传感器通过现场总线组成网络,向温度采集服务器上 报温度报文,这些内容包括节点号,温度值,变化率,采集时间等,由于采集的数据是零散 的,不定长的,且随着采集仪厂家,型号不同而变化,因此本发明实施例在存储请求之前统 一整理成固定大小的数据块,以方便检索,减少碎片化。
[0039] 进一步地,在本发明的一个实施例中,将数据块打包为固定大小的多个数据块, 并且根据多个数据块中每个数据块生成对应的数据块ID,进一步包括:将每个数据块的属 性、数据采集点ID、数据采集块时间段、大小、内容归一化为唯一标记,以生成对应的数据块 ID〇
[0040] 具体地,在本发明的一个实施例中,参照图2所示,本发明实施例的多层架构可以 分为四层:用户交互层L1、业务应用层L2、网络层L3和存储介质智能管理单元层L4,也可 以称为存贮介质智能管理单元层L4。用户交互层L1、业务应用层L2、网络层L3和存储介质 智能管理单元层L4通过合适的协议进行组网,共同完成目标计算,其采取"分而治之"的思 想,即每个层相互独立,各层之间仅通过约定好的接口进行通讯和连接。具体地,在本发明 的一个实施例中,本发明实施例从硬件上包括了各种计算机服务器和连接这些服务器的计 算机网络,从软件上包括了各种特定目的的软件组件,硬件和软件共同作用可以用于在建 大坝混凝土实时测温海量数据的高效分布存储和检索,其充分利用水利施工现场的计算机 网络和服务器,并通过合适的协议进行组网,共同完成目标计算。本发明实施例充分利用水 利施工现场的计算机网络和服务器,为海量测温数据提供分布存储和检索的高效和快速方 法,其中,检索方法在下面进行详细赘述。
[0041] 其中,用户交互层L1提供两方面的内容:一个是人机交互,提供⑶I (Graphical User Interface,简称GUI,又称图形用户接口)或者命令行两种方式供使用者使用;另外 一个是机-机交互,提供API (Application Programming Interface,应用程序编程接口) 的方式供服务需求方调用。用户交互层L1可以发起对两类服务:存储和检索的请求。业务 应用层L2为上层提供服务,包含两个核心组件,一个是业务服务点,包含了存储和检索核 心服务,另外还提供诸如运行日志,性能检测,测试及其他服务内容,另外一个是业务适配 器,业务适配器动态维护最重要的一个数据表,存储位置映射表即数据块-存储地映射表。 网络层L3为业务层提供通讯服务,包括智能路由和网络缓存。智能路由包含了一些规则定 义,比如优选离客户物理位置近的存储地点,网络缓存单元可以将最近经常被调用的数据 库存放在内存或者固态硬盘SSD(Solid State Drive,固态硬盘)中,从而存取快速,不用实 际通过网络进行传送。存储介质智能管理单元层L4提供对实际物理存储介质的管理,由一 个主控模块统一管理诸如光盘,HDD (Hard Disk Drive,硬盘驱动器),SDD等媒体介质。
[0042] 具体地,在用户交互层L1发起存储服务时,首先利用数据块的属性,数据采集点 ID,数据采集块时间段(开始时间,结束时间),大小,内容等归一化为唯一标记,即数据块 ID〇
[0043] S102,检索每个数据块对应的存储调度节点掌握的资源池,以调度最低代价的存 储目的地。
[0044] 在本发明的一个实施例中,其次利用当前数据块存储调度节点掌握的资源池,选 取代价最低的存储目的地。需要说明的是,此处所指代价最低是指存储更高效的存储目的 地。
[0045] S103,根据最低代价的存储目的地发送存储请求以将每个数据块中数据存储至相 应的存储位置,并更新存储位置映射表。
[0046] 在本发明的一个实施例中,网络层L3承担该数据块的有效传送工作,同时处理其 中的发送失败,成功,重传情况。具体地,存储介质智能管理单元层L4接收网络层L3传来 的存储请求,将具体数据块中数据根据资源配备发送到物理介质里,可能是HDD,也可能是 SDD等,并且在存储任务成功之后,更新存储块-存储位置对应映射表即位置映射表,其中, 核心信息存储块-存储位置对应映射表即位置映射表是动态维护的,其代价(存储,检索) 信息是动态变化的。网络调度模块也定时发送保活心跳报文,用于维护各个网络节点失效 状态,剔除一些已经损坏的存储节点。
[0047] 进一步地,在本发明的一个实施例中,上述方法还包括:将数据块中每个数据在预 设周期备份至第一预设存储位置。具体地,为了容错的目的,数据块存储是冗余的,不仅包 含在本地的冗余备份,还要定期利用网络进行异地备份,异地备份优选在总部的机房里,即 第一预设存储位置优选为总部的机房。本发明实施例充分利用现有低成本,大容量的存储 设备,采用本地化分布式处理的方式实现一定冗余的存储系统,同时结合网络,实现了异地 数据存储,以客户端/服务器的模式为在建大坝混凝土实时测温系统的海量数据提供高效 存储和快速检索服务。
[0048] 进一步地,在本发明的一个实施例中,参照图3所示,在此对检索方法进行赘述。 其中,上述方法还包括以下步骤:
[0049] S301,获取数据块ID。
[0050] S302,根据数据块ID与检索映射表获取数据块的存储位置。
[0051] 在本发明的一个实施例中,首先利用数据块ID在数据库ID和存储位置匹配表里 快速进行查找,以获取数据块的存储位置。
[0052] S303,检索数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目 的地。
[0053] 进一步地,在本发明的一个实施例中,在获取数据块的存储位置之后,利用当前数 据块存储调度节点掌握的资源池,选取代价最低的存储目的地。
[0054] S304,根据最低代价的存储目的地发送检索请求以根据存储位置调用数据块中数 据。
[0055] 进一步地,在本发明的一个实施例中,网络层L3承担该数据块的有效传送工作, 同时处理其中的发送失败,成功,重传情况。具体地,存储介质智能管理单元层L4接收网络 层L3传来的检索请求,将具体数据从物理介质里发送到网络层L3,根据资源配备,这些物 理介质可能是硬盘HDD,也可能是固态硬盘SDD等。
[0056] 在本发明的一个实施例中,上述方法还包括:将调用次数超过预设次数的数据块 存储至第二预设存储位置。具体地,网络层L3引入网络缓存单元装置可以将最近经常被调 用的数据块存放在内存中,即第二预设存储位置优选为内存中。本发明实施例通过将经常 被调用的数据块存放在内存中,从而存取速度快,不用实际通过网络进行传送,提高用户的 使用体验。
[0057] 在具体应用中,例如在水利施工现场应用中,本发明实施例可以实现对于在建大 坝混凝土实时测温海量数据的高效存储和快速检索,结构简单,易于实现,并且解决了目前 水利施工现场中关键业务数据的安全存储和检索的隐患问题,对于其他行业也有很好的借 鉴意义。下面参照附图作进一步赘述。
[0058] 在本发明的一个实施例中,参照图4所示,图4所示为一个典型的现场实施网络 图,其可以分为三个区域:中心设备机房,客户端应用场合和异地存储系统。具体地,其包含 了如下网元:中心设备机房包括:路由器与防火墙,用于连接各个服务器单元;数据存储调 度服务器:此服务器单元维护数据块-目的地映射信息表即位置映射表,决定当前请求的 数据库存放在哪个实际服务器上,以及该服务器还周期性的将本地的数据块通过网络发往 异地进行存储;数据存储数据服务器:此服务器单元维护实际存储各个数据块,其中,为了 维护方便,统一采用商用数据库系统;数据存储应用服务器:此服务器单元为上层提供服 务,包括基于API调用的服务实体和WEB方式为人机交互的服务实体。
[0059] 就现有技术而言,在企业大型多单元分布系统中,一般通过网络套接字(Socket) 协议作为应用单元之间进行数据交换的通常方法,基本上采取的是自定义报文格式,无论 是定长或者分隔符的,但是,由于这些自定义的信息格式缺乏统一标准,随意性大,通用性, 灵活性不足,不能满足企业IT建设周期长,新技术层出不穷的现实情况的需求,随着近年 来可扩展标记语言(Extensible Markup Language,XML)的普及,现有或者将来企业开发的 系统都推荐应用标准的XML作为相应的应用的数据交换标准。
[0060] 具体地,在本发明的一个实施例中,本发明实施例的存储API定义如下:
[0061] 请求 <?xmlvcrsion=M 1.0Mcncoding=Mull-8M ?> 〈message〉 <head> <mcssagc_id>DATA_PUT_REQ</mcssagc_id>; <vcrsion> 1.0</vcrsion> <limc_lamp>2013-12-13:00:03:45:234</timc_tamp> <scq_no> 11 </scq_no> </hcad> <body> <data>no</data> </body> <lail>
[0062] 〈checksum〉123〈/checksum〉 </lail> </mcssagc> 应答(成功) <?xnilvcrsion:=" 1 .Onencodmg=,'uli-8'i ?> <mcssagc> <hcad> <messagc_id>D/\TA_PUT_ACK</message_id>; <vcrsion> 1.0</vcrsion> <lirne_lamp>2013-12-13:00:03:45:234</limc_Uunp> <seq_no>l l</seq_no> </hcad> <body> <rcsull>ok</rcsxxlt> </body> <iail> </l.ail> </message> 应答(失败) <?xmIvcrsion_n 1.0ncncoding="utf-8,i ?> 〈message〉 <hcad> <messagc_id>DATA_PL:T_ACK</nicssagc_itl>; <version> 1 .()</version> <iimc_lamp>2013-12-! 3:00:03:45:234</lime_tamp> <scq_no>l l</seq_no> </hcad> <body> <rcsult>ko</rcsuli> <ko codc>234</ko_code> </body> <lail>
[0063] </tail> 〈/message〉
[0064] 进一步地,在本发明的一个实施例中,本发明实施例的检索存储API定义如下:
[0065] 请求 <?xmlvcrsion="l .0Mcncoding=!,uif-8i! ?> <mcssagc> <hcad> <mcssagc_icl>DATA_GET_REQ</mcssagc_id>; <vcrsion> 1.0</vcrsion> <timc tamp>2()13-12-13:00:()3:45:234</timc lamp> <scq_no> 11 </scq_no> </hcad> <body> <data_id>0lE fad5b-d9cb-469i-al65-70867728950c</data_id> </body> <tail> <chccksum>123</checksum> </tail> 〈/message〉 应答(成功) <?xmlvcrsion=Ml .0Mcncoding=,,utf-8n ?> 〈message〉 <hcad> <mcssage_id>DATA_ACK</message_id>; <vcrsion> 1.0</vcrsion> <timc_tamp>2013-12-13:00:03:45:234</iimc_lamp> <scq_no>l l</scq_no> </hcad> <body> <dala_id>0t^rad5b-d9cb-469t-al65-70867728950c</datajd> <dnla>MjAxMynxMiOxM/owMn〇wM/oONTovM/Qgbm9k7WlkOjFwMDIwMjAyMDM g Μ TI u N A==</dal a>
[0066] <result>ok</result> </body> <tail> </iail> </mcssagc> 应答(失败) <?xmlvcrsion="lO"cncoding="uU、-8" ?> 〈message〉 <hcad> 〈message-id>DATA_ACl〈〈/'message-id>; 〈version〉1.0</version> <time_tamp>2013-12-13:00:03:45 ;234</time_tamp> <scq_no> 11 </scq_no> </hcad> <body> <data_id>0fBfad5b-d9cb-469f-al65-70867728950c</data_id> <rcsull>ko</rcsull> <ko_cocic> 133</ko_codc> </body> <iail> </tai!> 〈/message〉
[0067] 下面详细阐述两个服务即存储与检索的流程。
[0068] 在本发明的一个实施例中,参照图5所示,数据块存储流程包括以下步骤:
[0069] S501,服务请求开始。
[0070] S502,接收数据块,生成数据块ID。
[0071] 在本发明的实施例中,利用数据块的属性,数据采集点ID,数据采集块时间段(开 始时间,结束时间),大小,内容等归一化为唯一标记,以生成数据块ID。
[0072] S503,检索资源池,选取代价最低的存储目的地。
[0073] 在本发明的实施例中,利用当前数据块存储调度节点掌握的资源池,选取代价最 低的存储目的地。
[0074] S504,网络层L3传送到目的地。
[0075] S505,判断是否成功。如果是,则进入步骤S506 ;如果否,则返回步骤S503。
[0076] 需要说明的是,执行步骤S505的同时执行步骤S507。
[0077] 在本发明的实施例中,如果成功,则存储介质智能管理单元层L4接收网络层L3 传来的存储请求,将具体数据发送到物理介质里,根据资源配备,可能是HDD,也可能是SDD 等。
[0078] S506,更新映射表。
[0079] 在本发明的实施例中,存储任务成功后,更新存储块-存储位置对应映射表即位 置映射表。
[0080] S507,判断传送次数是否大于N。如果是,则进入步骤S508 ;如果否,则进入步骤 S505。
[0081] 在本发明的实施例中,网络层L3承担该数据块的有效传送工作,同时处理其中的 发送失败,成功,重传情况。优选的,可以尝试N次,如果N次失败,报告调度模块,重新调度, 同时更新映射表,增加代价值,即不优选。如果此次失败,转到重新调度。
[0082] S508,此次任务失败。
[0083] S509,本次任务结束。
[0084] 进一步地,在本发明的一个实施例中,参照图6所示,数据块检索流程包括以下步 骤:
[0085] S601,服务请求开始。
[0086] 在本发明的实施例中,利用数据块ID,在数据库ID和存储位置匹配表里快速进行 查找。
[0087] S602,检索资源池,选取代价最低的存储目的地。
[0088] 在本发明的实施例中,利用当前数据块存储调度节点掌握的资源池数据,选取代 价最低的存储源地即存储目的地。一般的,这些资源往往可以选用物理链路较短的节点。
[0089] S603,网络层L3传送请求到目的地。
[0090] S604,判断是否成功。如果是,则进入步骤S605 ;如果否,则返回步骤S602。
[0091] S605,获取数据。
[0092] 在本发明的实施例中,存储介质智能管理单元层L4接收网络层L3传来的检索请 求,将具体数据从物理介质里发送到网络层L3,根据资源配备,可能是HDD,也可能是SDD 等。
[0093] S606,判断传送次数是否大于N。如果是,则进入步骤S607 ;如果否,则进入步骤 S604。
[0094] 在本发明的实施例中,网络层L3承担该数据块的有效传送工作,同时处理其中的 发送失败,成功,重传情况。优选的,可以尝试N次,如果N次失败,报告调度模块,重新调度, 同时更新映射表,增加代价值,即不优选。如果此次失败,则重新调度。
[0095] S607,此次任务失败,重新选取存储单元,返回步骤S602。
[0096] S608,本次任务结束。
[0097] 本发明实施例所述可以应用于在建大坝混凝土实时测温海量数据的高效存储和 快速检索方法和系统,可以有效的保证了水利施工现场信息化水平的进一步提升,实现了 对于在建大坝混凝土实时测温海量数据的高效存储和快速检索,结构简单,易于实现,且解 决了目前水利施工现场中关键业务数据的安全存储和检索的隐患问题。
[0098] 根据本发明实施例提出的在建大坝混凝土实时测温海量数据的存储方法,通过将 数据打包为固定大小的数据块,并且检索数据块对应的存储调度节点掌握的资源池,从而 调度最低代价的存储目的地,实现根据最低代价的存储目的地发送存储请求以将数据进行 存储的目的,以及将数据进行备份,充分利用现有低成本、大容量的存储设备,很好地实现 一定冗余,精细度和安全性高,提高存储效率,满足用户的使用要求。另外,本发明实施通过 根据数据块生成的数据块ID进行检索,速度快、效率高,且消除了数据的安全存储和检索 的隐患问题,满足用户的使用要求,提高用户的使用体验。
[0099] 其次参照附图描述根据本发明实施例提出的在建大坝混凝土实时测温海量数据 的存储装置。参照图7所示,该装置100包括:生成模块10、第一检索模块20与存储请求 模块30。
[0100] 其中,生成模块10用于将数据打包为固定大小的多个数据块,并且根据多个数据 块中每个数据块生成对应的数据块ID。第一检索模块20用于检索每个数据块对应的存储 调度节点掌握的资源池,以调度最低代价的存储目的地。存储请求模块30用于根据最低代 价的存储目的地发送存储请求以将每个数据块中数据存储至相应的存储位置,并更新存储 位置映射表。
[0101] 在本发明的一个实施例中,例如在水利施工现场中进行大坝混凝土实时测温时, 即运用埋设在混凝土内的温度传感器通过现场总线组成网络,向温度采集服务器上报温度 报文,这些内容包括节点号,温度值,变化率,采集时间等,由于采集的数据是零散的,不定 长的,且随着采集仪厂家,型号不同而变化,因此本发明实施例在存储请求之前统一整理成 固定大小的数据块,以方便检索,减少碎片化。
[0102] 进一步地,在本发明的一个实施例中,生成模块10还用于:将每个数据块的属性、 数据采集点ID、数据采集块时间段、大小、内容归一化为唯一标记,以生成对应的数据块 ID〇
[0103] 具体地,在本发明的一个实施例中,参照图2所示,本发明实施例的多层架构可以 分为四层:用户交互层L1、业务应用层L2、网络层L3和存储介质智能管理单元层L4。用户 交互层L1、业务应用层L2、网络层L3和存储介质智能管理单元层L4通过合适的协议进行 组网,共同完成目标计算,其采取"分而治之"的思想,即每个层相互独立,各层之间仅通过 约定好的接口进行通讯和连接。具体地,在本发明的一个实施例中,本发明实施例从硬件上 包括了各种计算机服务器和连接这些服务器的计算机网络,从软件上包括了各种特定目的 的软件组件,硬件和软件共同作用可以用于在建大坝混凝土实时测温海量数据的高效分布 存储和检索,其充分利用水利施工现场的计算机网络和服务器,并通过合适的协议进行组 网,共同完成目标计算。本发明实施例充分利用水利施工现场的计算机网络和服务器,为海 量测温数据提供分布存储和检索的高效和快速方法,其中,检索方法在下面进行详细赘述。
[0104] 其中,用户交互层L1提供两方面的内容:一个是人机交互,提供⑶I (Graphical User Interface,简称GUI,又称图形用户接口)或者命令行两种方式供使用者使用;另外 一个是机-机交互,提供API (Application Programming Interface,应用程序编程接口) 的方式供服务需求方调用。用户交互层L1可以发起对两类服务:存储和检索的请求。业务 应用层L2为上层提供服务,包含两个核心组件,一个是业务服务点,包含了存储和检索核 心服务,另外还提供诸如运行日志,性能检测,测试及其他服务内容,另外一个是业务适配 器,业务适配器动态维护最重要的一个数据表,存储位置映射表即数据块-存储地映射表。 网络层L3为业务层提供通讯服务,包括智能路由和网络缓存。智能路由包含了一些规则定 义,比如优选离客户物理位置近的存储地点,网络缓存单元可以将最近经常被调用的数据 库存放在内存或者固态硬盘SSD(Solid State Drive,固态硬盘)中,从而存取快速,不用实 际通过网络进行传送。存储介质智能管理单元层L4提供对实际物理存储介质的管理,由一 个主控模块统一管理诸如光盘,HDD (Hard Disk Drive,硬盘驱动器),SDD等媒体介质。
[0105] 具体地,在用户交互层L1发起存储服务时,首先利用数据块的属性,数据采集点 ID,数据采集块时间段(开始时间,结束时间),大小,内容等归一化为唯一标记,即数据块 ID〇
[0106] 在本发明的一个实施例中,其次利用当前数据块存储调度节点掌握的资源池,选 取代价最低的存储目的地。需要说明的是,此处所指代价最低是指存储更高效的存储目的 地。
[0107] 在本发明的一个实施例中,网络层L3承担该数据块的有效传送工作,同时处理其 中的发送失败,成功,重传情况。具体地,存储介质智能管理单元层L4接收网络层L3传来 的存储请求,将具体数据块中数据根据资源配备发送到物理介质里,可能是HDD,也可能是 SDD等,并且在存储任务成功之后,更新存储块-存储位置对应映射表即位置映射表,其中, 核心信息存储块-存储位置对应映射表即位置映射表是动态维护的,其代价(存储,检索) 信息是动态变化的。网络调度模块也定时发送保活心跳报文,用于维护各个网络节点失效 状态,剔除一些已经损坏的存储节点。
[0108] 进一步地,在本发明的一个实施例中,参照图8所示,上述存储装置100还包括:备 份模块40。其中,备份模块40用于将数据块中每个数据在预设周期备份至第一预设存储位 置。具体地,为了容错的目的,数据块存储是冗余的,不仅包含在本地的冗余备份,还要定期 利用网络进行异地备份,异地备份优选在总部的机房里,即第一预设存储位置优选为总部 的机房。本发明实施例充分利用现有低成本,大容量的存储设备,采用本地化分布式处理的 方式实现一定冗余的存储系统,同时结合网络,实现了异地数据存储,以客户端/服务器的 模式为在建大坝混凝土实时测温系统的海量数据提供高效存储和快速检索服务。
[0109] 进一步地,在本发明的一个实施例中,参照图9所示,在此对检索方法进行赘述。 其中,上述存储装置100还包括:获取模块50、第二检索模块60与检索请求模块70。
[0110] 其中,获取模块50用于获取数据块ID。第二检索模块60用于根据数据块ID与检 索映射表获取数据块的存储位置,并且检索数据块对应的存储调度节点掌握的资源池,以 调度最低代价的存储目的地。检索请求模块70用于根据最低代价的存储目的地发送检索 请求以根据存储位置调用数据块中数据。
[0111] 在本发明的一个实施例中,首先利用数据块ID在数据库ID和存储位置匹配表里 快速进行查找,以获取数据块的存储位置。
[0112] 进一步地,在本发明的一个实施例中,在获取数据块的存储位置之后,利用当前数 据块存储调度节点掌握的资源池,选取代价最低的存储目的地。
[0113] 进一步地,在本发明的一个实施例中,网络层L3承担该数据块的有效传送工作, 同时处理其中的发送失败,成功,重传情况。具体地,存储介质智能管理单元层L4接收网络 层L3传来的检索请求,将具体数据从物理介质里发送到网络层L3,根据资源配备,这些物 理介质可能是硬盘HDD,也可能是固态硬盘SDD等。
[0114] 在本发明的一个实施例中,参照图9所示,上述存储装置100还包括:存储模块 80。其中,存储模块80用于将调用次数超过预设次数的数据块存储至第二预设存储位置。 具体地,网络层L3引入网络缓存单元装置可以将最近经常被调用的数据块存放在内存中, 即第二预设存储位置优选为内存中。本发明实施例通过将经常被调用的数据块存放在内存 中,从而存取速度快,不用实际通过网络进行传送,提高用户的使用体验。
[0115] 在具体应用中,例如在水利施工现场应用中,本发明实施例可以实现对于在建大 坝混凝土实时测温海量数据的高效存储和快速检索,结构简单,易于实现,并且解决了目前 水利施工现场中关键业务数据的安全存储和检索的隐患问题,对于其他行业也有很好的借 鉴意义。下面参照附图作进一步赘述。
[0116] 在本发明的一个实施例中,参照图4所示,图4所示为一个典型的现场实施网络 图,其可以分为三个区域:中心设备机房,客户端应用场合和异地存储系统。具体地,其包含 了如下网元:中心设备机房包括:路由器与防火墙,用于连接各个服务器单元;数据存储调 度服务器:此服务器单元维护数据块-目的地映射信息表即位置映射表,决定当前请求的 数据库存放在哪个实际服务器上,以及该服务器还周期性的将本地的数据块通过网络发往 异地进行存储;数据存储数据服务器:此服务器单元维护实际存储各个数据块,其中,为了 维护方便,统一采用商用数据库系统;数据存储应用服务器:此服务器单元为上层提供服 务,包括基于API调用的服务实体和WEB方式为人机交互的服务实体。
[0117] 就现有技术而言,在企业大型多单元分布系统中,一般通过网络套接字(Socket) 协议作为应用单元之间进行数据交换的通常方法,基本上采取的是自定义报文格式,无论 是定长或者分隔符的,但是,由于这些自定义的信息格式缺乏统一标准,随意性大,通用性, 灵活性不足,不能满足企业IT建设周期长,新技术层出不穷的现实情况的需求,随着近年 来可扩展标记语言(Extensible Markup Language,XML)的普及,现有或者将来企业开发的 系统都推荐应用标准的XML作为相应的应用的数据交换标准。
[0118] 具体地,在本发明的一个实施例中,本发明实施例的存储API定义如下:
[0119] 请求 <?xmlvcrsion=,' 1.0Mcncoding-'uti-8M ?> <mcssagc> <head> <mcssagc_id>DATA_PUT_REQ</mcssagc_id>; <vcrsion> 1.0</vcrsion> <timc_tamp>2013-12-13:00:03:45:234</timc_tamp> <scq_no>l l</scq_no> </hcad> <body> <data> n 〇</data> </body> <iail> <chccksum> 123</chccksum> </tai!> 〈/message〉 应答(成功) <?xmlvcrsion=,!l .0Mcncoding="uir-8,! ?> <mcssagc> <hcad>
[0120] <mcssagc_id>DATA_PUT_ACK</mcssagc_id>; <vcrsion> 1.0</vcrsion> <limc_iamp>2013-12-13:00:03:45:234</limc_tamp> <scq_no> 11 </scq_no> </hcad> <body> <rcsult>ok</rcsu!l> </body> <lail> </lail> </mcssagc> 应答(失败) <?xmlvcrsion=!, 1.0,,cncoding="ut(-8" ?> 〈message〉 <head> <mcssagc_id>DATA_PUT_ACK</mcssagc_id>; 〈version〉1 ,()</version> <timc_tamp>2013-12-13:00:03:45:234</time_tamp> <scq_no> 11 </scq_no> </hcad> <body> <rcs u 11> k 〇</ rcsu 11> <ko_codc>234</ko_codc> </body> <lail> </lail> 〈/message〉
[0121] 进一步地,在本发明的一个实施例中,本发明实施例的检索存储API定义如下:
[0122] 请求 <?xmlvcrsion=,! 1.0Mcncoding=Mulf-8i! ?> 〈message〉 <hcad>
[0123] <mcssago_id>DATA_GET_REQ</mcssagc_id>; <vcrsion> 1.0</vcrsion> <iimc_lamp >2013-12-13:00:03:45:234</limc_tamp> <scq_no>l l</scq_no> </head> <body> <data_id>0l}irad5b-d9cb-469r-al65-70867728950c</dala_id> </body> <tail> 〈checksum〉123</checksum> </tail> </mcssagc> 应答(成功) <?xm!version-" 1.0ncncoding-nuir-8" ?> <mcssagc> <head> <mcssagc_id>DATA_ACK</mcssagc_id>: <vcrsion> 1.0</vcrsion> <iimc lamp>2013-12-13:00:03:45:234</nmc lamp> <scq_no>l l</scq_no> </hcad> <body> <daia_id>0.0;irad5b-d9cb-469r-al65-70867728950c</daia_id> <data>MjAx\4yOxMiOxMzowMDowMzoONToyMzQgbm9kZ\VlkOjEwMDIwMjAyMDM gMTI uN A=</data> <result>ok</result> </body> <tail> </lail> </messagc> 应答(失败) <?xmlvcrsion="l .0"cncocling="utr-8" ?>
[0124] 〈message〉 <hcad> <mcssagc_id>DATA_ACK</mcssagc_id>; <vcrsion> 1.0</vcrsion> <timc_tamp>2013-12-13:00:03;45:234</timc_lamp> <scq_no> 11 </scq_no> 〈/'head〉 <body> <data_id>01^rad5b~d9cb-469r-al65-70867728950c</data_id> <rcsult>ko</rcsult> <ko-code〉133</ko-code〉 </body> <tail> </tai!> 〈/message〉
[0125] 下面详细阐述两个服务即存储与检索的流程。
[0126] 在本发明的一个实施例中,参照图5所示,数据块存储流程包括以下步骤:
[0127] S501,服务请求开始。
[0128] S502,接收数据块,生成数据块ID。
[0129] 在本发明的实施例中,利用数据块的属性,数据采集点ID,数据采集块时间段(开 始时间,结束时间),大小,内容等归一化为唯一标记,以生成数据块ID。
[0130] S503,检索资源池,选取代价最低的存储目的地。
[0131] 在本发明的实施例中,利用当前数据块存储调度节点掌握的资源池,选取代价最 低的存储目的地。
[0132] S504,网络层L3传送到目的地。
[0133] S505,判断是否成功。如果是,则进入步骤S506 ;如果否,则返回步骤S503。
[0134] 需要说明的是,执行步骤S505的同时执行步骤S507。
[0135] 在本发明的实施例中,如果成功,则存储介质智能管理单元层L4接收网络层L3 传来的存储请求,将具体数据发送到物理介质里,根据资源配备,可能是HDD,也可能是SDD 等。
[0136] S506,更新映射表。
[0137] 在本发明的实施例中,存储任务成功后,更新存储块-存储位置对应映射表即位 置映射表。
[0138] S507,判断传送次数是否大于N。如果是,则进入步骤S508 ;如果否,则进入步骤 S505。
[0139] 在本发明的实施例中,网络层L3承担该数据块的有效传送工作,同时处理其中的 发送失败,成功,重传情况。优选的,可以尝试N次,如果N次失败,报告调度模块,重新调度, 同时更新映射表,增加代价值,即不优选。如果此次失败,转到重新调度。
[0140] S508,此次任务失败。
[0141] S509,本次任务结束。
[0142] 进一步地,在本发明的一个实施例中,参照图6所示,数据块检索流程包括以下步 骤:
[0143] S601,服务请求开始。
[0144] 在本发明的实施例中,利用数据块ID,在数据库ID和存储位置匹配表里快速进行 查找。
[0145] S602,检索资源池,选取代价最低的存储目的地。
[0146] 在本发明的实施例中,利用当前数据块存储调度节点掌握的资源池数据,选取代 价最低的存储源地即存储目的地。一般的,这些资源往往可以选用物理链路较短的节点。
[0147] S603,网络层L3传送请求到目的地。
[0148] S604,判断是否成功。如果是,则进入步骤S605 ;如果否,则返回步骤S602。
[0149] S605,获取数据。
[0150] 在本发明的实施例中,存储介质智能管理单元层L4接收网络层L3传来的检索请 求,将具体数据从物理介质里发送到网络层L3,根据资源配备,可能是HDD,也可能是SDD 等。
[0151] S606,判断传送次数是否大于N。如果是,则进入步骤S607 ;如果否,则进入步骤 S604。
[0152] 在本发明的实施例中,网络层L3承担该数据块的有效传送工作,同时处理其中的 发送失败,成功,重传情况。优选的,可以尝试N次,如果N次失败,报告调度模块,重新调度, 同时更新映射表,增加代价值,即不优选。如果此次失败,则重新调度。
[0153] S607,此次任务失败,重新选取存储单元,返回步骤S602。
[0154] S608,本次任务结束。
[0155] 本发明实施例所述可以应用于在建大坝混凝土实时测温海量数据的高效存储和 快速检索方法和系统,可以有效的保证了水利施工现场信息化水平的进一步提升,实现了 对于在建大坝混凝土实时测温海量数据的高效存储和快速检索,结构简单,易于实现,且解 决了目前水利施工现场中关键业务数据的安全存储和检索的隐患问题。
[0156] 根据本发明实施例提出的在建大坝混凝土实时测温海量数据的存储装置,通过将 数据打包为固定大小的数据块,并且检索数据块对应的存储调度节点掌握的资源池,从而 调度最低代价的存储目的地,实现根据最低代价的存储目的地发送存储请求以将数据进行 存储的目的,以及将数据进行备份,充分利用现有低成本、大容量的存储设备,很好地实现 一定冗余,精细度和安全性高,提高存储效率,满足用户的使用要求。另外,本发明实施通过 根据数据块生成的数据块ID进行检索,速度快、效率高,且消除了数据的安全存储和检索 的隐患问题,满足用户的使用要求,提高用户的使用体验。
[0157] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括 一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部 分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺 序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明 的实施例所属【技术领域】的技术人员所理解。
[0158] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是 用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以 供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指 令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置 或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传 播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使 用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个 布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读 存储器(R0M),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光 盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其 他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必 要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器 中。
[0159] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述 实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件 或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下 列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路 的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场 可编程门阵列(FPGA)等。
[0160] 本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步 骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介 质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0161] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。
[0162] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0163] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何 的一个或多个实施例或示例中以合适的方式结合。
[0164] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例 性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨 的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1. 一种在建大坝混凝土实时测温海量数据的存储方法,其特征在于,包括以下步骤: 将数据打包为固定大小的多个数据块,并且根据所述多个数据块中每个数据块生成对 应的数据块身份识别号ID ; 检索所述每个数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目的 地;以及 根据所述最低代价的存储目的地发送存储请求以将所述每个数据块中数据存储至相 应的存储位置,并更新存储位置映射表。
2. 如权利要求1所述的在建大坝混凝土实时测温海量数据的存储方法,其特征在于, 所述将数据打包为固定大小的多个数据块,并且根据所述多个数据块中每个数据块生成对 应的数据块ID,进一步包括: 将所述每个数据块的属性、数据采集点ID、数据采集块时间段、大小、内容归一化为唯 一标记,以生成所述对应的数据块ID。
3. 如权利要求1所述的在建大坝混凝土实时测温海量数据的存储方法,其特征在于, 还包括:将所述每个数据块中数据在预设周期备份至第一预设存储位置。
4. 如权利要求1所述的在建大坝混凝土实时测温海量数据的存储方法,其特征在于, 还包括: 获取数据块ID ; 根据所述数据块ID与所述检索映射表获取所述数据块的存储位置; 检索所述数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目的地; 以及 根据所述最低代价的存储目的地发送检索请求以根据所述存储位置调用所述数据块 中数据。
5. 如权利要求4所述的在建大坝混凝土实时测温海量数据的存储方法,其特征在于, 还包括:将调用次数超过预设次数的数据块存储至第二预设存储位置。
6. -种在建大坝混凝土实时测温海量数据的存储装置,特征在于,包括: 生成模块,用于将数据打包为固定大小的多个数据块,并且根据所述多个数据块中每 个数据块生成对应的数据块ID ; 第一检索模块,用于检索所述每个数据块对应的存储调度节点掌握的资源池,以调度 最低代价的存储目的地;以及 存储请求模块,用于根据所述最低代价的存储目的地发送存储请求以将所述每个数据 块中数据存储至相应的存储位置,并更新存储位置映射表。
7. 如权利要求6所述的在建大坝混凝土实时测温海量数据的存储装置,其特征在于, 所述生成模块还用于:将所述每个数据块的属性、数据采集点ID、数据采集块时间段、大 小、内容归一化为唯一标记,以生成所述对应的数据块ID。
8. 如权利要求6所述的在建大坝混凝土实时测温海量数据的存储装置,其特征在于, 还包括: 备份模块,用于将所述数据块中数据在预设周期备份至第一预设存储位置。
9. 如权利要求6所述的在建大坝混凝土实时测温海量数据的存储装置,其特征在于, 还包括: 获取模块,用于获取数据块ID ; 第二检索模块,用于根据所述数据块ID与所述检索映射表获取所述数据块的存储位 置,并且检索所述数据块对应的存储调度节点掌握的资源池,以调度最低代价的存储目的 地;以及 检索请求模块,用于根据所述最低代价的存储目的地发送检索请求以根据所述存储位 置调用所述数据块中数据。
10.如权利要求9所述的在建大坝混凝土实时测温海量数据的存储装置,其特征在于, 还包括: 存储模块,用于将调用次数超过预设次数的数据块存储至第二预设存储位置。
【文档编号】G06F12/02GK104268087SQ201410466217
【公开日】2015年1月7日 申请日期:2014年9月12日 优先权日:2014年9月12日
【发明者】林鹏, 李庆斌, 高向友 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1