数据存储、检索方法、装置、服务器和存储介质与流程

文档序号:16628310发布日期:2019-01-16 06:19阅读:179来源:国知局
数据存储、检索方法、装置、服务器和存储介质与流程

本发明实施例涉及大数据处理技术领域,尤其涉及一种数据存储、检索方法、装置、服务器和存储介质。



背景技术:

随着大数据存储技术的飞速发展和企业信息化的快速普及,各企业拥有越来越多的、各式各样的电子文件和数据信息,面临着“信息爆炸”的挑战,并且不同的数据信息之间存在一定的关联性。对于企业员工而言,想要找到企业内部的数据信息,需要搜索多种资料,包括数据库中存储的结构化数据,以及邮件、网页、文档中的非结构化数据等,并且需要对数据信息进行关联和综合分析,才能针对不同的业务需求给出完善的搜索结果。

目前关于大数据存储的方案大多是基于hadoophbase或cassandra等kv库的大规模解决方案,这种方案虽然能够存储超大规模的数据,但由于是基于kv库所以对olap(onlineanalyticalprocessing,联机分析处理)的支持并不完善,虽然也有sql-on-hadoop的解决方案,但其核心原理还是mapreduce等离线运算技术,实时性很差。例如nosqldatabase,在面向分析型应用时,需要基于大范围的数据做计算,甚至全表扫描,速度较慢,并且由于是通过key-value的方式对数据进行查询,一个key查询一个value,因此其存储方式不利于进行复杂条件的查询。又如搜索引擎(searchengine),其没有sql支持,难以对接企业的数据应用和bi(businessintelligence,商业智能)工具,无法存储和整合全面的业务信息。又如sql-on-hadoop,由于没有索引支持,不利于对有过滤条件的复杂数据进行查询。又如并行数据库(paralleldatabase),其不支持全文数据的检索,无法满足对不同类型的数据进行全面的存储和检索的需求。

总体来说,数据库中需要存储的数据具有不同的类型,并且不同类型的数据性质差异较大,现有的存储方法不能针对各种类型的数据进行全面的存储,缺乏对业务系统完善的功能支持,并且通常对于不同类型的数据需要不同的硬件设备进行管理,从而增加了数据存储的成本。



技术实现要素:

本发明实施例提供一种数据存储、检索方法、装置、服务器和存储介质,以实现对不同类型数据的统一存储,可以降低成本。

第一方面,本发明实施例提供一种数据存储方法,包括:

对待存储数据进行预处理;

根据所述待存储数据的数据类型将预处理后的待存储数据存入对应的数据库。

进一步的,在对所述待存储数据进行预处理之前,还包括:

获取原始数据;

根据设定标准对所述原始数据进行标准化处理;

对标准化处理后的原始数据进行质量监测,获得所述待存储数据。

进一步的,所述对待存储数据进行预处理,包括:

对所述待存储数据进行清洗处理和/或关联处理和/或去重处理和/或预警处理。

进一步的,对所述待存储数据进行预警处理,包括:

从缓存数据库中读取预警信息;

将所述预警信息与所述待存储数据进行比对;

根据比对结果对所述待存储数据进行预警处理。

进一步的,所述数据类型包括结构化数据、非结构化数据和全文数据。

进一步的,若所述待存储数据为结构化数据,则根据所述数据类型将所述待存储数据存入对应的数据库,包括:

将所述结构化数据保存至本地磁盘指定文件目录中;

将所述结构化数据由所述本地磁盘指定文件目录中转移至设定加载工具进行加载;

根据设定配置文件将加载后的结构化数据写入结构化数据库。

进一步的,若所述待存储数据为非结构化数据或全文数据,则根据所述数据类型将所述待存储数据存入对应的数据库,包括:

将所述非结构化数据存入非结构化数据库,或者将所述全文数据存入全文数据库。

进一步的,在将所述非结构化数据存入非结构化数据库之后,还包括:

获取所述非结构化数据的存储地址;

将所述存储地址写入结构化数据中。

第二方面,本发明实施例提供一种数据检索方法,包括:

调用检索接口,并通过所述检索接口传入检索参数;

根据所述检索参数的类型检索对应的数据。

进一步的,所述根据所述检索参数的类型检索对应的数据,包括:

若所述检索参数为结构化数据检索参数,则根据所述结构化数据检索参数调用结构化数据库中的api函数;根据所述api函数检索目标结构化数据;

若所述检索参数为非结构化数据检索参数,则根据所述非结构化数据检索参数检索目标非结构化数据;

若所述检索参数为全文参数,则根据全文参数检索目标全文数据。

第三方面,本发明实施例提供一种数据存储装置,包括:

预处理模块,用于对数据进行预处理;

入库模块,用于根据所述待存储数据的数据类型将预处理后的待存储数据存入对应的数据库。

