索引构建方法及装置、电子设备制造方法及图纸

技术编号:21477110 阅读:47 留言:0更新日期:2019-06-29 04:43
本说明书实施例公开了一种索引构建方法及装置、电子设备。其中方法包括:根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片。获取与各用户子集对应的原始用户数据。通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据。将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。

【技术实现步骤摘要】
索引构建方法及装置、电子设备
本申请涉及数据库
,尤其涉及一种索引构建方法及装置、电子设备。
技术介绍
在各大网络平台(如网络支付平台、网约车平台等)上,随着业务的发展以及用户数的激增,产生了大量的用户数据,并且每一用户的用户数据可能包含上百个特征维度,这导致网络平台相关的用户数据的数据量极大。目前,网络平台产生的用户数据可以为线上服务提供数据支持,通常,用户数据以Hive表的形式保存在分布式文件系统(HadoopDistributedFileSystem,HDFS)上,然而,这种方式并不能确保用户数据可以被稳定而快速地检索到。为了提高数据检索速度,需要针对用户数据构建索引(index),然而,对数据量庞大的用户数据构建索引的过程较为耗时,效率低下。
技术实现思路
有鉴于此,本申请提供一种索引构建方法及装置、电子设备。为实现上述目的,本申请提供的技术方案如下:根据本申请的第一方面,提出了一种索引构建方法,包括:根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;获取与各用户子集对应的原始用户数据;通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据;将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。根据本申请的第二方面,提出了一种索引构建装置,包括:切分单元,用于根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;数据获取单元,用于获取与各用户子集对应的原始用户数据;任务执行单元,用于通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据;分发存储单元,用于将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。根据本申请的第三方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;所述处理器被配置为:根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;获取与各用户子集对应的原始用户数据;通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据;将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。根据本申请的第四方面,提出了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下步骤:根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;获取与各用户子集对应的原始用户数据;通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据;将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。通过以上技术方案可以看出,通过将待构建索引的用户集合划分为n个用户子集,并利用多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,最终,将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。利用多个索引构建子任务并行地执行索引创建过程,可以大大降低针对网络平台上产生的数据量庞大的用户数据的索引创建过程所需的耗时,提高效率。附图说明图1示出了一示例性实施例提供的一种索引构建方法的流程图;图2示出了一示例性实施例提供的一种用于构建索引的网络环境;图3示出了一示例性实施例提供的另一种索引构建方法的流程图;图4示出了一示例性实施例提供的一种索引构建装置的框图;图5示出了一示例性实施例提供的一种电子设备的结构。具体实施方式图1示出了一示例性实施例提供的一种索引构建方法的流程图,本申请实施例可采用MapReduceJob来实现索引构建过程,其中,MapReduce可包括若干Map任务和Reduce任务,Map任务用于将待构建索引的用户集合划分为n个用户子集,Reduce任务用于针对各用户子集对应的用户数据进行创建索引的过程。在一实施例中,该方法可包括如下步骤102~步骤108,其中:在步骤102中,根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中,每一用户子集对应一个索引分片。通常,索引分片的数量n可在索引创建前被确定,如:根据ES集群的硬件性能来确定所需划分的索引分片的数量n。其中,需要对本文涉及的几个名词进行定义:ES集群(cluster):即ElasticSearch集群,集群中有多个ES节点。其中,ElasticSearch(简称为ES)为基于Lucene的搜索服务器。索引分片(shards):ES可以把一个完整索引分成多个索引分片并分布到不同的ES节点上,以实现分布式搜索。用户集合:指网络平台(如:交通工具调度平台等)上的所有用户(如:交通工具调度平台上的乘客或司机)构成的集合。其中,用户集合可包含每一用户的用户ID。用户子集:将一个用户集合进行切换成若干份,所得到的多个子集。在一实施例中,在MapReduce的Mapper阶段,可以通过切分获得若干个用户子集,每个用户子集内包含若干用户ID(如:passenger_id)。其中,需要保证每个用户子集中包含的用户ID未在其他子集中出现,即用户子集内的用户ID不重复。例如,某网络平台包含1万个用户,用户ID从1到10000,若需要切分为20个用户子集,则子集1为:在步骤104中,获取与各用户子集对应的原始用户数据。原始用户数据是指没有创建索引之前的用户数据,如:以Hive表形式存在的离线数据。每一用户的用户数据可以包括若干个维度,如:用户名、年龄、所在城市、打车频率、消费类型等。在一实施例中,原始用户数据可以存放于分布式文件系统(HadoopDistributedFileSystem,HDFS)上,故可从HDFS上获取创建索引所需的原始用户数据。在步骤106中,通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据。在一可选实施例中,所述索引构建子任务的个数等于所划分的索引分片的数量n,从而使得一个构建子任务与一个索引分片对应,提高构建索引的效率。在MapReduce的Reducer阶段,每个索引构建子任务(即Reduce任务)可以各自启动一个ElasticSearchNode来为对应的用户子集创建索引,即,一个Reduce任务产生的索引数据对应于ElasticSearch的一个索引分片Shard。在步骤108中,将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。图2示出了一示例性实施例提供的一种用于构建索引的网络环境。如图2所示,该环境中可以包括ES集群、任务执行节点集群、HDFS以及任务池。其中,首先根据需要将ES集群划分为n个ES分片,每个ES分片是一个完整的搜索引擎并对应于一个ES节点。随后,通过ES将用户集合分为n个用户子集,创建n个索引创建子任务并放到任务池中,此后,任务执行节点集群(由多个具有并行运算能力的计算设备组成)根本文档来自技高网...

