标签更新方法、装置、集群及存储介质
技术领域
本发明实施例涉及基于标签更新技术,尤其涉及一种标签更新方法、装置、集群及存储介质。
背景技术
在大数据时代,要迅速从海量的数据中挖掘出数据的价值是一件很有挑战的事情,越来越多的企业会通过离线处理的方式对数据进行处理,通过数据特征以及对数据聚合统计等方式打上各种各样的标签,从而方便算法模型去支撑上层应用实现精准营销等功能。现有的打标签通常通过编写MapReduce程序对数据进行处理以输出结果文件,新标签打标过程需要改动标签计算程序来适应新标签的打标处理,开发维护成本较大。
发明内容
本发明提供一种标签更新方法、装置、集群及存储介质,以实现每次标签更新都需要针对标签更新规则改动标签更新程序,降低标签更新的程序开发和维护成本。
第一方面,本发明实施例提供了一种标签更新方法,包括:
接收服务器发送的第一打标规则;
读取待处理数据和对应的第二标签,所述第二标签为所述待处理数据基于第二打标规则定义的第二标签;
根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;
合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签。
可选的,所述合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签还包括:
比较待处理数据对应的第一标签和第二标签以获得所述第一标签的第一差异标签和第二标签的第二差异标签,所述第一差异标签与所述第二差异标签完全不同;
将第一差异标签写入第二标签中并删除所述第二标签中的所述第二差异标签以获得目标标签。
可选的,所述接收服务器发送的目标打标规则之前,还包括:
接收所述服务器通过发送的标签计算程序;
根据所述标签计算程序进行配置。
可选的,所述接收所述服务器通过发送的标签计算程序还包括:
接收所述服务器通过Livy Session发送的标签计算程序。
可选的,所述根据所述标签计算程序进行配置包括:
根据所述标签计算程序启用Spark job;
维护所述Spark job的Spark Session;
所述接收服务器发送的第一打标规则还包括:通过所述Spark Session接收所述服务器发送的所述第一打标规则。
可选的,所述获取待处理数据和对应的第二标签还包括:
通过Spark Sql从Hive中读取所述待处理数据和对应的第二标签。
可选的,所述服务器为Livy服务器。
第二方面,本发明实施例还提供了一种标签更新装置,包括:
接收模块,用于接收服务器发送的第一打标规则;
读取模块,用于读取待处理数据和对应的第二标签,所述第二标签为所述待处理数据基于第二打标规则定义的第二标签;
打标模块,用于根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;
更新模块,合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签。
第三方面,本发明实施例还提供了一种集群,所述集群包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的标签更新方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一所述的标签更新方法。
本发明通过读取待处理数据和对应的第二标签,根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签,解决了标签更新的问题,达到了根据用户定义打标规则进行标签更新,避免了每次标签更新都需要针对标签更新规则改动标签更新程序,降低标签更新的程序开发和维护成本的效果。
附图说明
下面将通过参照附图详细描述本发明的示例性实施例,使本领域的普通技术人员更清楚本发明实施例的上述及其他特征和优点,附图中:
图1是本发明实施例一中的标签更新方法的流程图;
图2是本发明实施例一中的标签更新方法的流程图;
图3是本发明实施例一中的第一标签与第二标签合并以获得目标标签的示意图;
图4是本发明实施例二中的标签更新方法的流程图;
图5是本发明实施例二中的标签更新方法的流程图;
图6是本发明实施例三中的标签更新装置的示意图;
图7是本发明实施例三中的标签更新装置的示意图;
图8是本发明实施例四中的集群的示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对发明的限定。另外还需要说明的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中使用的术语只是为了描述具体的实施方式的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本发明的范围的情况下,可以将第二标签集为第二标签集,且类似地,可将第二标签集称为第二标签集。第二标签集和第二标签集两者都是标签集,但其不是同一标签集。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的标签更新方法的流程图,该方法可以由集群来执行,具体包括如下步骤:
步骤110、接收服务器发送的第一打标规则。
本实施例中,第一打标规则为用户通过客户端向服务器提供的打标规则,服务器接收到第一打标规则后,将第一打标规则发送给集群。具体的,打标规则为对数据添加标签的规则;示例性的,若打标规则为对人群消费记录的打标规则,打标规则可以为将日均消费100元以下的个人添加低消费标签,将日均消费100-1000元之间的个人添加中等消费标签,将日均消费1000元以上的个人添加高消费标签。
步骤120、读取待处理数据和对应的第二标签,所述第二标签为所述待处理数据基于第二打标规则定义的第二标签;
本实施例中,待处理数据为需要打标的数据,第二标签为上一次更新的标签,具体为待处理数据基于第二打标规则定义的标签,在上一次标签更新结束后,待处理数据和对应的第二标签直接存储在集群中,因此可以直接从集群中读取待处理的数据和对应的第二标签。
步骤130、根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;
本实施例中,根据第一打标规则对所述待处理数据进行打标后,每个待处理数据对应一个第一标签。
步骤140、合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签。
本实施例中,在步骤130之后,每一个待处理数据都对应一个第一标签和一个第二标签,合并第一标签和第二标签即可获得目标标签。
具体的,参见图2,所述合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签还包括步骤141和步骤142。
步骤141、比较待处理数据对应的第一标签和第二标签以获得所述第一标签的第一差异标签和第二标签的第二差异标签,所述第一差异标签与所述第二差异标签完全不同;
本实施例中,一并参见图3,比较待处理数据对应的第一标签01和第二标签02之后,第一标签01可分为与第二标签02重复的第一相同标签012,和与第二标签02完全不重叠的第一差异标签011;第二标签02可分为与第一标签01重复的第二相同标签022,和与第一标签01完全不重叠的第二差异标签021;其中第一差异标签011与第二差异标签021完全不同,第一相同标签012与第二相同标签022完全相同。
步骤142、将第一差异标签写入第二标签中并删除所述第二标签中的所述第二差异标签以获得目标标签。
本实施例中,一并参见图3,将第一标签01的第一相同标签012滤除,以获得第一差异标签011,将第一差异标签011写入第二标签02中,并将第二标签02中的第二差异标签021删除,以获得目标标签。其中目标标签包括第二相同标签022和第一差异标签011。
步骤141和步骤142通过将待处理数据对应的第一标签和第二标签以获得所述第一标签的第一差异标签和第二标签的第二差异标签,将第一差异标签写入第二标签中并删除所述第二标签中的所述第二差异标签以获得目标标签,解决了标签更新时,新标签写入量大,标签更新时间长的问题,达到了减小写入的信息量,节约标签更新的时间的效果。
本实施例的技术方案,通过读取待处理数据和对应的第二标签,根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签,解决了标签更新的问题,达到了根据用户定义打标规则进行标签更新,避免了每次标签更新都需要针对标签更新规则改动标签更新程序,降低标签更新的程序开发和维护成本的效果。
实施例二
图4为本发明实施例二提供的标签更新方法的流程图,该方法可以由集群来执行,具体包括如下步骤:
步骤210、接收所述服务器通过发送的标签计算程序;
本实施例中,所述服务器为Livy服务器,标签计算程序为依赖Spark计算引擎构建的程序,标签计算程序为一种用于给数据打标的程序。Livy是一个典型的REST服务架构,它一方面接受并解析用户的REST请求,转换成相应的操作,并将该操作发送给集群进行处理;另一方面它管理着用户所启动的所有的集群。
具体的,当用户需要向集群发送标签计算程序时,用户可以通过调用Livy Client(Livy客户端)在Livy服务器上创建一个新的Livy Session。所述接收所述服务器通过发送的标签计算程序:接收所述服务器通过Livy Session发送的标签计算程序,具体的,用户可以通过Livy Client向服务器发送标签计算程序;服务器再通过Livy Session向集群发送标签计算程序。
步骤220、根据所述标签计算程序进行配置。
本实施例中,集群接收到服务器标签计算程序之后将根据计算机程序进行配置,具体的,参见图5,所述根据所述标签计算程序进行配置包括步骤221和步骤222。
步骤221、根据所述标签计算程序启用Spark job;
步骤222、维护所述Spark job的Spark Session;
本实施例中,经过步骤221和步骤222之后,标签计算程序已经配置在集群中,并且已经启动,可以随时调用标签计算程序以执行对应标签更新操作。
步骤230、接收服务器发送的第一打标规则。
本实施例中,第一打标规则为用户通过客户端向服务器提供的打标规则,服务器接收到第一打标规则后,将第一打标规则发送给集群。接收服务器发送的第一打标规则还包括:通过所述Spark Session接收所述服务器发送的所述第一打标规则。具体的,用户通过Livy Client向服务器发送第一打标规则,服务器再通过Livy Session向集群发送第一打标规则,集群通过Spark Session接收第一打标规则。
本实施例中,第一打标规则具体为一种描述打标规则的Sql(Structured QueryLanguage结构化查询语言),打标规则为对数据添加标签的规则,示例性的,可以包括对哪个或哪类数据进行打标,对该数据添加标签的规则。其中第一打标规则与标签计算程序对应,集群在接收到第一打标规则之后,将第一打标规则提交给对应的标签计算程序中以通过集群中已经启动的标签计算程序执行后续的标签更新步骤。
步骤240、读取待处理数据和对应的第二标签,所述第二标签为所述待处理数据基于第二打标规则定义的第二标签;
本实施例中,所述获取待处理数据和对应的第二标签还包括:通过Spark Sql从Hive中读取所述待处理数据和对应的第二标签。Spark SQL是Spark用来处理结构化数据的一个模块,可以通过Spark SQL使用普通的Sql在依赖Spark计算引擎构建的程序中查询结构化数据。Hive是基于Hadoop的一个数据仓库工具,其中Hive的数据都存储在Hadoop兼容的文件系统中,Hive用来进行数据的提取、转化、加载;并且可以存储、查询和分析存储在Hadoop中的大规模数据的机制,Hive还可以结构化的数据文件映射为一张数据库表,并提供SQL查询功能。待处理数据和对应的第二标签存储在Hive的数据库中,因此,集群中的标签计算程序通过Spark SQL使用第一打标规则(描述打标规则的Sql)从Hive中读取待处理数据和对应的第二标签。
本实施例中,待处理数据为需要打标的数据,第二标签为上一次更新的标签,具体为待处理数据基于第二打标规则定义的标签,在上一次标签更新结束后,待处理数据和对应的第二标签直接存储在集群中,因此可以直接从集群中读取待处理的数据和对应的第二标签。
步骤250、根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;
本实施例中,根据第一打标规则对所述待处理数据进行打标后,每个待处理数据对应一个第一标签。
步骤260、比较待处理数据对应的第一标签和第二标签以获得所述第一标签的第一差异标签和第二标签的第二差异标签,所述第一差异标签与所述第二差异标签完全不同;
本实施例中,一并参见图3,比较待处理数据对应的第一标签和第二标签之后,第一标签可分为与第二标签重复的第一相同标签,和与第二标签完全不重叠的第一差异标签;第二标签可分为与第一标签重复的第二相同标签,和与第一标签完全不重叠的第二差异标签;其中第一差异标签与第二差异标签完全不同,第一相同标签与第二相同标签完全相同。
步骤270、将第一差异标签写入第二标签中并删除所述第二标签中的所述第二差异标签以获得目标标签。
本实施例的技术方案一方面通过将待处理数据对应的第一标签和第二标签以获得所述第一标签的第一差异标签和第二标签的第二差异标签,将第一差异标签写入第二标签中并删除所述第二标签中的所述第二差异标签以获得目标标签,解决了标签更新时,新标签写入量大,标签更新时间长的问题,达到了减小写入的信息量,节约标签更新的时间的效果;另一方面,通过livy服务器控制Spark集群进行标签更新,当多个任务并行时,可以实现Spark Session的复用以及数据资源共享,在节约其他任务的处理时间时同时节约了当前标签更新任务的时间,还提高了整体计算性能。
实施例三
本发明实施例所提供的标签更新装置可执行本发明任意实施例所提供的标签更新方法,参见图6,标签更新装置3具体包括:
接收模块31,用于接收服务器发送的第一打标规则;
读取模块32,用于读取待处理数据和对应的第二标签,所述第二标签为所述待处理数据基于第二打标规则定义的第二标签;
打标模块33,用于根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;
更新模块34,用于合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签。
替代实施例中,所述更新模块,还用于比较待处理数据对应的第一标签和第二标签以获得所述第一标签的第一差异标签和第二标签的第二差异标签,所述第一差异标签与所述第二差异标签完全不同;将第一差异标签写入第二标签中并删除所述第二标签中的所述第二差异标签以获得目标标签。
替代实施例中,参见图7,所述接收模块31,还用于接收所述服务器通过发送的标签计算程序;所述标签更新装置还包括:
配置模块35,用于根据所述标签计算程序进行。
替代实施例中,所述接收模块,还用于接收所述服务器通过Livy Session发送的标签计算程序。
替代实施例中,所述配置模块,还用于根据所述标签计算程序启用Spark job;维护所述Spark job的Spark Session;所述接收模块还用于通过所述Spark Session接收所述服务器发送的所述第一打标规则。
替代实施例中,所述读取模块,还用于通过Spark Sql从Hive中读取所述待处理数据和对应的第二标签。
替代实施例中,,所述服务器为Livy服务器。
本发明实施例所提供的标签更新装置可执行本发明任意实施例所提供的标签更新方法,具备执行方法相应的功能模块和有益效果。
实施例四
图8为本发明实施例四提供的一种集群的结构示意图,如图8所示,该集群包括处理器41、存储器42;集群中处理器41的数量可以是一个或多个,图8中以一个处理器41为例;集群中的处理器41、存储器42可以通过总线或其他方式连接,图8中以通过总线连接为例。
存储器42作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的标签更新方法对应的程序指令/模块(例如,接收模块、读取模块、打标模块和/或更新模块)。处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行集群的各种功能应用以及数据处理,即实现上述的标签更新方法。
存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至集群。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种标签更新方法,该方法包括:
接收服务器发送的第一打标规则;
读取待处理数据和对应的第二标签,所述第二标签为所述待处理数据基于第二打标规则定义的第二标签;
根据所述第一打标规则对所述待处理数据进行打标,以获得所述待处理数据基于所述第一打标规则定义的第一标签;
合并所述待处理数据对应的所述第一标签和所述第二标签以获得目标标签。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的标签更新方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,集群,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。