第四方面,本发明实施例提供一种数据检索装置,包括:

检索参数传入模块,用于调用检索接口,并通过所述检索接口传入检索参数;

检索模块,用于根据所述检索参数的类型检索对应的数据。

第五方面,本发明实施例提供一种服务器,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的数据存储方法或者如第二方面所述的数据检索方法。

第六方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所述的数据存储方法或者如第二方面所述的数据检索方法。

本发明实施例通过对待存储数据进行预处理;根据所述待存储数据的数据类型将预处理后的待存储数据存入对应的数据库,解决了现有技术不能针对各种类型的数据进行全面的存储,缺乏完善的功能支持,并且数据存储成本较高的问题,实现对不同类型数据的同时全面的存储,并且可以降低成本。

附图说明

图1为本发明实施例一提供的一种数据存储方法的流程图;

图2为本发明实施例一提供的一种数据存储方法的另一流程图;

图3为本发明实施例三中的提供的一种数据检索方法的流程图;

图4为本发明实施例四提供的一种数据存储、检索方法的实现流程的示意图;

图5为本发明实施例五提供的一种数据存储装置的结构示意图;。

图6为本发明实施例六提供的一种数据检索装置的结构示意图;

图7为本发明实施例七提供的一种服务器的硬件结构示意图;

图8为本发明实施例八提供的一种数据存储系统的结构示意图;

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种数据存储方法的流程图。本实施例可适用于对不同类型的数据进行存储的情况。具体的,该数据存储方法可以由数据存储装置执行,该数据存储装置可以通过软件和/或硬件的方式实现,并集成在服务器中。进一步的,服务器包括但不限定于:网络服务器、系统后台服务器以及云端服务器。

参照图1,该方法具体包括如下步骤:

s110、对待存储数据进行预处理。

具体的,在将待存储数据存储至数据库之前,首先要对待存储数据进行预处理。通常情况下待存储数据是面向某一业务主题的数据的集合,规模庞大,这些数据从多个业务系统中抽取而来,并且也包含了历史数据,可能存在多种问题,例如,由于技术的限制或人为的失误,原始数据在采集、记录、编码和传输的过程中都可能产生错误的信息,造成数据采集不完整、包含较多的噪声、多个数据之间不一致等问题。通过对待存储数据进行预处理,如填补遗漏数据、消除异常数据、去除噪声、整合不一致的数据等,可以去除待存储数据中的噪声以及无效的、错误的数据,筛选出有效的数据,提高待存储数据的质量。

s120、根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库。

具体的,数据类型可以为根据数据格式进行的分类,如整数数据、浮点数据、二进制数据等,也可以为根据数据内容的分类,如身份信息数据、工作业绩数据、车辆信息数据等,也可以为根据数据形式的分类,如结构化数据、非结构化数据、全文数据等。数据类型可根据实际需求设定,并在进行预处理的过程中获取。数据类型的设定决定了数据存储的多样性,并且对于不同类型的待存储数据可分别选取不同的数据库存储,采用不同数据库的优势是可包括sql、索引、olap等各种功能支持,以便于对待存储数据进行系统全面的管理。

示例性的,并行地对不同类型的待存储数据分别存储和管理。例如,当待存储数据为结构化数据时,通过设定的加载工具将其存入结构化数据库中;当待存储数据为非结构化数据时,将其存入非结构化数据库中;当待存储数据为全文数据时,将其存入全文数据库中。在将待存储数据存入对应的数据库中的同时,也可以建立不同类型的数据之间的链接关系,例如根据存储地址、id标识等具有唯一性的标志将不同类型的数据关联起来,便于对不同类型的数据的综合管理,从而支持更完善的联机分析处理olap功能。olap是一种软件技术,可使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。

本实施例通过对待存储数据进行预处理,提高待存储数据的质量;通过根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库,实现针对各种类型的数据进行全面的存储,提供完善的功能支持并且可以降低数据存储的成本。

图2为本发明实施例一提供的一种数据存储方法的另一流程图。本实施例在上述实施例的基础上进行了优化,在对待存储数据进行预处理之前增加了步骤s210-s230,并对“对待存储数据进行预处理”进行了具体优化。该数据存储方法包括:

s210、获取原始数据。

具体的,获取原始数据的过程可以理解为外部的原始数据接入数据库的过程。原始数据由各类传感器监测获得,或者通过各类客户端(web、app等)的传输获得。不同方式、不同业务需求下获得的原始数据具有不同的类型和标准。例如,对于环境监控数据,不同种类的传感器(温度、湿度、光线传感器等)获取的监控数据具有不同的形式。本实施例的数据存储方法可获取具有不同的类型和标准的数据,并对其进行进一步的处理和存储的功能。

s220、根据设定标准对原始数据进行标准化处理。