【技术保护点】
1.一种索引构建方法,其特征在于,所述方法包括:根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;获取与各用户子集对应的原始用户数据;通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据;将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。

【技术特征摘要】
1.一种索引构建方法,其特征在于,所述方法包括:根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;获取与各用户子集对应的原始用户数据;通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对应的索引数据;将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片。2.根据权利要求1所述的方法,其特征在于,在将待构建索引的用户集合划分为n个用户子集之前,还包括:创建与ES集群划分的n个索引分片对应的索引目录并上传到分布式文件系统;所述将所述用户子集对应的索引数据分发到所述ES集群中与所述用户子集对应的索引分片,包括:将与各用户子集对应的索引数据上传到所述分布式文件系统上的与所述用户子集对应的索引目录;从所述分布式文件系统获取索引数据并存储到所述ES集群中与各索引分片对应的ES节点中。3.根据权利要求1所述的方法,其特征在于,所述通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,包括:通过n个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,其中每个索引构建子任务用于对一个用户子集执行索引创建动作。4.根据权利要求2所述的方法,其特征在于,所述将与各用户子集对应的索引数据上传到所述分布式文件系统上的与所述用户子集对应的索引目录,包括:将与每一用户子集对应的索引数据通过非压缩方式处理为一个索引文件包;将获得的索引文件包上传到所述分布式文件系统上的与所述索引数据对应的索引目录。5.根据权利要求2所述的方法,其特征在于,所述从所述分布式文件系统获取索引数据并存储到所述ES集群中与各索引分片对应的ES节点中,包括:通过ES集群中的至少一个ES节点,从所述分布式文件系统获取索引文件包并对所述索引文件包进行拆解;将拆解获得的索引数据分发到ES集群中与各个索引分片对应的ES节点进行存储。6.一种索引构建装置,其特征在于,所述装置包括:切分单元,用于根据ES集群划分的索引分片的数量n,将待构建索引的用户集合划分为n个用户子集,其中每一用户子集对应一个索引分片;数据获取单元,用于获取与各用户子集对应的原始用户数据;任务执行单元,用于通过多个索引构建子任务并行地对各用户子集对应的原始用户数据执行索引创建动作,获得与各用户子集对...

【专利技术属性】
技术研发人员:凌宏博李奘曹利锋杨文君常智华杨帆
申请(专利权)人:北京嘀嘀无限科技发展有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1