数据处理方法及系统的制作方法_4

文档序号:9708326阅读:来源:国知局
a接收到元组(业务I的元组或业务2的元组)时进行清洗操作,包括对元组中的数据进行缺省值填充、特殊值对齐处理、合法性判断等操作,根据Bolt a自身的业务逻辑过滤掉不需要的数据即“脏数据”的过程,将处理后的数据以流的形式(基本单元为元组)发送至Bolt b ;
[0125]2)当Bolt b接收到业务I的元组时,将业务I的元组内封装入业务I的业务处理策略;当Bolt b接收到业务I的元组时,将业务I的元组内封装入业务I的业务处理策略;
[0126]3)Bolt c接收到业务I的元组时,根据业务I的元组内封装的业务处理策略处理业务I的元组中封装的数据;Bolt b接收到业务2的元组时,根据业务2的元组内封装的业务处理策略处理业务2的元组中封装的数据。
[0127]可以看出,相关技术中,受制于业务I和业务2的业务数据的业务处理策略的不同,当提交了处理业务I的Topology并由Storm集群进行处理时,如果还需要处理业务2的业务数据,则根据业务2的业务处理策略向Storm集群提交Topology以部署Storm系统,这必然会造成计算资源的浪费;而本实施例中,通过将不同业务的元组进行归一化处理,实现了不同业务可使用同一 Toplogy部署的Strom系统支持多个业务的接入,节约了 Storm集群的计算资源。
[0128]实施例四
[0129]相关技术提供的Storm系统在实际应用中还存在以下问题:数据存储负荷重,由于Storm系统往往用来处理海量数据(TB级别甚至更大),相关技术提供的storm系统的数据吞吐能力无法满足处理海量数据需求,这就增大了存储storm系统未处理数据的负荷,进而提高了实施成本;相应地,发明人还发现,如果Storm系统中的Bolt能够能够按照业务处理策略中的指示的获取的业务信息的粒度,对元组进行合并,并利用合并后的元组进行计算,则能够明显提升Storm系统的数据吞吐性能;例如,当业务处理策略指示根据每天的更新的业务数据进行一次计算,根据每周更新的业务数据进行一次更新计算;当利用每周的更新的业务数据进行计算时,Bolt首先将每周的更新的业务数据进行合并(也即将最小粒度的业务数据进行合并),并利用合并后的业务数据进行计算,这样Spout可以一次性从外部数据源获取每周的更新的业务数据,而不是每次获取一天更新的业务数据,并重复执行,直至获取到每周更新的业务数据;从而可以提升Spout —次从外部数据源获取数据的总量,进而提升了 Storm系统的数据吞吐性能。
[0130]本实施例记载一种Storm系统,如图9所示,包括:
[0131]Spout,用于向Bolt发送至少两个业务的数据,数据以流的形式在Spout与Bolt之间传递,流的基本传输单位为元组;
[0132]Bolt a,用于对来自多个业务的数据进行清洗,包括对数据进行缺省值填充、特殊值对齐处理、合法性判断等操作,根据Bolt a自身的业务逻辑过滤掉不需要的数据即“脏数据”的过程,将处理后的数据以流的形式(基本单元为元组)发送至Bolt b ;
[0133]Storm系统还包括Bolt bl?Bolt b,以及Bolt cl?Bolt cN, N为大于I的整数;其中,
[0134]Bolt bl,用于以第一粒度(例如天)为粒度合并元组,并发送合并后的元组至Bolt cl ;
[0135]Bolt Cl,用于更新计算结果,也即根据元组内部的封装的业务逻辑对元组内的数据进行处理,并将处理后的结果(以流的形式,基本传输单位为元组)发送至下游Bolt或将计算结果入库存储;
[0136]Bolt bi,用于以第i(大于1,小于η)粒度合并元组,并发送合并后的元组至Boltci ;
[0137]Bolt ci,用于根据第i粒度的数据的合并结果,更新计算结果,也即根据元组内部的封装的业务逻辑对元组内的数据进行处理,并将处理后的结果(以流的形式,基本传输单位为元组)发送至下游Bolt或将计算结果入库存储;
[0138]Bolt bN,用于以第N粒度(大于第N-1粒度。例如周)合并元组,并发送合并后的元组至Bolt cn ;
[0139]Bolt cN,用于根据第N粒度的数据的合并结果,更新计算结果,也即根据元组内部的封装的业务处理策略对元组内的数据进行处理,并将处理后的结果(以流的形式,基本传输单位为元组)发送至下游Bolt或将计算结果入库存储;
[0140]需要指出的是,上述第I粒度至第N粒度的可以时间和/或空间为维度进行划分;
[0141]以业务处理策略指示根据每天的更新的业务数据进行一次计算,根据每周更新的业务数据进行一次更新计算为例进行说明,Bolt bl以天为粒度对接收的数据进行合并,并将合并后的数据发送中Bolt cl, Bolt Cl利用合并后的数据进行计算;Bolt b2以周为粒度对接收的数据进行合并,并将合并后的数据发送中Bolt c2, Bolt c2利用合并的后数据更新计算结果;这样,Spout可以根据粒度从Storm系统的外部数据源获取数据,减少了网络调用的次数,提升了 Storm集群的数据吞吐性能;
[0142]如图9所示,Storm系统中的上述组件可以通过工作节点(位于Stomr集群中的一个或多个服务器)实现,可以与工作节点中运行的Worker进程中的线程对应,每个组件可以作为一个任务,从而可以使Spout和Bolt均支持并行运行;例如,当Topology中指定Bolt a的并行度为5时,贝U工作节点中运行的Supervisor可以为Bolt a分配5个线程。
[0143]如图9所示,作为一个示例,实际应用中,可以将数据获取的业务处理策略以Retriver interface表示,将数据清洗和归一化处理的业务处理策略以Parser interface表示;将元组合并处理的业务处理策略以Combiner interface表示;将更新计算结果的业务处理策略以Updater interface表不;Bolt中将兀组向上转型为Retriver interface,并调用Retriver interface定义的方法,可以实现对元组的数据清洗;Bolt中将元组向上转型为Retriver interface,并调用Retriver interface定义的方法,可以实现对元组的发送;Bolt将元组向上转型为Parser interface,并调用Parser interface定义的方法,可以实现对元组的数据清洗;Bolt将元组向上转型为Combiner interface,并调用Combiner interface定义的方法,可以实现对元组的合并;Bolt将元组向上转型为Updater interface,并调用Updater interface定义的方法,可以实现根据元组更新计算结果。
[0144]实施例五
[0145]本实施例记载的Storm系统可以支持接入多种业务的数据的接入,也即可以对多种业务的数据进行处理,避免相关技术中Bolt代码复用率低下的问题;如图10所示,本实施例记载的Storm系统包括:
[0146]Spout,用于向Bolt发射至少两个业务的数据,数据以流的形式在Spout与Bolt之间传递,流的基本传输单位为元组;
[0147]Bolt a,用于对来自多个业务的数据进行清洗,包括对数据进行缺省值填充、特殊值对齐处理、合法性判断等操作,根据Bolt a自身的业务逻辑过滤掉不需要的数据即“脏数据”的过程,将处理后的数据以流的形式(基本单元为元组)发送至Bolt b ;
[0148]Bolt b,用于进行归一化处理,也即在接收的元组内部封装业务对应的业务处理逻辑,并将封装后的元组发送至Bolt c ;以图7示出的业务I和业务2为例,当Bolt b接收到业务I的元组时,在业务I的元组内封装入业务I的业务处理策略;当Bolt b接收到业务I的元组时,在业务I的元组内封装入业务I的业务处理策略;
[0149]Bolt C,用于更新计算结果,也即根据元组内部的封装的业务处理策略对元组内的数据进行处理,并将处理后的结果(以流的形式,基本传输单位为元组)发送至下游Boltc或将计算结果入库存储;
[0150]Storm系统还包括Bolt bl?Bolt b,以及Bolt cl?Bolt cN, N为大于I的整数;其中,
[0151]Bolt bl,用于以第一粒度(例如天)为粒度合并元组,并发送合并后的元组至Bolt cl ;
[0152]Bolt Cl,用于更新计算结果,也即根据元组内部的封装的业务处理策略对元组内的数据进行处理,并将处理后的结果(以流的形式,基本传输单位为元组)发送至下游Bolt或将计算结果入库存储;
[0153]Bolt bN,用于以第η粒度(大于第N_1粒度。例如周)合并元组,并发送合并后的元组至Bolt cn ;
[0154]Bolt cN,用于根据第N粒度的数据的合并结果,更新计算结果,也即根据元组内部的封装的业务处理策略对元组内的数据进行处理,并将处理后的结果(以流的形式,基本传输单位为元组)发送至下游Bolt或将计算结果入库存储;
[0155]以业务I处理策略指示根据每天的更新的业务数据进行一次计算,根据每周更新的业务数据进行一次更新计算为例进行说明,Bolt bl以天为粒度对接收的数据进行合并,并将合并后的数据发送中Bolt cLBolt Cl利用合并的后数据进行计算;Bolt b2以周为粒度对接收的数据进行合并,并将合并后的数据发送中Bolt c2, Bolt c2利用合并的后数据更新计算结果;对于业务2的处理与以上类似,这里不再赘述。这样,Spout可以根据粒度从Storm系统的外部数据源获取数据,减少了网络调用的次数,提升了 Storm集群的数据吞吐性能;同时,通过将不同业务的元组进行归一化处理,实现了不同业务可使用同一 Toplogy部署的Strom系统支持多个业务的接入,节
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1