具体的,对原始数据进行标准化处理,是指根据实际需求将原始数据分类,不同类型的数据拥有不同的字段,同时定义每个字段的数据类型以及字段长度。标准化处理也可理解为数据治理,对于不同的实体,所根据的设定标准也不同。例如,原始数据为车辆信息数据,包括车辆的型号、品牌、价格等属性数据,则在进行标准化处理时,需要为车辆的属性数据设定标准,如型号必须包括中文和英文字符,品牌必须在10个中文字符以内,价格必须为阿拉伯数字的形式等。而实际获得的原始数据可能存在错误的字符形式,或者超过了规定的字符长度等。又如,对于身份信息数据,包括人的姓名、年龄、手机号等数据,则在进行标准化处理时,需要为身份信息的数据设定标准,如姓名必须包括汉字与拼音两部分,年龄必须是数字且数值大小在1-150的范围内,手机号必须是固定的长度,并且前方需要统一加上“+86”的字符等。所述设定标准根据实际的业务需求制定和更新。根据设定标准对原始数据进行标准化处理,可将原始数据整理成统一的格式,避免获得的原始数据杂乱、格式错误等问题。

s230、对标准化处理后的原始数据进行质量监测,获得待存储数据。

具体的,对标准化处理后的原始数据进行质量监测是指监测原始数据中所有的必填项目的数据是否上报(如在身份信息数据中监测所有人对应的姓名、年、手机号等必要信息是否完整采集到);监测原始数据中的数据上报量(如所有人员的总数量、每个人员应填的项目数量等);监测原始数据中是否存在空字段、字段类型格式是否存在错误(如是否存在忘填、填错、数据格式错误)等。可选的,在质量监测的过程中,按照实际业务需求和设定标准对原始数据进行检查,并实时记录检查日志,根据检查日志可输出质量监测的报表数据,同时也可确定否对检查过的错误数据备份。将检查后的数据作为待存储数据进行预处理。

s240、对待存储数据进行预处理。

通过对待存储数据进行预处理,可以去除其中的噪声以及无效的、错误的数据,筛选出有效的数据,提高待存储数据的质量。

进一步的,对待存储数据进行预处理,包括:

对待存储数据进行清洗处理和/或关联处理和/或去重处理和/或预警处理。

具体的,对待存储数据进行清洗处理,即数据清洗。数据清洗是指通过对待存储数据进行重新审查和校验,发现并纠正待存储数据中的可识别的错误,包括检查数据一致性,处理无效值和缺失值等。数据清理一般是通过计算机程序自动完成而不是人工完成,其目的在于去除噪声和无效数据、纠正存在的错误,整合相互冲突的数据使其具有一致性。

对待存储数据进行关联处理是指从单条数据中提取出相关性强的信息,将其关联在一起。例如,对于身份信息的数据,将同一人员的姓名、年龄和手机号的相关数据关联起来。

对待存储数据进行去重处理是指将一段时间内获取到的重复的数据去除。例如,在一段时间内对同一人员的身份信息采集了两次数据,并且两次采集的数据没有更新和变化,则两次采集的数据是重复的,通过去重处理可将其中一次采集的数据去除,只保留一组数据,从而减少待存储数据中的冗余信息。

对待存储数据进行预警处理是指通过将待存储数据与预先设定的预警信息进行比对,根据比对结果生成提示信息并保存在待存储数据中。

进一步的,对待存储数据进行预警处理,包括:

从缓存数据库中读取预警信息;将预警信息与待存储数据进行比对;根据比对结果对待存储数据进行预警处理。

具体的,预警处理是指,在业务系统中,有一部分数据具有标准的范围或阈值,当待存储数据超出此标准的范围或阈值时,对此待存储数据进行一定的预警操作提示用户此数据异常,同时生成预警数据并保存在待存储数据中。其中,标准的范围或阈值即为预警信息,预警信息预先存储在缓存数据库中。在对待存储数据进行预处理时,首先从缓存数据库中读取预警信息,然后将预警信息与待存储数据进行比对,根据比对结果对待存储数据进行预警处理。示例性的,设定缓存数据库为redis集群,即业务系统将预警信息写入redis集群中。对于环境监控数据,通过温度传感器采集温度,获得原始数据,经过预处理后得到的待存储数据为25℃、28℃、26℃、31℃,redis集群中的预警信息对环境监控数据设定的标准范围为20℃-30℃,则通过将预警信息与待存储数据进行比对,待存储数据中的“31℃”会突出显示,同时生成预警数据,预警数据包含了预警信息的标准范围、超出标准范围的待存储数据的个数、实际的待存储数据以及预警方式等,以便于用户查看预警处理的详细信息。

s250、根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库。

具体的,根据数据类型并行地对不同类型的待存储数据分别存储和管理,并且在将待存储数据存入对应的数据库的同时,可建立不同类型的数据之间的链接关系。

