一种信息处理方法及装置
技术领域
本发明涉及电子技术,尤其涉及一种信息处理方法及装置。
背景技术
搜索引擎(Search Engine)是一种基于web平台的网络查找工具。因此,关于搜索引擎的概念可从不同的角度来理解。从信息组织的角度看,搜索引擎是一种网络信息资源的二次组织工具,它是将分布在不同网络服务器上的大量信息重新归类组织成易于查询的形式。从信息检索的角度看,搜索引擎是一种用以查询互联网中各类信息资源的在线检索平台,并以web网页的方式组织和呈现检索结果。但是对于开发者来说,搜索引擎是以Web相关技术为基础进行抓取与采集网页上的网络信息资源,建立索引数据库,然后依据用户的查找需求检索网络信息并将结果显示给用户,是为用户提供在线检索服务的web查找系统。
搜索引擎可以按搜索内容、检索机制等进行划分,按搜索内容划分实际上就是内容归并法,按搜索内容划分的方法是指基于搜索引擎所搜集信息的内容状况(如覆盖程度、所属专业或学科等),将现有的搜索引擎划分为水平搜索引擎和垂直搜索引擎。其中,垂直搜索引擎是针对某一个行业或领域的专业搜索引擎,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。目前通常有两种搜集信息的策略:
1)第一种策略,顺从一个起始统一资源定位器(URL,Uniform Resource Locator)集合开始,顺着这些URL中的链接以宽度优先、深度优先或启发式方式等循环地在互联网中发现新的信息。这些起始URL可以是任意的URL,也可以是一些非常流行、包含很多链接的站点。
2)第二种策略,将Web空间按照域名、网际协议(IP,Internet Protocol)地址或国家域名划分,每个搜索器负责一个子空间的穷尽搜索。搜索器搜集的信息类型包括超文本标记语言(HTML,Hyper Text Mark-up Language)、可扩展标记语言(XML,ExtensibleMark-up Language)、文件传输协议(FTP,File Transfer Protocol)文件以及多媒体信息等。搜索器通常可采用分布式或并行计算技术,以提高信息发现和更新的速度。
搜索引擎作为一个系统,一方面,搜索引擎系统可以根据工作时效性的不同划分为离线子系统和在线子系统两部分。另一方面,如图1-1所示,搜索引擎系统还可以依据具体功能的差别将搜索引擎分解成四个关键模块:用户接口模块10、信息检索模块20、索引处理模块30和信息采集模块40。通常情况下索引处理模块30和信息搜集模块40属于离线子系统的范畴,而用户接口模块10、信息检索模块20则属于搜索引擎的在线子系统的范畴。从程序角度来看,一个搜索引擎一般包括采集器41、索引器31、检索器21和用户接口模块10四个部分组成:
(1)采集器41,又称搜索器、蜘蛛(Spider)、机器人(Robot)、爬行者(Crawler)或蠕虫(Worm)等,搜索器实质是一种计算机程序,按照某种策略自动地在互联网中搜集和发现web信息,或者从其他文档43上搜索和发现信息资源,进而形成数据库42。搜索器需要尽可能多、尽可能快地搜集各种类型的新信息,同时由于网上的信息更新很快,需要定期更新已经搜集过的旧信息,以避免死链接和无效链接。
(2)索引器31,索引器用于生成从关键词到统一资源定位器(URL,UniformResource Locator)地址的关系索引表。索引表一般使用某种形式的倒排表(InversionList)或顺排表,即由索引项查找相应的URL。一个搜索引擎的有效性在很大程序上取决于索引的质量。
(3)检索器21,检索器的主要功能是根据用户输入的关键词,在索引器形成的倒排表或顺排表中进行查询,同时完成页面与查询之间的相关度评价,对将要输出的结果进行排序,并提供某种用户相关性的反馈机制。
(4)用户接口模块10,用户接口模块的作用是输入用户查询、显示查询结果、提供用户相关性反馈机制。
用户11或12至1N提交要搜索的关键字(即发送搜索请求),然后搜索引擎就会经过查询处理与分词,然后由检索器21从索引数据库中找到符合该关键词的所有相关网页。最后综合相关信息和网页级别形成相关度数值,然后进行排序,相关度越高排名越靠前(即形成检索结果集22)。最后由用户接口模块10中的页面生成子模块将检索结果集的链接地址和页面内容摘要等内容组织起来返回给用户(返回搜索结果)。
在搜索引擎中索引数据的生成是提供检索服务的关键。索引数据生成是由索引处理模块30来实现的,目前离线索引数据生成大都是基于分布式计算的架构。对于涉及多个方面的信息服务提供商来说,例如某信息服务提供商涉及游戏业务、视频业务、音频业务、房产业务、即时通讯业务等,该信息服务提供商的各个业务部门都需要用到搜索引擎以便为各自的用户提供搜索服务,对于信息服务提供商而言,为每一个业务部门单独搭建一套独立的搜索引擎是不合理的,因为设备成本、设备维护费以及人员配比都会导致成本高的问题;因此,对于信息服务提供商而言,期望搭建一个搜索平台,该搜索平台能够满足不同的业务都使用搜索引擎。
目前,搜索平台中通常包括多个索引器,这是因为在搜索平台的数据生成过程中,每一个索引器大都是为某个搜索业务定制的,而且由于每一业务所涉及的业务数据规模、字段都存在很大的差异,因此,搜索平台为每一项搜索业务都搭建一个搜索器。当需要增加一种新的搜索业务时,信息服务提供商还需要为该业务搭建一个新的搜索器,可见,现有的搜索平台对于新的业务无法进行快速扩展;因此,对于信息服务提供商而言,一般各个业务部门就有几个对应于该业务部分的索引器,可见,现有的搜索平台虽然将各个业务的搜索业务放置在一起,但是并没有做到实际意义上的整合。还有,有些业务的用户量比较小或者用户的使用时段比较集中,那么相互独立的索引器或搜索器的使用率比较低,此外,当索引器在处理数据过程对用户(即业务部门)来说时不透明的,用户无法了解数据处理各个环节的状态。
发明内容
有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种信息处理方法及装置,能够增强搜索平台的可扩展性。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种信息处理方法,所述方法包括:
获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;
从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。
在本发明的一种实施例中,在从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据之后,所述方法还包括:
获取每一种类的所述业务的顺排数据或倒排数据,根据每一种类的所述业务的顺排数据或倒排数据,生成从关键词到统一资源定位器URL地址的关系索引表。
在本发明的一种实施例中,所述待执行任务的结构信息至少包括业务配置信息;
对应地,所述从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据,包括:检查数据的合法性、检查数据值的一致性和生成顺排数据或倒排数据,其中:
所述检查数据的合法性,包括:根据所述待执行任务获取第一业务数据,检查所述第一业务数据的数据格式的合法性;
所述检查数据值的一致性,包括:当所述数据格式合法时,检查所述待执行任务的结构信息中的业务配置信息与所述第一业务数据中数据值的一致性;
所述生成顺排数据或倒排数据,包括:当所述业务配置信息与所述数据值一致时,将所述第一业务数据进行处理生成对应的顺排数据或倒排数据。
在本发明的一种实施例中,所述从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据,还包括:
当所述业务配置信息与所述数据值一致时,将所述第一业务数据的数据格式转换成预设的第二数据格式,所述第二数据格式与所述第一数据格式不同。
在本发明的一种实施例中,所述待执行任务的结构信息还包括任务状态和任务执行时间信息;
对应地,所述从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据,还包括:
在执行检查数据的合法性、检查数据值的一致性和生成顺排数据或倒排数据中至少任一步骤时,至少更新所述任务状态和所述任务执行时间信息。
在本发明的一种实施例中,所述将每一种类的所述业务的业务数据生成待执行任务,包括:
根据每一种类的所述业务的第一业务数据的大小,将每一种类的所述业务的业务数据生成一个或多个待执行任务。
在本发明的一种实施例中,所述根据每一种类的所述业务的第一业务数据的数据量,将每一种类的所述业务的业务数据生成一个或多个待执行任务,包括:
获取每一种类的所述业务的第一业务数据的数据量;
将所述第一业务数据的数据量除以预设的第一阈值,得到第一倍数;
根据所述第一倍数将所述第一业务数据进行分割,得到一个或多个第二业务数据;
将每一所述第二业务数据生成一个待执行任务。
第二方面,本发明实施例提供一种信息处理装置,所述装置包括第一获取单元、第一生成单元、添加单元和处理单元,其中:
所述第一获取单元,用于获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
所述第一生成单元,用于将每一种类的所述业务的第一业务数据生成待执行任务;
所述添加单元,用于将所述待执行任务添加到任务队列中;
所述处理单元,用于从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。
在本发明的一种实施例中,所述装置还包括:第二获取单元和第二生成单元,其中:
所述第二获取单元,用于获取每一种类的所述业务的顺排数据或倒排数据;
所述第二生成单元,用于根据每一种类的所述业务的顺排数据或倒排数据,生成从关键词到统一资源定位器URL地址的关系索引表。
在本发明的一种实施例中,所述待执行任务的结构信息至少包括业务配置信息;
对应地,所述处理单元包括第一检查模块、第二检查模块和第一生成模块,其中:
所述第一检查模块,用于检查数据的合法性,具体包括:根据所述待执行任务获取第一业务数据,检查所述第一业务数据的数据格式的合法性;
所述第二检查模块,用于检查数据值的一致性,具体包括:当所述数据格式合法时,检查所述待执行任务的结构信息中的业务配置信息与所述第一业务数据中数据值的一致性;
所述第一生成模块,用于生成顺排数据或倒排数据,具体包括:当所述业务配置信息与所述数据值一致时,将所述第一业务数据进行处理生成对应的顺排数据或倒排数据。
在本发明的一种实施例中,所述处理单元还包括转换模块,用于当所述业务配置信息与所述数据值一致时,将所述第一业务数据的数据格式转换成预设的第二数据格式,所述第二数据格式与所述第一数据格式不同。
在本发明的一种实施例中,所述待执行任务的结构信息还包括任务状态和任务执行时间信息;
对应地,所述处理单元还包括更新模块,用于在执行检查数据的合法性、检查数据值的一致性和生成顺排数据或倒排数据中至少任一步骤时,至少更新所述任务状态和所述任务执行时间信息。
在本发明的一种实施例中,所述第一生成单元,具体用于根据每一种类的所述业务的第一业务数据的大小,将每一种类的所述业务的业务数据生成一个或多个待执行任务。
在本发明的一种实施例中,所述第一生成单元包括获取模块、第一处理模块、分割模块和第二生成模块,其中:
所述获取模块,用于获取每一种类的所述业务的第一业务数据的数据量;
所述处理模块,用于将所述第一业务数据的数据量除以预设的第一阈值,得到第一倍数;
所述分割模块,用于根据所述第一倍数将所述第一业务数据进行分割,得到一个或多个第二业务数据;
所述第二生成模块,用于将每一所述第二业务数据生成一个待执行任务。
本发明实施例提供的信息处理方法及装置,其中,获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。如此,能够增强搜索平台的可扩展性。
附图说明
图1-1为相关技术中搜索引擎系统的组成结构示意图;
图1-2为本发明实施例一信息处理方法的实现流程示意图;
图1-3为本发明实施例一在具体实现过程中待执行任务的结构信息示意图;
图2-1为本发明实施例二信息处理方法的实现流程示意图;
图2-2为本发明实施例二中生产者消费者模型的结构示意图;
图2-3为图2-1中步骤202的实现流程示意图;
图3-1为本发明实施例三信息处理方法的实现流程示意图;
图3-2为本发明实施例三具体实现的过程生产者和消费者的实现示意图;
图3-3为本发明实施例三中执行待执行任务的过程示意图;
图3-4为本发明实施例三中更新所述任务状态和所述任务执行时间信息的实现示意图;
图3-5为在具体实现的过程中监控中心运营平台的效果示意图;
图3-6为本发明实施例三中待执行任务正在处理时的状态信息示意图;
图4为本发明实施例四信息处理装置的组成结构示意图;
图5为本发明实施例五信息处理装置的组成结构示意图;
图6-1为本发明实施例六信息处理装置的实现流程示意图;
图6-2为本发明实施例六中第一生成单元的组成结构示意图。
具体实施方式
现以甲公司作为信息服务提供商为例,来说明背景技术中所记载的技术问题。该甲公司除了即时通讯业务外还开设有房产业务和视频业务,用户可以在该甲公司视频业务的web页面上搜索自己感兴趣的电影,在产房业务的web页面上搜索自己感兴趣的房产信息。由于开展房产业务和开展视频业务都需要用到搜索引擎,因此,该甲公司将这两项业务整合在一个搜索平台上;但是由于房产业务的业务数据规模、字段与视频业务的业务数据规模、字段都存在很大的差异,因此,在搜索平台中分别为每一业务搭建一个索引器、搜索器。当甲公司要开展一项音乐业务(如QQ音乐)时,该甲公司还需要为该音乐业务搭建一个适用于音乐业务的索引器、搜索器,以便用户可以在即时通讯(QQ)上搜索自己感兴趣的音乐;在音乐业务、房产业务和视频业务中,房产业务刚刚起步,房产业务的信息量相对较少而且搜索量也很小,因此,房产业务的索引器的使用率比较低,由此可见,现有的搜索平台虽然将各个业务的搜索业务放置在一起,但是并没有做到实际意义上的整合。
为了使得资源得到更加合理的利用,本发明以下实施例中提供的技术方案,将对现有的搜索平台进行改进,不但使得资源能够得到更合理的利用,而且能够在有新业务接入时,为该新业务搭建一个搜索引擎不再艰难。本发明的以下实施例中,将生产者消费者模型引入数据处理工作,通过实时监控不同种类的业务数据的到达,对多个不同种类的业务数据,由生产者进程生成不同的处理任务。批量的数据处理任务进而会由不同的消费者进程并行处理。
这里,数据处理中的数据是指按业务类别进行分类的业务数据,该业务数据可以有多种来源,例如该业务数据可以是搜索器从网络上爬取下来的业务数据、或者直接接入的来自于数据仓库中的数据等等。
消费者进程并行对数据处理任务进行处理的过程,实际上是采用分布式处理方式,因此,本发明实施例提供的技术方案能够很好地支持多种不同的业务,能够适用于大数据量。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
实施例一
本发明实施例提供一种信息处理方法,图1-2为本发明实施例一信息处理方法的实现流程示意图,如图1-2所示,该方法包括:
步骤101,获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
这里,所述不同种类业务可以包括房产业务、视频业务、音乐业务等。
这里,搜索平台为了能够用统一的方式高效地处理多种不同种类的业务数据,对业务数据的格式、文件命名等都采用统一的格式进行规范。在具体实现的过程中,可以定义业务数据格式为标准的Java Script对象表示法(JSON,JavaScript Object Notation))格式,同时支持全量数据和增量数据。JSON格式是一种轻量级的数据交换格式,JSON格式采用类似于C语言家族(包括C、C++、C#、Java、JavaScript、Perl、Python等)的习惯,从而易于人阅读和编写,同时也易于机器解析和生成。
这里,所述第一数据格式可以为上述的JSON格式。
步骤102,将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;
这里,所述待执行任务一般具有预定的结构信息,一般来说一个待执行任务的结构信息主要包括以下几个方面的信息(可以理解为属性信息):
1)任务标识信息,即任务通用唯一识别码(UUID,Universally UniqueIdentifier);
2)业务信息,所述业务信息包括业务名称、部署互联网数据中心(IDC,InternetData Center)等信息、业务配置信息等;其中,IDC可以为用户提供包括申请域名、租用虚拟主机空间、服务器托管租用等服务。
3)任务数据目录信息,所述任务数据目录信息包括数据离线数据处理源目录、目标目录、临时目录和索引数据目录等信息;
4)任务状态信息,所述任务状态信息包括等待调度、正在执行、执行完成、执行错误等;
5)任务执行信息,任务执行信息包括任务生成时间、开始执行时间、执行完成时间、当前执行步骤、错误信息等;
6)其他信息:失败、告警、责任人等信息。
图1-3为本发明实施例一在具体实现过程中待执行任务的结构信息示意图,如图1-3所示,待执行任务的结构信息包括三列,第一列为序号(1至47)、第二列为结构信息的属性信息、第三列为每一个属性信息的数据类型,其中,数据类型可以为整数类型(int)、字符串类型(varchar)等,数据类型后面括号中的数字表示字段的长度,例如,序号为2的那一行,表示任务的UUID(task_uuid),该任务的UUID字段的长度为128位(bit)。
步骤103,从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。
这里,步骤102用于形成待执行任务,然后把各待执行任务存储在任务队列中。在具体实现过程中,本领域的技术人员可以根据各种现有技术对实现任务队列采用多种实现方式。下面提供一种实现方式,在搜索平台中任务队列可以建立在关系型数据库的基础上,因此,对任务队列的操作都可以分解为对关系型数据库的操作;对任务队列的操作主要包括:向任务队列中插入新的任务,从任务队列中获取任务。
本发明实施例提供的信息处理方法,其中,获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据;如此,本发明实施例采用生产者消费者模型,将多个不同种类的业务数据任务化,使得待执行任务的生成和执行分离开来;对不同的任务采用统一的数据格式,能够提高了数据处理流程的可扩展性,最终使得搜索平台能够适应多业务搜索的需求。
实施例二
基于上述的实施例一,本发明实施例提供一种信息处理方法,图2-1为本发明实施例二信息处理方法的实现流程示意图,如图2-1所示,该方法包括:
步骤201,获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
这里,所述不同种类业务可以包括房产业务、视频业务、音乐业务等。
这里,搜索平台为了能够用统一的方式高效地处理多种不同种类的业务数据,对业务数据的格式、文件命名等都采用统一的格式进行规范。在具体实现的过程中,可以定义业务数据格式为标准的Java Script对象表示法(JSON,JavaScript Object Notation))格式,同时支持全量数据和增量数据。JSON格式是一种轻量级的数据交换格式,JSON格式采用类似于C语言家族(包括C、C++、C#、Java、JavaScript、Perl,、Python等)的习惯,从而易于人阅读和编写,同时也易于机器解析和生成。
这里,所述第一数据格式可以为上述的JSON格式。
步骤202,将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;
这里,所述待执行任务一般具有预定的结构信息,一般来说一个待执行任务的结构信息主要包括任务标识信息、业务信息、任务数据目录信息、任务状态信息、任务执行信息、其他信息如失败、告警、责任人等信息。
步骤203,从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。
这里,步骤202用于形成待执行任务,然后把各待执行任务存储在任务队列中。在具体实现过程中,本领域的技术人员可以根据各种现有技术对实现任务队列采用多种实现方式。下面提供一种实现方式,在搜索平台中任务队列可以建立在关系型数据库的基础上,因此,对任务队列的操作都可以分解为对关系型数据库的操作;对任务队列的操作主要包括:向任务队列中插入新的任务,从任务队列中获取任务。
步骤204,获取每一种类的所述业务的顺排数据或倒排数据,根据每一种类的所述业务的顺排数据或倒排数据,生成从关键词到统一URL地址的关系索引表。
这里,所述关系索引表可以是顺排表或倒排表。
本发明实施例中,步骤201和步骤202可以由一个或多个程序来实现,该一个程序或多个程序可以称为生产者进程,而步骤203也可以由一个程序来实现,用于实现步骤203的程序可以称为消费者进程。在搜索引擎的工作过程中,形成顺排数据或倒排数据和形成索引关系索引表是关键的步骤,由于搜索平台承接着各种不同种类的搜索业务,因此,如何能够快速地对多个业务数据进行处理、同时实时地监控业务数据到达的关键。下面将借助于生产者消费者模型,来说明本发明实施例是如何实现个业务数据进行处理、同时实时地监控业务数据到达。图2-2为本发明实施例二中生产者消费者模型的结构示意图,如图2-2所示,搜索平台接入多个不同种类的业务,为了能够对多个业务数据进行及时地处理,本发明实施例采用任务式的处理方法:将业务数据处理的过程实现为一个待执行任务(Task),同时将待执行任务的生成和执行分离。生产者进程负责将多个业务数据生成多个任务,添加到任务队列中;消费者进程负责从任务队列中获取待执行的任务进行处理。具体地,生产者进程获取不同类型的业务数据(步骤201),例如,生产者进程获取JSON格式的业务1的数据、业务2的数据、……、和业务N的数据;然后,生产者进程将每一种类的业务数据生成待执行任务,并将所述待执行任务(Task)添加到任务队列中(步骤202);接着,消费者进程从任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据(步骤203)。
本发明实施例中,所述步骤202,所述将每一种类的所述业务的业务数据生成待执行任务,包括:
根据每一种类的所述业务的第一业务数据的大小,将每一种类的所述业务的业务数据生成一个或多个待执行任务。
这里,如图2-3所示,所述根据每一种类的所述业务的第一业务数据的大小,将每一种类的所述业务的业务数据生成一个或多个待执行任务,包括:
步骤2021,获取每一种类的所述业务的第一业务数据的数据量;
步骤2022,将所述第一业务数据的数据量除以预设的第一阈值,得到第一倍数;
步骤2023,根据所述第一倍数将所述第一业务数据进行分割,得到一个或多个第二业务数据;
步骤2024,将每一所述第二业务数据生成一个待执行任务。
图2-3所示的实施例中,考虑业务数据在大数据量时的场景,生产者进程会对大数据量进行分割,得到数据量大小合适的单元数据(第二业务数据),然后生产者进程再将单元数据生成多个的待执行任务。
从以上实施例一和实施例二可以看出,生产者进程负责生成待执行任务,并将生成的待执行任务放到任务队列中;在具体实现过程中,生产者进程还可以增加一个用于监控各个业务数据的到达的程序、以及增加一个用于对大数据进行分割的程序,从而使得生产者进程能够把大小适宜的数据生成多个待执行任务。
实施例三
基于上述的实施例一或实施例二,本发明实施例提供一种信息处理方法,本发明实施例中所述待执行任务的结构信息至少包括业务配置信息,这时,图3-1为本发明实施例三信息处理方法的实现流程示意图,如图3-1所示,该信息处理方法包括:
步骤301,获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
步骤302,将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;
这里,步骤301对应于前述实施例一中步骤101,步骤302对应于前述实施例一中步骤102,因此,关于步骤301和步骤302的具体说明请参见前述的实施例一的相关描述。
步骤3031,检查数据的合法性;
这里,检查数据的合法性是为了确保任务的完整性,所述检查数据的合法性,包括:从所述任务队列中获取所述待执行任务,根据所述待执行任务获取第一业务数据,检查所述第一业务数据的数据格式的合法性。
这里,检查数据格式合法时,进入下一步,否则,返回错误消息。
这里,检查数据的合法性除了检查上述数据格式的合法性外,还包括检查数据类型的合法性。一方面,搜索平台为了能统一地处理多个业务的数据,规定了数据的标准格式为JSON格式,因此当前步骤首先要校验数据是否符合JSON格式;另一方面,搜索平台目前支持的数据类型包括:字符串类型、整型(无符号和有符号)、长整型(无符号和有符号)以及浮点型,因此需要检验业务数据是否和配置的数据类型、数据长度一致。
步骤3032,数据格式合法时,检查数据值的一致性;
这里,检查数据值的一致性,是为了确保配置文件正确;所述数据格式合法时,检查数据值的一致性,包括:当所述数据格式合法时,检查所述待执行任务的结构信息中的业务配置信息与所述第一业务数据中数据值的一致性;
这里,检查数据格式一致时,进入下一步,否则,返回错误消息,该错误消息可以返回监控中心运营平台,错误消息中还可以携带错误的原因值,原因值不同,代表的错误类型不同,例如数据格式不合法的原因值与数据值不一致的原因值可以不同,以便于业务部门的人员查找出错误原因。
步骤3033,当所述业务配置信息与所述数据值一致时,生成顺排数据或倒排数据;
这里,当所述业务配置信息与所述数据值一致时,所述生成顺排数据或倒排数据,包括:当所述业务配置信息与所述数据值一致时,将所述第一业务数据的数据格式转换成预设的第二数据格式,将具有第二数据格式的第一业务数据进行处理生成对应的顺排数据或倒排数据。
这里,所述第二数据格式与所述第一数据格式不同。所述第二数据格式可以为标准RecordIO格式。RecoidIO格式的存储单元是一条一条记录(record),用户可以根据需要自行定义record。
本发明实施例中,消费者进程负责从任务队列中获取待执行任务,并执行所述待执行任务。为了实现数据的快速处理,可以采用消费者进程同时对多个待执行任务同时进行处理。每个消费者进程都可以从任务队列中获取一个待执行任务,并独立地执行;参见图3-2所示,在具体实现的过程中,生产者进程可以采用一台或多台计算机或服务器31来实现,每一个消费者进程可以采用一台计算机或服务器32来实现。虽然每一台计算机或服务器的计算资源有限的,从而计算机或服务器同时处理的任务数目是有限的,但是用于实现消费者进程的计算机或服务器的数目是无限的,从而能够适用于大数据量的处理。
本发明实施例中,在步骤302之后,该方法还可以包括步骤3034,检查任务配置信息的步骤,这里检查任务配置信息是为了确保配置文件正确,正确时,进入下一步,否则,返回错误消息。
图3-3为本发明实施例三中执行待执行任务的过程示意图,如图3-3所示,该过程包括检查任务合法性、检查业务配置、数据预处理和索引数据生成四个大步骤,其中,数据预处理由包括格式转换、检查格式转换完成、检查核实转换输出、格式检查、转换成RecordIO格式,格式检查进度、格式检查输出结果等小步骤;而索引数据生成包括生成顺排数据或倒排数据、检查索引数据生成完成和检查目标索引等小步骤,其中,检查任务合法性即上述步骤3031,检查业务配置即为上述步骤3034,而数据预处理和索引数据生成包括上述步骤3033和步骤3034,本领域的技术人员可以根据各种实际情况的需要,对步骤进行增减,本实施例并不对此进行限定。
本发明实施例中,所述待执行任务的结构信息还包括任务状态和任务执行时间信息;
对应地,所述从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据,参见图3-4,还包括:
在执行步骤3031、步骤3032和步骤3033、步骤3034的任一步骤时,至少更新所述任务状态和所述任务执行时间信息。
这里,搜索平台采用本方案进行离线数据的处理。业务数据的处理状态信息都由消费者进程上报到统一的监控中心运营平台,以便相关的业务部门的人员及时查看;因此,搜索平台需要保存所有业务的任务状态和任务执行时间信息。图3-5为在具体实现的过程中监控中心运营平台的效果示意图,如下:其中标出了搜索平台已介入业务中的三个业务:sng_weishequ_zhutisousuo_zhengshi(微社区)、sng_qqyanchu_qqyanchu(QQ演出)和ieg_qqchongwu10_qiezhenghun_zhengshi(QQ宠物)。
图3-6为本发明实施例三中待执行任务正在处理时的状态信息示意图,如图3-6所示,每个待执行任务的执行过程包括检查任务合法性、检查业务配置、数据预处理和索引数据生成等步骤。其中标出了当前任务的处理状态为:正在执行;当前处理步骤为:检查离线数据处理进度。这里,检查离线数据处理进度为数据预处理中的一个步骤。
本发明实施例中,搜索平台要承接多个不同种类业务的搜索服务,消费者进程在数据处理的每个步骤都会实时记录当前处理状态,并上报到统一的监控中心运营平台;另一方面数据处理过程中的各种处理状态对业务部门可见,提高数据处理效率的同时使得系统的可运营性大大增加。
实施例四
本发明实施例提供一种信息处理装置,图4为本发明实施例四信息处理装置的组成结构示意图,如图4所示,该装置400包括第一获取单元401、第一生成单元402、添加单元403和处理单元404,其中:
所述第一获取单元401,用于获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
所述第一生成单元402,用于将每一种类的所述业务的第一业务数据生成待执行任务;
所述添加单元403,用于将所述待执行任务添加到任务队列中;
所述处理单元404,用于从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。
这里,所述不同种类业务可以包括房产业务、视频业务、音乐业务等。
这里,搜索平台为了能够用统一的方式高效地处理多种不同种类的业务数据,对业务数据的格式、文件命名等都采用统一的格式进行规范。在具体实现的过程中,可以定义业务数据格式为标准的Java Script对象表示法(JSON,JavaScript Object Notation))格式,同时支持全量数据和增量数据。JSON格式是一种轻量级的数据交换格式,JSON格式采用类似于C语言家族(包括C、C++、C#、Java、JavaScript、Perl、Python等)的习惯,从而易于人阅读和编写,同时也易于机器解析和生成。
这里,所述第一数据格式可以为上述的JSON格式。
这里,所述待执行任务一般具有预定的结构信息,一般来说一个待执行任务的结构信息主要包括以下几个方面的信息(可以理解为属性信息):
1)任务标识信息,即任务通用唯一识别码(UUID,Universally UniqueIdentifier);
2)业务信息,所述业务信息包括业务名称、部署互联网数据中心(IDC,InternetData Center)等信息、业务配置信息等;其中,IDC可以为用户提供包括申请域名、租用虚拟主机空间、服务器托管租用等服务。
3)任务数据目录信息,所述任务数据目录信息包括数据离线数据处理源目录、目标目录、临时目录和索引数据目录等信息;
4)任务状态信息,所述任务状态信息包括等待调度、正在执行、执行完成、执行错误等;
5)任务执行信息,任务执行信息包括任务生成时间、开始执行时间、执行完成时间、当前执行步骤、错误信息等;
6)其他信息:失败、告警、责任人等信息。
这里,第一获取单元401、第一生成单元402、添加单元403可以由生产者进程来实现,在具体实现的过程中,生产者进程可以由一台计算机或服务器来实现。处理单元404可以有消费者进程来实现,在具体实际的过程中,消费者进程可以由一台计算机或服务器来实现。
本发明实施例提供的信息处理装置,其中,第一获取单元401获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;第一生成单元402将每一种类的所述业务的第一业务数据生成待执行任务,添加单元403将所述待执行任务添加到任务队列中;处理单元404从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据。如此,本发明实施例采用生产者消费者模型,将多个不同种类的业务数据任务化,使得待执行任务的生成和执行分离开来;对不同的任务采用统一的数据格式,能够提高了数据处理流程的可扩展性,最终使得搜索平台能够适应多业务搜索的需求。
实施例五
本发明实施例提供一种信息处理装置,图5为本发明实施例五信息处理装置的组成结构示意图,如图5所示,该装置400包括第一获取单元401、第一生成单元402、添加单元403、处理单元404、第二获取单元405和第二生成单元406,其中:
所述第一获取单元401,用于获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
所述第一生成单元402,用于将每一种类的所述业务的第一业务数据生成待执行任务;
所述添加单元403,用于将所述待执行任务添加到任务队列中;
所述处理单元404,用于从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据;
所述第二获取单元405,用于获取每一种类的所述业务的顺排数据或倒排数据;
所述第二生成单元406,用于根据每一种类的所述业务的顺排数据或倒排数据,生成从关键词到统一资源定位器URL地址的关系索引表。
这里,所述不同种类业务可以包括房产业务、视频业务、音乐业务等。
这里,搜索平台为了能够用统一的方式高效地处理多种不同种类的业务数据,对业务数据的格式、文件命名等都采用统一的格式进行规范。在具体实现的过程中,可以定义业务数据格式为标准的Java Script对象表示法(JSON,JavaScript Object Notation))格式,同时支持全量数据和增量数据。JSON格式是一种轻量级的数据交换格式,JSON格式采用类似于C语言家族(包括C、C++、C#、Java、JavaScript、Perl、Python等)的习惯,从而易于人阅读和编写,同时也易于机器解析和生成。
这里,所述第一数据格式可以为上述的JSON格式。
这里,所述待执行任务一般具有预定的结构信息,一般来说一个待执行任务的结构信息主要包括以下几个方面的信息(可以理解为属性信息):
1)任务标识信息,即任务通用唯一识别码(UUID,Universally UniqueIdentifier);
2)业务信息,所述业务信息包括业务名称、部署互联网数据中心(IDC,InternetData Center)等信息、业务配置信息等;其中,IDC可以为用户提供包括申请域名、租用虚拟主机空间、服务器托管租用等服务。
3)任务数据目录信息,所述任务数据目录信息包括数据离线数据处理源目录、目标目录、临时目录和索引数据目录等信息;
4)任务状态信息,所述任务状态信息包括等待调度、正在执行、执行完成、执行错误等;
5)任务执行信息,任务执行信息包括任务生成时间、开始执行时间、执行完成时间、当前执行步骤、错误信息等;
6)其他信息:失败、告警、责任人等信息。
这里,所述关系索引表可以为顺排表或倒排表。
这里,第一获取单元401、第一生成单元402、添加单元403可以由生产者进程来实现,在具体实现的过程中,生产者进程可以由一台计算机或服务器来实现。处理单元404、第二获取单元405和第二生成单元406可以有消费者进程来实现,在具体实际的过程中,消费者进程可以由一台计算机或服务器来实现。
本发明实施例提供的信息处理装置,其中,第一获取单元401获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;第一生成单元402将每一种类的所述业务的第一业务数据生成待执行任务,添加单元403将所述待执行任务添加到任务队列中;处理单元404从所述任务队列中获取所述待执行任务进行处理,得到对应的顺排数据或倒排数据;第二获取单元405获取每一种类的所述业务的顺排数据或倒排数据;第二生成单元406于根据每一种类的所述业务的顺排数据或倒排数据,生成从关键词到统一资源定位器URL地址的关系索引表;如此,本发明实施例采用生产者消费者模型,将多个不同种类的业务数据任务化,使得待执行任务的生成和执行分离开来;对不同的任务采用统一的数据格式,能够提高了数据处理流程的可扩展性,最终使得搜索平台能够适应多业务搜索的需求。
实施例六
基于上述的实施例四或实施例五,本发明实施例提供一种信息处理装置,本发明实施例中所述待执行任务的结构信息至少包括业务配置信息,这时,图6-1为本发明实施例六信息处理装置的实现流程示意图,如图6-1所示,该装置400包括第一获取单元401、第一生成单元402、添加单元403和处理单元404,其中所述处理单元404包括第一检查模块441、第二检查模块442和第一生成模块443,其中:
所述第一获取单元401,用于获取多个来自于不同种类业务的且具有预设的第一数据格式的第一业务数据;
所述第一生成单元402,用于将每一种类的所述业务的第一业务数据生成待执行任务,并将所述待执行任务添加到任务队列中;
所述添加单元403,用于将所述待执行任务添加到任务队列中;
所述第一检查模块441,用于检查数据的合法性,具体包括:从所述任务队列中获取所述待执行任务,根据所述待执行任务获取第一业务数据,检查所述第一业务数据的数据格式的合法性;
这里,检查数据的合法性是为了确保任务的完整性。
这里,检查数据的合法性除了检查上述数据格式的合法性外,还包括检查数据类型的合法性。一方面,搜索平台为了能统一地处理多个业务的数据,规定了数据的标准格式为JSON格式,因此当前步骤首先要校验数据是否符合JSON格式;另一方面,搜索平台目前支持的数据类型包括:字符串类型、整型(无符号和有符号)、长整型(无符号和有符号)以及浮点型,因此需要检验业务数据是否和配置的数据类型、数据长度一致。
所述第二检查模块442,用于检查数据值的一致性,具体包括:当所述数据格式合法时,检查所述待执行任务的结构信息中的业务配置信息与所述第一业务数据中数据值的一致性。
这里,检查数据值的一致性,是为了确保配置文件正确。
这里,第一检查模块441和第一检查模块442还用于返回错误消息,该错误消息可以返回监控中心运营平台,错误消息中还可以携带错误的原因值,原因值不同,代表的错误类型不同,例如数据格式不合法的原因值与数据值不一致的原因值可以不同,以便于业务部门的人员查找出错误原因。
所述第一生成模块443,用于生成顺排数据或倒排数据,具体包括:当所述业务配置信息与所述数据值一致时,将所述第一业务数据进行处理生成对应的顺排数据或倒排数据。
本发明实施例中,所述处理单元还包括转换模块,用于当所述业务配置信息与所述数据值一致时,将所述第一业务数据的数据格式转换成预设的第二数据格式,所述第二数据格式与所述第一数据格式不同。
这里,所述第二数据格式与所述第一数据格式不同。所述第二数据格式可以为标准RecordIO格式。
本发明实施例中,所述待执行任务的结构信息还包括任务状态和任务执行时间信息;
对应地,所述处理单元还包括更新模块,用于在执行检查数据的合法性、检查数据值的一致性和生成顺排数据或倒排数据中至少任一步骤时,至少更新所述任务状态和所述任务执行时间信息。
本发明实施例,该装置还包括第二获取单元和第二生成单元,其中:
所述第二获取单元,用于获取每一种类的所述业务的顺排数据或倒排数据;
所述第二生成单元,用于根据每一种类的所述业务的顺排数据或倒排数据,生成从关键词到统一资源定位器URL地址的关系索引表。
本发明实施例中,所述第一生成单元,具体用于根据每一种类的所述业务的第一业务数据的大小,将每一种类的所述业务的业务数据生成一个或多个待执行任务。
本发明实施例中,如图6-2所示,所述第一生成单元包括获取模块421、第一处理模块422、分割模块423和第二生成模块424,其中:
所述获取模块421,用于获取每一种类的所述业务的第一业务数据的数据量;
所述处理模块422,用于将所述第一业务数据的数据量除以预设的第一阈值,得到第一倍数;
所述分割模块423,用于根据所述第一倍数将所述第一业务数据进行分割,得到一个或多个第二业务数据;
所述第二生成模块424,用于将每一所述第二业务数据生成一个待执行任务。
这里需要指出的是:信息处理装置实施例的描述与上述信息处理方法实施例的描述是类似的,同信息处理方法的有益效果描述,因此不再赘述。对于本发明信息处理装置实施例中未披露的技术细节,请参照本发明信息处理方法实施例的描述而理解。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。