进一步的,数据类型包括结构化数据、非结构化数据和全文数据。

具体的,结构化数据也称作行数据,是由二维表结构来逻辑表达和实现的数据,具有严格的数据格式与长度规范,主要通过关系型数据库进行存储和管理。与结构化数据相对的是非结构化数据,其数据结构不规则或不完整,没有预定义的数据模型,不适于由数据库二维表来表现,包括所有格式的办公文档、xml、html、各类报表、图片和咅频、视频信息等。全文数据是指来自完整的信息源的全部内容所构成的数据。

本实施例通过对原始数据进行标准化处理,可将原始数据整理成统一的格式,然后对其进行质量监测,可获得正确有效的待存储数据;通过对待存储数据进行预处理,进一步提高待存储数据的质量;通过根据数据类型将待存储数据存入对应的数据库,可实现对不同类型数据的同时全面的存储,可以降低成本。

实施例二

在上述实施例的基础上,本实施例对“根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库”进行了优化,将其具体优化为针对结构化数据、非结构化数据以及全文数据进行不同处理的三种方案。未在本实施例中详尽描述的技术细节可参见上述任意实施例所提供的数据存储方法。

具体的,根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库,包括以下三种方案。

方案一、若待存储数据为结构化数据,则根据数据类型将待存储数据存入对应的数据库,包括:将结构化数据保存至本地磁盘指定文件目录中;将结构化数据由本地磁盘指定文件目录中转移至设定加载工具进行加载;根据设定配置文件将加载后的结构化数据写入结构化数据库。

具体的,在对待存储数据进行预处理的过程中,可对结构化数据生成对应的结构化数据文件并落地到本地磁盘,即经过预处理之后的结构化数据以文本文件的形式存放在本地磁盘的指定文件目录中,通过指定多个不同的文件目录,可将结构化数据按照一定的类别分别存储。例如,指定的多个文件目录分别用于存储字段长度不同的结构化数据,或者分别用于存储针对不同业务主题的结构化数据。然后将结构化数据由本地磁盘指定文件目录中转移至设定加载工具进行加载,其中,所述设定加载工具可以为gpload。gpload是一种结构化数据库的数据加载工具,可以根据定义在yaml格式的控制文件中的规范来执行一次加载,直接将数据从本地磁盘指定文件目录加载到结构化数据库的表中。

进一步的,将结构化数据转移至设定加载工具后,设定加载工具根据实际业务规则以及设定的yaml配置文件,将其中的结构化数据写入结构化数据库。其中,结构化数据库为greenplum,用于存储结构化数据。

方案二、若待存储数据为非结构化数据,则根据数据类型将待存储数据存入对应的数据库,包括:将非结构化数据存入非结构化数据库。

具体的,非结构化数据可以为图片、视频、音频等数据。预处理之后的非结构化数据将直接存入非结构化数据库中。其中,非结构化数据库可以为hadoop集群的hdfs。

进一步的,在将非结构化数据存入非结构化数据库之后,还包括:获取非结构化数据的存储地址;将存储地址写入结构化数据中。

具体的,将非结构化数据写入hdfs后,会自动获取其相对应的hdfs存储地址。该hdfs存储地址可用二维表进行表示,属于结构化数据。将获取的hdfs地址写入结构化数据,记录在结构化数据文件中,然后重复方案一所述的将结构化数据写入结构化数据的流程。

方案三、若待存储数据为全文数据,则根据数据类型将待存储数据存入对应的数据库,包括:将全文数据存入全文数据库。

具体的,全文数据库即收录有原始文献全文的数据库,如期刊论文、研究报告、法律条文、商业信息等构成的数据库。全文数据库将全文数据转化为计算机可以识别、处理的信息单元而形成的数据集合,其不仅存储了海量的信息,而且还具有对全文数据进行词、字、段落等更深层次的编辑、加工的功能。若待存储数据为全文数据,则将待存储数据存入全文数据库。

进一步的,将全文数据存入全文数据库具体包括:将全文数据保存至本地磁盘中;将全文数据和结构化数据通过id号进行关联;将全文数据存入全文数据库。

具体的,将全文数据以文件的形式保存至本地磁盘中,本地磁盘中还保存了结构化数据的相关文件。全文数据的文件以及结构化数据的文件中都记录着唯一的id号标识,通过id号可以将对应的全文数据和结构化数据关联起来。此外,全文文件中除了记录与结构化数据中相对应的id号以外,还记录了数据类型等相关信息(依实际业务需求确定的信息)。然后将全文数据写入到全文数据库中。其中,全文数据库可以为elasticsearch,用于存储全文数据,同时elasticsearch可提供一种具有分布式多用户能力的全文搜索引擎,具有较好的稳定性和实时性。将全文数据存入全文数据库elasticsearch具体包括:将全文数据以文件的形式转移到elasticsearch节点上,再通过预设的定时任务将elasticsearch节点中的全文数据文件定时导入到elasticsearch中。

在将全文数据写入到全文数据库中的同时,重复方案一所述的将结构化数据写入结构化数据的流程。

进一步的,将全文数据存入全文数据库后,定期对全文数据库中的内容进行索引、更新、追加和整理,以保证全文数据库的实用性、有效性和完整性。

本实施例通过将结构化数据存入结构化数据库,将非结构化数据库存入非结构化数据库,并将非结构化数据的存储地址保存在结构化数据中,将全文数据存入全文数据库,以实现对不同类型数据的同时全面的存储,提供完善的功能支持,降低数据存储的成本;并且通过id号将全文数据与结构化数据关联起来,加强了不同类型的数据存储的关联性,利于对不同类型数据的综合管理。

实施例三

图3为本发明实施例三提供的一种数据检索方法的流程图,本实施例可适用于对不同类型的数据进行检索的情况。具体的,该数据检索方法可以由数据检索装置执行,该数据检索装置可以通过软件和/或硬件的方式实现,并集成在服务器中。进一步的,服务器包括但不限定于:网络服务器、系统后台服务器以及云端服务器。

参照图3,该方法具体包括如下步骤:

s310、调用检索接口,并通过所述检索接口传入检索参数;

具体的,检索接口可以为各种客户端(web、app等)提供的用于进行数据检索的api接口,用户无需访问源代码或理解内部工作机制,只需通过检索接口传入检索参数,便可自动通过调用源代码或编写的函数,实现对数据的检索。本实施例中,检索接口设置于中间件上。

s320、根据检索参数的类型检索对应的数据。

具体的,通过查询中间件可根据检索参数的类型对相应的数据进行检索。其中,中间件是一种用于连接独立的应用程序或独立系统的软件或服务程序,各独立系统之间通过中间件交换信息,从而提供数据访问、数据检索、数据传输等功能。通过查询中间件,根据检索参数的类型检索对应的数据,可实现基于标准sql的实时检索的功能,以及对全文数据与结构化数据的实时混合检索功能。示例性的,业务系统调用中间件的hessian接口,通过hessian接口传入检索参数,中间件即可根据检索参数的类型进行对应的检索,并将检索结果加工成所需要的格式返回。

进一步的,对数据进行检索的过程还包括离线数据提取。离线数据提取是指对结构化数据库greenplum中的数据进行业务提取,对不同类型的数据进行分析归纳整理。例如,对于身份信息数据,有两个不同姓名的人的手机号相同,通过离线数据提取可以将这两个人的信息提取出来,判断数据的正确性并进一步分析,明确这两个人的关系。对于greenplum进行离线数据提取的方式有两种:使用存储过程的方式以及使用greenplummapreduce。其中,离线数据提取的方法属于现有技术,此处不做赘述。

本实施例通过调用检索接口,并通过检索接口传入检索参数;根据检索参数的类型检索对应的数据,可实现针对各种类型的数据进行全面的检索,从而提供完善的功能支持。

在上述实施例的基础上,本实施例对步骤s320所述的“根据检索参数的类型检索对应的数据”进行了优化,将其具体优化为以下三种方案。

方案一、若检索参数为结构化数据检索参数,则根据结构化数据检索参数调用结构化数据库中的api函数;根据api函数检索目标结构化数据。

具体的,若检索参数为结构化数据检索参数,则业务系统调用中间件的检索接口,传入结构化数据检索参数。中间件接收结构化数据检索参数后,调用结构化数据库查询api函数,根据api函数检索目标结构化数据。最后,结构化数据库将检索到的目标结构化数据返回给中间件,中间件将返回的目标结构化数据加工成适用于该业务系统的格式(如二进制流格式)返回给业务系统。其中,中间件的检索接口为hessian接口,结构化数据检索参数为sql参数,中间件根据sql参数调用greenplum查询api函数。

方案二、若检索参数为非结构化数据检索参数,则根据非结构化数据检索参数检索目标非结构化数据。

具体的,若检索参数为非结构化数据检索参数,则业务系统调用中间件的检索接口,传入非结构化数据检索参数。中间件根据传入的非结构化数据检索参数访问非结构化数据库中对应的目标非结构化数据。非结构化数据库将检索到的目标非结构化数据返回给中间件,中间件将返回的目标非结构化数据以适用于该业务系统的格式返回给业务系统。其中,中间件的检索接口为hessian接口,非结构化数据检索参数为hdfs地址参数,中间件根据hdfs地址参数访问hdfs地址,读取目标非结构化数据返回给中间件,中间件将返回的目标非结构化数据以二进制流的形式返回给业务系统。

方案三、若检索参数为全文数据检索参数,则根据全文数据检索参数检索目标非结构化数据。

具体的,若检索参数为全文数据检索参数,则业务系统调用中间件的检索接口,传入全文数据检索参数,中间件根据传入的全文数据检索参数访问全文数据库中对应的全文数据。全文数据库将检索到的全文数据返回给中间件,中间件将返回的全文数据以适用于该业务系统的格式返回给业务系统。其中,中间件的检索接口为hessian接口,全文数据检索参数为需要查询的文字,全文数据库为elasticsearch,中间件访问elasticsearch后检索到的为全文文档数据。

进一步的,本实施例的数据检索方法还提供了对全文数据和结构化数据的混合检索功能。具体的,结构化数据与全文数据之间通过id号关联。根据业务需求,当需要对全文数据和结构化数据进行混合检索时,中间件除了根据全文数据检索参数检索目标全文数据以外,还根据结构化数据的数据类型和唯一id号在结构化数据库中查询与目标全文数据相对应的结构化数据,并根据业务需求返回全文数据和/或结构化数据,将其以适用于该业务系统的格式返回给业务系统,从而实现对全文数据和结构化数据的混合检索。

需要说明的是,现有技术通常将不同类型的数据分开存储,并且通过不同的方式进行检索,但无论采用哪一种检索方式,都会因无法兼顾到不同类型的数据而造成检索结果不全面、不完整,而本实施例可以实现对全文数据和结构化数据的混合检索。

本实施例通过根据检索参数的类型检索对应的数据,可实现针对结构化数据、非结构化数据以及全文数据进行全面的检索,提供完善的功能支持;并且在检索全文数据的同时,通过结构化数据的数据类型和唯一id号在结构化数据库中查询对应的结构化数据,可实现对结构化数据和全文数据的混合检索。

实施例四

图4为本发明实施例四提供的一种数据存储、检索方法的实现流程的示意图在上述实施例的基础上,本实施例对数据存储、检索的实现流程进行介绍,未在本实施例中详尽描述的技术细节可参见上述任意实施例。

参照图4,待存储数据为原始数据经过标准化处理以及质量监测后得到的数据,首先对待存储数据进行预处理。其中,对待存储数据进行预处理包括:对待存储数据进行清洗处理和/或关联处理和/或去重处理和/或预警处理。

进一步的,预警信息由不同的业务系统根据实际业务需求设定,并预先缓存在redis集群中。对待存储数据进行预警处理时,通过读取redis集群中的预警信息,将待存储数据与预警信息进行比对,从而实现预警处理。在对待存储数据进行预警处理时会生成预警数据,预警数据经过系统处理程序后存入到greenplum和/或elasticsearch中,便于用户查询。其中,系统处理程序是一种用于控制数据存储或检索方法中各个步骤的实现的软件程序。

进一步的,根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库。

若预处理之后的数据为结构化数据,则系统处理程序首先将结构化数据保存至本地磁盘指定文件目录中;然后将结构化数据由本地磁盘指定文件目录中转移至设定加载工具gpload,gpload根据设定的yaml配置文件和业务规则将加载后的结构化数据写入结构化数据库greenplum。

若待存储数据为非结构化数据,则将预处理之后的非结构化数据将直接存入非结构化数据库中。其中,非结构化数据库为hadoop集群的hdfs。将非结构化数据写入hdfs后,会自动获取其相对应的hdfs存储地址,该hdfs地址被记录在结构化数据文件中,并存入结构化数据库。

若待存储数据为全文数据,则存入全文数据库elasticsearch中。将全文数据存入全文数据库包括:将全文数据保存至本地磁盘中;将全文数据和结构化数据通过id号进行关联;在将全文数据写入到全文数据库中的同时,重复将结构化数据写入结构化数据的流程。

进一步的在将结构化数据、非结构化数据以及全文数据分别存入对应的数据库后,通过查询中间件可根据传入的检索参数的类型进行相应的检索。

具体的,业务系统调用中间件的检索接口(hessian接口),传入检索参数;

若检索参数为结构化数据检索参数(sql参数),则中间件根据传入的sql参数,调用greenplum相关的api函数,greenplum根据api函数检索目标结构化数据,并将检索到的目标结构化数据返回给中间件,中间件将返回的目标结构化数据加工成适用于该业务系统的格式(如二进制流格式)返回给业务系统。

若检索参数为非结构化数据检索参数(hdfs地址参数),则中间件根据传入的hdfs地址参数,访问hdfs地址,并将hdfs地址中的非结构化数据返回给中间件,中间件将返回的目标结构化数据加工成适用于该业务系统的格式(如二进制流格式)返回给业务系统。

若检索参数为全文参数(需要查询的文字),则中间件根据需要查询的文字访问elasticsearch得到全文文档数据,并将其返回给中间件,中间件将其加工成适用于该业务系统的格式(如二进制流格式)返回给业务系统。

进一步的,结构化数据与全文数据之间通过id号关联,当需要对全文数据和结构化数据进行混合检索时,除了根据全文数据检索参数访问elasticsearch以外,还可根据结构化数据的数据类型和唯一id号,在greenplum中查询对应的结构化数据,然后根据业务需求返回全文数据和/或结构化数据,将其以适用于该业务系统的格式返回给业务系统,从而实现对全文数据和结构化数据的混合检索。

本实施例通过对待存储数据进行预处理,提高待存储数据的质量;通过根据数据类型将待存储数据存入对应的数据库,实现针对各种类型的数据进行全面的存储,降低数据存储的成本;然后通过调用检索接口,并通过检索接口传入检索参数,根据检索参数的类型检索对应的数据,可实现针对各种类型的数据进行全面的检索,从而提供完善的功能支持。

实施例五

图5为本发明实施例五提供的一种数据存储装置的结构示意图,本实施例可适用于对不同类型的数据进行存储的情况。

参照图5,该数据存储装置包括:

预处理模块410,用于对待存储数据进行预处理;

待存储数据入库模块420,用于根据待存储数据的数据类型将预处理后的待存储数据存入对应的数据库。

本实施例通过预处理模块对待存储数据进行预处理,提高待存储数据的质量;通过待存储数据入库模块根据数据类型将待存储数据存入对应的数据库,以实现针对各种类型的数据进行全面的存储,提供完善的功能支持,并且可以降低数据存储的成本。

在上述实施例的基础上,该数据存储装置还包括:

原始数据获取模块,用于获取原始数据;

标准化处理模块,用于根据设定标准对原始数据进行标准化处理。

质量监测模块,用于对标准化处理后的原始数据进行质量监测,获得待存储数据。

进一步的,质量监测模块还用于按照实际业务需求和设定标准对原始数据进行检查,并实时记录检查日志,根据检查日志输出质量监测的报表数据,并将检查后的数据作为待存储数据。

进一步的,预处理模块410包括:

清洗模块,用于对待存储数据进行清洗处理;

关联模块,用于对待存储数据进行关联处理;

去重模块,用于对待存储数据进行去重处理;

预警模块,用于对待存储数据进行预警处理。

进一步的,预警模块包括:

读取模块,用于从缓存数据库中读取预警信息;

比对模块,用于将预警信息与待存储数据进行比对;

预警处理模块,用于根据比对结果对待存储数据进行预警处理。

进一步的,待存储数据入库模块420包括:

结构化数据入库模块,用于若待存储数据为结构化数据,则将结构化数据保存至本地磁盘指定文件目录中;将结构化数据由所述本地磁盘指定文件目录中转移至设定加载工具进行加载;根据设定配置文件将加载后的结构化数据写入结构化数据库。

进一步的,待存储数据入库模块420还包括:

非结构化数据入库模块,用于若待存储数据为非结构化数据,则将所述非结构化数据存入非结构化数据库。

进一步的,非结构化数据入库模块还用于在将所述非结构化数据存入非结构化数据库之后,获取所述非结构化数据的存储地址;将所述存储地址写入结构化数据中。

进一步的,待存储数据入库模块420还包括:

全文数据入库模块,用于若待存储数据为全文数据,则将全文数据保存至本地磁盘中;将全文数据和结构化数据通过id号进行关联;将全文数据写入到全文数据库中。

进一步的,全文数据入库模块还用于定期对全文数据库中的内容进行索引、更新、追加和整理。

需要说明的是,本发明实施例五提供的数据存储装置可以用于执行上述任意实施例提供的数据存储方法,具备相应的功能和有益效果。未在本实施例中详尽描述的技术细节可参见上述任意实施例。

实施例六

图6为本发明实施例六提供的一种数据检索装置的结构示意图。本实施例可适用于对不同类型的数据进行检索的情况。

参照图6,该装置包括:

检索参数传入模块510,用于调用检索接口,并通过所述检索接口传入检索参数;

检索模块520,用于根据所述检索参数的类型检索对应的数据。

本实施例通过检索参数传入模块调用检索接口,并通过检索接口传入检索参数;通过检索模块根据检索参数的类型检索对应的数据,可实现针对各种类型的数据进行全面的检索,从而提供完善的功能支持。

在上述实施例的基础上,检索模块520,包括:

结构化数据检索模块,用于若检索参数为结构化数据检索参数,则根据结构化数据检索参数调用结构化数据库中的api函数;根据api函数检索目标结构化数据。具体的,所述结构化数据库为greenplum,所述结构化数据检索参数为sql参数。

进一步的,检索模块520还包括:

非结构化数据检索模块,用于若检索参数为非结构化数据检索参数,则根据非结构化数据检索参数检索目标非结构化数据。具体的,根据非结构化数据检索参数检索目标非结构化数据包括,根据hdfs地址参数访问hdfs地址,读取目标非结构化数据。

进一步的,检索模块520还包括:

全文数据检索模块,用于若检索参数为全文数据检索参数,则根据全文数据检索参数检索目标非结构化数据。具体的,根据全文数据检索参数检索目标非结构化数据包括,根据需要查询的文字,访问elasticsearch得到目标非结构化数据。

需要说明的是,本发明实施例六提供的数据检索装置可以用于执行上述任意实施例提供的数据检索方法,具备相应的功能和有益效果。未在本实施例中详尽描述的技术细节可参见上述任意实施例。

实施例七

图7为本发明实施例七提供的一种服务器的硬件结构示意图。如图7所示,本实施例提供的一种服务器,包括:处理器610和存储装置620。该服务器中的处理器可以是一个或多个,图7中以一个处理器610为例,所述设备中的处理器610和存储装置620可以通过总线或其他方式连接,图7中以通过总线连接为例。

所述一个或多个程序被所述一个或多个处理器610执行,使得所述一个或多个处理器实现上述实施例中任意所述的数据存储或者数据检索方法。

该服务器中的存储装置620作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例中数据存储或者检索方法对应的程序指令/模块(例如,附图4所示的数据存储装置中的模块,包括:预处理模块410和入库模块420)。处理器610通过运行存储在存储装置620中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述方法实施例中的数据存储或者检索方法。

存储装置620主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等(如上述实施例中的结构化数据、全文数据等)。此外,存储装置620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

并且,当上述服务器中所包括一个或者多个程序被所述一个或者多个处理器610执行时,程序进行如上述实施例所述的数据存储方法或者数据检索方法。

本实施例提出的服务器与上述实施例提出的数据存储或者检索方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述任意实施例,并且本实施例具备与执行数据存储或者检索方法相同的有益效果。

在上述实施例的基础上,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被数据存储装置或者数据检索装置执行时实现本发明上述任意实施例中的数据存储或者数据检索方法。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的数据存储或者检索方法操作,还可以执行本发明任意实施例所提供的数据存储或者检索方法中的相关操作,且具备相应的功能和有益效果。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述的数据存储方法或者数据检索方法。

实施例八

图8本发明实施例八提供的一种数据存储系统的结构示意图。该系统包括:预处理节点100、主节点111、从节点112以及万兆交换机113。可选的,预处理节点100的数量为至少三个,本实施例以三个为例进行说明。

需要说明的是,本实施例在数据存储系统中部署了7台服务器,在实际应用中,如果待存储数据的规模较大,可根据实际需求对数据存储系统进行线性扩展,增加服务器的部署数量。

参照图8,该数据存储系统包括3台预处理节点,3台预处理节点中分别安装hadoop、flink和redis。其中,预处理节点101中安装flink,用于对数据进行预处理,提供数据接入的功能;预处理节点102中安装hadoop,用于将经过预处理的非结构化数据直接存储在非结构化数据库hdfs中;预处理节点103中安装redis,用于数据的缓存,例如用于存储预警信息、数据治理标准等。

主节点111中安装了数据加载工具gpload、系统处理程序、中间件程序、结构化数据库greenplum主节点以及全文数据库elasticsearch主节点。主节点111利用gpload将结构化数据存入结构化数据库greenplum中;然后将全文数据存入全文数据库elasticsearch中;主节点111通过系统处理程序控制数据存储方法中各个步骤的实现;通过中间件程序可控制中间件根据检索参数进行对应的检索,从而提供完整的数据存储与检索功能。

从节点112具体为结构化数据库greenplum和全文数据库elasticsearc的从节点,其中greenplum的从节点中安装有8个postgresql。

预处理节点100、主节点111、从节点112之间通过万兆交换机113连接,以进行安全、快速的数据传输。万兆交换机还用于与客户端相连,用户可通过客户端输入检索参数并查看检索结果。

进一步的,主节点111将全文数据存入全文数据库elasticsearch中具体包括:通过系统处理程序将全文数据文件转移到elasticsearch节点上,再通过预设的定时任务将全文数据文件定时导入到全文数据库elasticsearch中。

需要说明的是,本实施例提供了一种基于hadoop、greenplum、elasticsearch、redis等的大数据平台架构,采用较少的硬件设备即可实现对不同类型的数据的全面存储。通过预处理节点对待存储数据进行预处理;并根据待存储数据的数据类型将不同类型的待存储数据存入对应的数据库,实现针对各种类型的数据进行全面的存储,提供完善的功能支持并且可以降低数据存储的成本。

本实施例提供的数据存储系统可以用于执行上述任意实施例提供的数据存储方法,具备相应的功能和有益效果。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1