数据处理方法、装置、存储介质和电子装置与流程

文档序号:15999277发布日期:2018-11-20 19:14阅读:199来源:国知局
本发明涉及数据处理领域,具体而言,涉及一种数据处理方法、装置、存储介质和电子装置。
背景技术
::目前,当一个数据库中的数据出库到另外一个数据库时,如果一个数据库的字段出现变更,则与其对应的另外一个数据库的结构也要发生变更,比如,当Hive数据出库到MySQL数据库时,如果Hive的字段出现变更,则对应的MySQL表结构也要进行同步的变更。其中,MySQL表结构的变更涉及到对表的加锁、原表复制、数据中转、字典刷新等操作,从而导致数据变更的处理成本高,进而导致数据的运营成本高。针对上述数据变更的处理成本高的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种数据处理方法、装置、存储介质和电子装置,以至少解决相关技术数据变更的处理成本高的技术问题。根据本发明实施例的一个方面,提供了一种数据处理方法。该数据处理方法包括:检测到第一目标数据的字段发生变更;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据;向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。根据本发明实施例的另一方面,还提供了一种数据处理装置。该数据处理装置包括:检测单元,用于检测到第一目标数据的字段发生变更;编码单元,用于对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据;写入单元,用于向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。根据本发明实施例的另一方面,还提供了一种存储介质。该存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行本发明实施例的数据处理方法。根据本发明实施例的另一方面,还提供了一种电子装置。该电子装置包括存储器和处理器,其特征在于,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行本发明实施例的数据处理方法。在本发明实施例中,检测到第一目标数据的字段发生变更;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据;向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。通过向第二目标数据的目标字段写入对第一目标数据中发生变更的字段按照目标编码协议进行编码得到的第一编码数据,得到与第二目标数据的结构相同的第三目标数据,避免了在第一目标数据的字段发生变更的情况下,第二目标数据的字段也发生变更,从而实现了降低数据变更的处理成本的技术效果,进而解决了相关技术数据变更的处理成本高的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的一种数据处理方法的硬件环境的示意图;图2是根据本发明实施例的一种数据处理方法的流程图;图3是根据本发明实施例的一种数据接口的逻辑示意图;图4是根据本发明实施例的一种数据流转的方法的交互图;图5是根据本发明实施例的一种产品应用效果的示意图;图6是根据本发明实施例的一种数据中间件的协议逻辑封装操作界面的示意图;图7是根据本发明实施例的一种协议编码后的效果展示的示意图;图8是根据本发明实施例的一种数据处理装置的示意图;以及图9是根据本发明实施例的一种电子装置的结构框图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本发明实施例的一个方面,提供了一种数据处理方法的实施例。可选地,在本实施例中,上述数据处理方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中。图1是根据本发明实施例的一种数据处理方法的硬件环境的示意图。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的数据处理方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的数据处理方法也可以是由安装在其上的客户端来执行。图2是根据本发明实施例的一种数据处理方法的流程图。如图2所示,该方法可以包括以下步骤:步骤S202,检测到第一目标数据的字段发生变更。在本申请上述步骤S202提供的技术方案中,第一目标数据为在数据处理中需要出库的数据,也即,在数据处理中需要流转的数据,可以为数据仓库工具Hive的数据,该Hive可以将结构化的数据文件映射为一张数据库表,并提供完整的查询功能。在数据开发过程中,第一目标数据的字段会出现变更,也即,第一目标数据的结构会出现变更。第一目标数据的字段在出现变更时可以为增加字段、减少字段、替换字段等。比如,第一目标数据的字段为a、b、c字段,则第一目标数据的字段在增加字段之后,可以为a、b、c、d字段,其中,d字段为第一目标数据的变更的字段,在第一目标数据的字段在减少字段之后,可以为a、b字段,其中,c字段为第一目标数据的变更的字段,在第一目标数据的字段替换字段之后,可以为a、b、e字段,其中,e字段为第一目标数据将c字段进行替换的变更字段,此处不做任何限制。出库中间件为系统软件和应用软件之间连接的软件,以便于软件各部件之间数据在出库时的传输,该实施例可以通过出库中间件检测第一目标数据的结构是否出现变更,比如,检测是否接收到用于指示第一目标数据的字段发生变更的目标消息,该目标消息可以为数据变更的请求消息,可以携带第一目标数据的字段发生变更的数据,比如,变更字段为新增字段,该目标消息携带包括新增字段名称和类型((k1,int),(k2,int))。步骤S204,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据。在本申请上述步骤S204提供的技术方案中,在检测到第一目标数据的字段发生变更时,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据,该目标编码协议为出库中间件中封装的可扩展协议,该第一编码数据可以通过目标编码协议对第一目标数据中出现变更的字段进行编码得到,也即,第一编码数据为对第一目标数据中出现变更的字段进行协议编码处理得到,可选地,该第一编码数据为通过对变更字段对应的值进行协议编码处理得到的编码数据。可选地,第一目标数据新增多个字段,通过该目标编码协议将多个字段对应的值编码为字符串类型,将字符串类型的多个字段对应的值和多个字段的名称通过分隔符连接为一个字符串,从而得到上述第一编码数据,该第一编码数据可以包括版本标识(ver),用于指示第一目标数据的字段发生变更的版本,可以根据版本标识的值对第一目标数据进行新旧版本的兼容处理。举例而言,第一编码数据为“ver=1&k1=v1&k2=v2”,其中,ver=1用于表示对第一目标数据的字段进行变更的版本为1,k1、k2用于表示第一目标数据新增字段的名称,v1、v2分别用于表示字段k1对应的值、字段k2对应的值。步骤S206,向第二目标数据的目标字段写入第一编码数据,得到第三目标数据。在本申请上述步骤S206提供的技术方案中,在对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据之后,向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。在该实施例中,第二目标数据为与第一目标数据相关联的数据,为第一目标数据出库的对象,可以为MySQL数据库中的数据,该MySQL是类型敏感的数据库,需要对第一目标数据中出现变更的字段按照目标编码协议进行编码。该实施例的第二目标数据的结构在设计时,可以增加一个目标字段,该目标字段可以为字符串类型的字段,比如,该目标字段为ext字段,与第一编码数据相适配,可以用于存储第一目标数据的第一编码数据,也即,用于存储对第一目标数据中出现变更的数据结构的数据进行编码后的编码内容,比如,用于存储对第一目标数据中的新增字段编码后的内容。向上述第二目标数据的目标字段写入第一编码数据,得到第三目标数据,该第三目标数据为目标字段包括第一编码数据的第二目标数据,可选地,在得到第三目标数据时,出库中间件读取上述第一编码数据,然后调用根据目标编码协议编码的SQL语句,向上述第二目标数据的目标字段执行写MySQL操作,可以将第一编码数据封装在目标字段中,从而得到第三目标数据。举例而言,目标字段为第二目标数据的表结构在设计时,预留的字符串类型的字段,比如,目标字段为字段ext,用于存储对第一目标数据出现变更的字段进行编码后的编码内容,第二目标数据对应的表结构的设计可以如下所示:tb_MySQL_xxx_demo(idatebigintunsignedcomment‘时间’,uinvarchar(50)comment‘qqoropenid’,…exttextcomment‘对应Hive新增字段内容’)其中,idate用于表示日期,uin用于表示识别信息,exttextcomment对应于Hive新增字段内容,将第一编码数据封装在目标字段ext中,从而得到第三目标数据。该实施例的第三目标数据与第二目标数据的结构相同,可以都为MySQL数据库,包括相同的字段,从而使得在第一目标数据的字段发生变更的情况下,得到的第三目标数据的结构仍然与第二目标数据的结构相同,避免了在第一目标数据出库到第二目标数据时,在第一目标数据的字段发生变更的情况下,第二目标数据的结构也出现变更,导致数据结构的变更成本高的问题。需要说明的是,该实施例的第二目标数据与第一目标数据的类型不匹配,第二目标数据对应的数据库可以是类型敏感的数据库,不能直接将第一目标数据中变更的字段存储至第二目标数据的目标字段中,即使直接将第一目标数据中变更的字段存储至第二目标数据的目标字段中,由于使用者没有固定的解析编码协议,也无法正确地提取出第一目标数据中出现变更的字段的信息。可选地,该实施例的第一目标数据为Hive数据,第二目标数据为MySQL数据,可以通过MySQL的表结构增加一个字符串类型的字段ext进行可扩展性设计,当Hive的字段发生变更时,通过可扩展协议将变更的字段内容封装到ext字段,这样即可不用变更MySQL表结构,从而节省了运营的成本,同时对已有业务接口做了新旧兼容,避免对生产环境业务造成影响。通过上述步骤S202至步骤S206,检测到第一目标数据的字段发生变更;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据;向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。通过向第二目标数据的目标字段写入对第一目标数据中发生变更的字段按照目标编码协议进行编码得到的第一编码数据,得到与第二目标数据的结构相同的第三目标数据,避免了在第一目标数据的字段发生变更的情况下,第二目标数据的字段也发生变更,从而实现了降低数据变更的处理成本的技术效果,进而解决了相关技术数据变更的处理成本高的技术问题。作为一种可选的实施方式,步骤S202,检测到第一目标数据的字段发生变更包括:获取目标请求,其中,目标请求用于指示第一目标数据的字段发生变更、以及发生变更的字段;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据包括:响应目标请求,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据。在该实施例中,在检测到第一目标数据的字段发生变更时,可以获取目标请求,该目标请求可以为第一目标数据的终端向出库中间件发送的数据变更请求,用于指示第一目标数据的字段发生变更、以及发生变更的字段,比如,该目标请求为新增字段请求,用于指示第一目标数据的结构新增了字段,且用于指示新增字段的名称和类型等。在获取到目标请求之后,对目标请求进行响应,可以对目标请求进行词法分析、语义解析等处理,转换成对应的处理语句,比如,目标请求“tablename=xxx&k1=v1&k2=v2”简记为s,词法分析主要针对s中的令牌(token)有[tablename,k1,k2],值为[xxx,v1,v2],识别s中的字符为读取一个个字符,遇到字符‘=’之后就完成一次token提取;语义解析主要检查目标请求是否有逻辑错误,比如,在正常情况下要把字段名为k1,k2的字段分别赋值为v1,v2;如果有k2而没有v2时,则出现逻辑错误,进行报错。在对目标请求进行词法分析,语义解析等处理之后,对第一目标数据中出现变更的字段按照目标编码协议进行编码,得到第一编码数据,进而向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,避免了在第一目标数据的字段发生变更的情况下,第二目标数据的字段也发生变更,从而实现了降低数据变更的处理成本的效果。作为一种可选的实施方式,步骤S204,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据包括:按照目标编码协议对第一目标数据中发生变更的字段的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据。在该实施例中,第一目标数据的字段包括变更的字段的名称和类型,比如,第一目标数据新增字段k1、k2,k1和k2为第一目标数据中出现变更的字段,其类型可以均为整型,按照目标编码协议对新增字段((k1,int),(k2,int))的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据。作为一种可选的实施方式,按照目标编码协议对第一目标数据中发生变更的字段的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据包括:将第一目标数据中发生变更的字段的值的类型转换成字符串类型;将字段的名称和字符串类型的字段的值编码为目标字符串;将目标字符串和目标标识合成第一编码数据,其中,目标标识用于标识字段发生变更后的第一目标数据的版本,版本与发生变更的字段相对应。在该实施例中,在对第一目标数据中发生变更的字段的名称、字段的值和字段的值的类型按照目标编码协议进行编码,得到第一编码数据时,可以将第一目标数据中发生变更的字段对应的值转换成字符串类型,比如,第一目标数据新增字段k1,k2,将新增字段k1,k2字段对应的值分别转换成字符串类型,记为v1,v2。在将第一目标数据中出现变更的字段对应的值的类型转换成字符串类型之后,将字段的名称和字符串类型的字段的值编码为目标字符串,比如,将新增字段k1,k2和对应的字符串类型的值v1和v2使用类统一资源定位符(UniformResourceLocator,简称为URL)编码成一个目标字符串,记为ext,其值为“k1=v1&k2=v2”,其中,符号‘&’用于表示字段分隔符,符号‘=’用于表示键值分隔符。该实施例的目标标识用于标识第一目标数据的字段进行变更的版本,可以用版本标识字段‘ver’进行表示,将目标字符串和目标标识合成第一编码数据,可以为将目标字符串“k1=v1&k2=v2”和版本标识‘ver’进行合成,比如,ver=1,将“k1=v1&k2=v2”和目标标识“ver=1”合成第一编码数据ver=1&k1=v1&k2=v2”,可选地,每当第一目标数据的字段发生变更,目标标识ver的值就自增1。该实施例通过增加目标标识,使得目标应用对第一目标数据的结构的变更版本进行兼容,也即,根据目标标识对应的字段的值,进行新旧版本的兼容处理。比如,当应用需要读取的数据的版本为1时(ver=1),只取k1=v1,当需要读取的数据版本为2时(ver=2),返回k1=v1&k2=v2。因此,当第一目标数据新增了字段k2后,对于ver=1的接口还是可以保持不变,继续使用的。作为一种可选的实施方式,将字段的名称和字符串类型的字段的值编码为目标字符串包括:在发生变更的字段包括多个字段的情况下,将每个字段的名称和每个字段的值之间设置第一目标分隔符,将多个字段中每相邻的两个字段之间设置第二目标分隔符,得到目标字符串。在该实施例中,第一目标数据出现变更的字段可以包括多个字段,比如,第一目标数据新增多个字段,则将多个字段使用类URL编码成一个目标字符串。可选地,在发生变更的字段包括多个字段的情况下,将每个字段的名称和每个字段的值之间设置第一目标分隔符,将多个字段中每相邻的两个字段之间设置第二目标分隔符,得到目标字符串,比如,第一目标分隔符为键值分隔符‘=’,第二目标分隔符为字段分隔符‘&’,多个字段的名称为k1、k2,分别对应的字符串类型的字段值为v1、v2,则目标字符串ext为“k1=v1&k2=v2”。作为一种可选的实施方式,在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之后,该方法还包括:通过目标应用按照与目标编码协议对应的目标解码协议对第一编码数据进行解码,得到发生变更的字段。在该实施例中,目标应用可以为游戏应用(Application,简称为App),游戏微官网等,此处不做任何限制。在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之后,通过目标应用对第一目标数据中发生变更的字段进行使用,可以按照与目标编码协议对应的目标解码协议对第一编码数据中的发生变更的字段进行提取,比如,根据与目标编码协议对应的目标解码协议约定的目标分隔符对发生变更的字段进行提取,比如,目标分隔符为键值分隔符‘=’和字段分隔符‘&’,对第一编码数据“k1=v1&k2=v2”中发生变更的字段k1、k2进行提取。作为一种可选的实施方式,通过目标应用按照与目标编码协议对应的目标解码协议对第一编码数据进行解码,得到发生变更的字段包括:通过目标应用按照目标分隔符从第一编码数据中提取出多个字段,得到发生变更的字段,其中,第一编码数据中的多个字段中每相邻两个字段,由目标分隔符连接。在该实施例中,约定的目标分隔符可以为字段分隔符‘&’和键值分隔符‘=’,在第一编码数据中,多个字段中每相邻两个字段,由字段分隔符‘&’连接,每个字段的名称和每个字段的值通过键值分隔符‘=’连接,通过目标应用按照目标分隔符从第一编码数据中提取出多个字段,该多个字段即为第一目标数据中发生变更的字段,从而还原第一目标数据的变更字段的信息。作为一种可选的实施方式,在第一编码数据由目标应用识别出目标标识的情况下,通过目标应用对发生变更的字段进行处理,其中,目标标识用于标识第一目标数据的字段进行变更的版本,第一目标数据的字段进行变更的版本与发生变更的字段相对应。在该实施例中,在第一编码数据由目标应用识别出目标标识的情况下,通过目标应用对发生变更的字段进行处理。第一编码数据中包括用于标识第一目标数据的字段进行变更的版本的目标标识,该目标标识可以用ver进行表示,比如,第一编码数据为“ver=1&k1=v1&k2=v2”,其中,ver=1用于标识第一目标数据的字段进行变更的版本为1,k1、k2用于表示第一目标数据新增字段的名称,v1、v2分别用于表示字段k1对应的值、字段k2对应的值。每当第一目标数据的字段变更一次,目标标识的值就自增1,可以通过目标标识的值来使目标应用对第一目标数据发生变更的字段所对应的版本进行兼容处理。可选地,当目标应用需要读取的第一目标数据的变更字段的版本为1时(ver=1),只取k1=v1,当目标应用需要读取的第一目标数据的变更字段的版本为2时(ver=2),返回k1=v1&k2=v2。因此,当第一目标数据新增了字段k2之后,对于ver=1的接口还是可以保持不变,可以继续使用的,从而可以对第一目标数据已有的业务接口做新旧兼容,从而避免对生产环境业务造成影响。作为一种可选的实施方式,在对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据之后,该方法还包括:发送第一目标信息,其中,第一目标信息用于指示已对第一目标数据的发生变更的字段按照目标编码协议进行编码,得到第一编码数据。在该实施例中,在对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据之后,可以发送第一目标信息,该第一目标信息可以为响应目标请求,得到第一编码数据之后的请求响应信息,以指示已对第一目标数据的发生变更的字段按照目标编码协议进行编码,得到第一编码数据,比如,出库中间件在对第一目标数据中发生变更的字段进行协议编码处理之后,向第一目标数据所处的终端发送上述第一目标信息,这时第一目标数据可以准备出库。作为一种可选的实施方式,在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之前,该方法还包括:获取第二目标信息,其中,第二目标信息用于指示允许向第二目标数据的目标字段写入第一编码数据。在该实施例中,第二目标信息可以为在第一目标数据准备就绪之后,向出库中间件发起的出库通知消息,指示允许向第二目标数据的目标字段写入第一编码数据。在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之前,获取上述第二目标信息,以向第二目标数据的目标字段写入第一编码数据,比如,向MySQL数据进行出库MySQL的操作。作为一种可选的实施方式,步骤S206,向第二目标数据的目标字段写入第一编码数据,得到第三目标数据包括:向字符串类型的目标字段,写入第一编码数据,得到第三目标数据。在该实施例中,目标字段可以为第二目标数据的表结构在设计时,预留的字符串类型的字段,比如,目标字段为字段ext,用于存储对第一目标数据出现变更的字段进行编码后的编码内容,第二目标数据对应的表结构的设计可以如下所示:tb_MySQL_xxx_demo(idatebigintunsignedcomment‘时间’,uinvarchar(50)comment‘qqoropenid’,…exttextcomment‘对应Hive新增字段内容’)其中,idate用于表示日期,uin用于表示识别信息,exttextcomment对应于Hive新增字段内容,将第一编码数据封装在目标字段ext中,从而得到第三目标数据。作为一种可选的实施方式,第一目标数据的字段发生变更包括以下至少之一:第一目标数据的字段增加;第一目标数据的字段减少;第一目标数据的字段更换。在该实施例中,第一目标数据的字段发生变更可以包括第一目标数据的字段增加、第一目标数据的字段减少、第一目标数据的字段更换,或者第一目标数据的字段增加、第一目标数据的字段减少、第一目标数据的字段更换之间的组合,其中,第一目标数据的字段增加为第一目标数据的字段变更的优选方式。举例而言,第一目标数据的字段为a、b、c字段,则第一目标数据的字段在增加字段后,可以为a、b、c、d字段,其中,d字段为第一目标数据的变更的字段,在第一目标数据的字段在减少字段后,可以为a、b字段,其中,c字段为第一目标数据的变更的字段,在第一目标数据的字段替换字段后,可以为a、b、e字段,其中,e字段为第一目标数据的对字段c进行替换的字段,此处不做任何限制。需要说明的是,上述第一目标数据的字段发生变更的方式仅为本发明实施例的一种举例,并不代表上述第一目标数据的字段发生变更仅为上述方式,任何可以用于指示第一目标数据的字段发生变更的方式都在本发明实施例的范围之内,此处不再一一举例说明。在该实施例中,通过第二目标数据预留目标字段,进行可扩展性设计,当第一目标数据的字段发生变更时,可以通过目标编码协议将变更的字段写入第二目标数据的目标字段中,这样即可不用变更第二目标数据的结构,节省了数据运营成本,也可以对已有业务接口做新旧兼容,从而避免对数据生产环境业务造成影响。下面结合优选的实施例对本发明的技术方案进行说明,主要以第一目标数据为Hive数据,第二目标数据为MySQL数据进行举例说明。图3是根据本发明实施例的一种数据接口的逻辑示意图。如图3所示,该实施例的系统的后台逻辑架构分为三层,分别为应用层(APP)、逻辑层(APIgateway)和数据层。其中,应用层为外部接口调用方,比如,为游戏应用、游戏微官网等;逻辑层,用于完成数据库查询的接口,对目标字段的协议进行解析等逻辑功能,比如,完成对目标字段ext进行协议解析等逻辑功能;数据层,用于完成数据从一个数据库到另一个数据库的数据流转,比如,完成数据仓库(TDW)到MySQL的数据流转,其中,TDW是Hive的一种具体实现,其数据中间件完成数据协议封装逻辑功能,在数据层中,先从Hive中将数据拉取到数据中间件,然后将经过数据中间件编码过的数据推入到MySQL中。图4是根据本发明实施例的一种数据流转的方法的交互图。如图4所示,该方法包括以下步骤:步骤S401,发送Hive数据结构变更请求。在该实施例中,当Hive数据结构出现变更时,比如,当Hive表结构新增了字段,当Hive表结构新增了2个字段k1,k2,字段类型为int时,则将新增字段的名称和类型((k1,int),(k2,int))的数据结构变更请求发送至出库中间件,也即,将新增字段请求消息发送至出库中间件。在该实施例中,Hive数据结构的变更还可以包括字段减少、字段替换等变更方式,而新增字段的场景较为常见。步骤S402,出库中间件对变更数据进行协议编码处理。该实施例的协议编码处理为可扩展协议的具体实现过程。在出库中间件收到Hive数据结构变更请求之后,出库中间件对变更数据进行协议编码处理。可以对消息进行词法分析,语义解析消息,比如,Hive表结构新增了2个字段k1,k2,消息“tablename=xxx&k1=v1&k2=v2”即为s,在进行词法分析时,词法分析主要针对令牌(token),比如,s中的token有[tablename,k1,k2],值为[xxx,v1,v2],识别字符就是读取每一个字符,当识别到字符‘=’之后,就完成一次token提取;语义分析处理主要检查字段是否有逻辑错误,比如,在正常情况下,要把字段名k1,k2分别赋值为v1,v2;如果只有k2,而没有v2,则将进行报错。该实施例通过对消息进行词法分析,语义解析消息,从而转换成对应的SQL语句。具体步骤如下:提取Hive记录数据,比如,Hive的数据新增了2个字段k1,k2,将两个字段k1,k2对应的值转换成字符串类型,记为v1,v2;将v1和v2使用类URL编码成一个字符串,记为ext,值为“k1=v1&k2=v2”,其中,符号‘&’是字段分隔符,符号‘=’是键值分隔符;版本计数器ver可以使应用对Hive数据结构变更后的版本进行兼容,在增加一个版本标识字段‘ver’之后,ext的值就变更为“ver=1&k1=v1&k2=v2”;每当Hive表结构变更一次,ver的值就自增1。步骤S403,出库中间件对Hive返回请求响应信息。可选地,在该实施例中,当出库中间件完成对数据结构变更请求的处理之后,对Hive返回请求响应消息,用于指示出库中间件已完成对数据变更请求的处理。步骤S404,在Hive数据就绪之后,向出库中间件发起出库通知消息。步骤S405,出库中间件出库MySQL。在该实施例中,在设计MySQL表结构时,可以预留一个字符串类型的ext字段,用来存储Hive的新增字段编码后的内容,从而通过预留的ext字段,使得表结构的内容可以出现改变,但结构不变。需要说明的是,在该实施例中,由于MYSQL是类型敏感的数据库,新增字段不能直接存储在字段ext中,另外即使新增字段直接存储在字段ext中,使用者没有固定解析编码协议,也无法正确地提取该字段类的信息。可选地,在该实施例中,表结构设计如下所示:tb_MySQL_xxx_demo(idatebigintunsignedcomment‘时间’,uinvarchar(50)comment‘qqoropenid’,…exttextcomment‘对应Hive新增字段内容’)其中,idate用于表示日期,uin用于表示识别信息,exttextcomment对应于Hive新增字段内容。数据中间件读取Hive表中的记录,比如,Hive数据新增2个字段k1,k2,然后调用由Ext对应的协议编码后的SQL语句,可以拼装出insertintotb_MySQL_xxx_demo的SQL语句,通过该SQL语句执行写MySQL操作。步骤S406,应用从MySQL中读取记录。在该实施例中,应用可以通过MySQL协议读取tb_MySQL_xxx_demo表中的记录。步骤S407,应用对ext字段的值进行协议解码处理。在该实施例中,在应用从MySQL中读取数据记录之后,可以对ext字段的值进行按编码协议进行解析,比如,根据协议约定的分隔符进行提取,该分隔符可以是字段分隔符‘&’,键值分隔符‘=’,从而将ext字段的值还原成对应的字段键值信息。在该实施例中,可以根据ver字段的值,来做新老接口的兼容处理。可选地,当应用需要读取的数据版本为1时(ver=1),只取k1=v1,当需要读取的数据版本为2时(ver=2),返回k1=v1&k2=v2。因而,当新增了字段k2后,对于ver=1的接口还是可以保持不变的,也即,ver=1的接口还是可以继续使用的。本发明实施例的应用环境可以但不限于参照上述实施例中的应用环境,本实施例中对此不再赘述。本发明实施例提供了用于实施上述数据处理方法的一种可选的具体应用。图5是根据本发明实施例的一种产品应用效果的示意图。如图5所示,为采用本发明实施例的方法所展示出的产品的效果页面,为游戏玩家进行成长互动的平台。在游戏活动运营的过程中,比如,在游戏专区活动的前端在只展示当前等级的基础上,再增加6个维度的技能雷达图展示,其中,6个维度可以为财富、战力、活跃度、技术、社交、全职高手。在上述过程中,会涉及数据层MySQL表结构是否需要变更的过程,如果使用该实施例的可扩展协议设计,只需在数据层的数据中间件中增加一段编码适配变更数据,MySQL表结构就不用变更,即可避免对MySQL的表结构进行变更导致的运营成本高的问题。图6是根据本发明实施例的一种数据中间件的协议逻辑封装操作界面的示意图。如图6所示,该实施例的操作界面可以用于指示调度时间、源服务器、目标服务器、数据库名称、是否分区、ext协议编码、目标表名、载入方式。对于ext协议编码部分,‘ver=2’用于表示数据的版本号为2,‘fortuneindex=’用于表示财富值,‘activeindex=’用于表示活跃度值,‘powerindex=’用于表示战力值,‘abilityindex=’用于表示技术值,‘jobsindex=’用于表示全职高手值,‘socialindex=’用于表示社交值。图7是根据本发明实施例的一种协议编码后的效果展示的示意图。如图7所示,在图6所示的ext协议编码的基础上,indate用于表示日期,iuin用于表示用户账号ID,iworldid用于表示游戏大区,ilevel用于表示等级,ext用于表示存储变更数据的字段。该实施例通过MySQL的表结构,增加一个字符串类型的字段ext进行可扩展性设计,当Hive表结构出现变更时,可以通过可扩展协议将变更的字段内容封装到ext字段,这样即可不用变更MySQL表结构,从而解决数据运营活动中由于数据库的表数据结构变更而导致运营成本高的问题,可以降低数据结构变更成本,提高开发效率,从而为产品创造更大的价值。同时对已有业务接口做了新旧兼容,从而避免对生产环境业务造成影响。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。根据本发明实施例的另一方面,还提供了一种用于实施上述数据处理方法的数据处理装置。图8是根据本发明实施例的一种数据处理装置的示意图。如图8所示,该数据处理装置800可以包括:检测单元10、编码单元20和写入单元30。检测单元10,用于检测到第一目标数据的字段发生变更。编码单元20,用于对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据。写入单元30,用于向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。可选地,检测单元10包括:获取模块,用于获取目标请求,其中,目标请求用于指示第一目标数据的字段发生变更、以及发生变更的字段;检测单元10包括:编码模块,用于响应目标请求,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据。可选地,编码模块包括:编码子模块,用于按照目标编码协议对第一目标数据中发生变更的字段的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据。编码子模块用于通过以下步骤来按照目标编码协议对第一目标数据中发生变更的字段的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据:将第一目标数据中发生变更的字段的值的类型转换成字符串类型;将字段的名称和字符串类型的字段的值编码为目标字符串;将目标字符串和目标标识合成第一编码数据,其中,目标标识用于标识字段发生变更后的第一目标数据的版本,版本与发生变更的字段相对应。可选地,编码子模块用于通过以下步骤来将字段的名称和字符串类型的字段的值编码为目标字符串:在发生变更的字段包括多个字段的情况下,将每个字段的名称和每个字段的值之间设置第一目标分隔符,将多个字段中每相邻的两个字段之间设置第二目标分隔符,得到目标字符串。可选地,该装置还包括:解码单元,用于在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之后,通过目标应用按照与目标编码协议对应的目标解码协议对第一编码数据进行解码,得到发生变更的字段。可选地,解码单元包括:提取模块,用于通过目标应用按照目标分隔符从第一编码数据中提取出多个字段,得到发生变更的字段,其中,第一编码数据中的多个字段中每相邻两个字段,由目标分隔符连接。可选地,该装置还包括:处理单元,用于在第一编码数据由目标应用识别出目标标识的情况下,通过目标应用对发生变更的字段进行处理,其中,目标标识用于标识第一目标数据的字段进行变更的版本,第一目标数据的字段进行变更的版本与发生变更的字段相对应。可选地,该装置还包括:发送单元,用于在对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据之后,发送第一目标信息,其中,第一目标信息用于指示已对第一目标数据的发生变更的字段按照目标编码协议进行编码,得到第一编码数据。可选地,该装置还包括:获取单元,用于在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之前,获取第二目标信息,其中,第二目标信息用于指示允许向第二目标数据的目标字段写入第一编码数据。可选地,写入单元30包括:写入模块,用于向字符串类型的目标字段,写入第一编码数据,得到第三目标数据。可选地,该实施例的第一目标数据的字段发生变更包括以下至少之一:第一目标数据的字段增加;第一目标数据的字段减少;第一目标数据的字段更换。需要说明的是,该实施例中的检测单元10可以用于执行本申请实施例中的步骤S202,该实施例中的编码单元20可以用于执行本申请实施例中的步骤S204,该实施例中的写入单元30可以用于执行本申请实施例中的步骤S206。该实施例通过检测单元10检测到第一目标数据的字段发生变更,通过编码单元20,用于对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据,通过写入单元30向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。通过向第二目标数据的目标字段写入对第一目标数据中发生变更的字段按照目标编码协议进行编码得到的第一编码数据,得到与第二目标数据的结构相同的第三目标数据,避免了在第一目标数据的字段发生变更的情况下,第二目标数据的字段也发生变更,从而实现了降低数据变更的处理成本的技术效果,进而解决了相关技术数据变更的处理成本高的技术问题。此处需要说明的是,上述单元和模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。根据本发明实施例的又一方面,还提供了一种用于实施上述数据处理方法的电子装置。图9是根据本发明实施例的一种电子装置的结构框图。如图9所示,该的电子装置可以包括:包括存储器901和处理器903,该存储器901中存储有计算机程序,该处理器903被设置为通过计算机程序执行上述任一项方法实施例中的步骤。可选地,如图9所示,该电子装置还可以包括传输装置905和输入输出设备907。可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,在本实施例中,上述处理器903可以被设置为通过计算机程序执行以下步骤:检测到第一目标数据的字段发生变更;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据;向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。处理器903还用于执行下述步骤:获取目标请求,其中,目标请求用于指示第一目标数据的字段发生变更、以及发生变更的字段;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据包括:响应目标请求,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据。处理器903还用于执行下述步骤:按照目标编码协议对第一目标数据中发生变更的字段的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据。处理器903还用于执行下述步骤:将第一目标数据中发生变更的字段的值的类型转换成字符串类型;将字段的名称和字符串类型的字段的值编码为目标字符串;将目标字符串和目标标识合成第一编码数据,其中,目标标识用于标识字段发生变更后的第一目标数据的版本,版本与发生变更的字段相对应。处理器903还用于执行下述步骤:在发生变更的字段包括多个字段的情况下,将每个字段的名称和每个字段的值之间设置第一目标分隔符,将多个字段中每相邻的两个字段之间设置第二目标分隔符,得到目标字符串。处理器903还用于执行下述步骤:在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之后,通过目标应用按照与目标编码协议对应的目标解码协议对第一编码数据进行解码,得到发生变更的字段。处理器903还用于执行下述步骤:通过目标应用按照目标分隔符从第一编码数据中提取出多个字段,得到发生变更的字段,其中,第一编码数据中的多个字段中每相邻两个字段,由目标分隔符连接。处理器903还用于执行下述步骤:在第一编码数据由目标应用识别出目标标识的情况下,通过目标应用对发生变更的字段进行处理,其中,目标标识用于标识第一目标数据的字段进行变更的版本,第一目标数据的字段进行变更的版本与发生变更的字段相对应。处理器903还用于执行下述步骤:在对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据之后,发送第一目标信息,其中,第一目标信息用于指示已对第一目标数据的发生变更的字段按照目标编码协议进行编码,得到第一编码数据。处理器903还用于执行下述步骤:在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之前,获取第二目标信息,其中,第二目标信息用于指示允许向第二目标数据的目标字段写入第一编码数据。处理器903还用于执行下述步骤:向字符串类型的目标字段,写入第一编码数据,得到第三目标数据。可选地,本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置也可以是智能手机(如AndroID手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternetDevices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。其中,存储器901可用于存储软件程序以及模块,如本发明实施例中的数据处理方法和装置对应的程序指令/模块,处理器903通过运行存储在存储器901内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器901可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器901可进一步包括相对于处理器903远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。上述的传输装置905用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置905包括一个网络适配器(NetworkInterfaceController,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置905为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。其中,具体地,存储器901用于存储应用程序。采用本发明实施例,提供了一种数据处理的方案。在第一目标数据的字段发生变更的情况下,对第一目标数据的变更数据按照目标编码协议进行编码,得到第一编码数据,其中,变更数据用于变更第一目标数据的结构;向第二目标数据的目标字段写入第一编码数据,其中,第二目标数据与第一目标数据相对应,目标字段与第一编码数据相适配,写入第一编码数据的第二目标数据的结构未变更。本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:检测到第一目标数据的字段发生变更;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据;向第二目标数据的目标字段写入第一编码数据,得到第三目标数据,其中,第二目标数据与第一目标数据相关联,目标字段与第一编码数据相适配,目标字段用于指示发生变更的字段。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标请求,其中,目标请求用于指示第一目标数据的字段发生变更、以及发生变更的字段;对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据包括:响应目标请求,对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:按照目标编码协议对第一目标数据中发生变更的字段的名称、发生变更的字段的值和发生变更的字段的值的类型进行编码,得到第一编码数据。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:将第一目标数据中发生变更的字段的值的类型转换成字符串类型;将字段的名称和字符串类型的字段的值编码为目标字符串;将目标字符串和目标标识合成第一编码数据,其中,目标标识用于标识字段发生变更后的第一目标数据的版本,版本与发生变更的字段相对应。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在发生变更的字段包括多个字段的情况下,将每个字段的名称和每个字段的值之间设置第一目标分隔符,将多个字段中每相邻的两个字段之间设置第二目标分隔符,得到目标字符串。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之后,通过目标应用按照与目标编码协议对应的目标解码协议对第一编码数据进行解码,得到发生变更的字段。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:通过目标应用按照目标分隔符从第一编码数据中提取出多个字段,得到发生变更的字段,其中,第一编码数据中的多个字段中每相邻两个字段,由目标分隔符连接。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在第一编码数据由目标应用识别出目标标识的情况下,通过目标应用对发生变更的字段进行处理,其中,目标标识用于标识第一目标数据的字段进行变更的版本,第一目标数据的字段进行变更的版本与发生变更的字段相对应。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在对第一目标数据中发生变更的字段按照目标编码协议进行编码,得到第一编码数据之后,发送第一目标信息,其中,第一目标信息用于指示已对第一目标数据的发生变更的字段按照目标编码协议进行编码,得到第一编码数据。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在向第二目标数据的目标字段写入第一编码数据,得到第三目标数据之前,获取第二目标信息,其中,第二目标信息用于指示允许向第二目标数据的目标字段写入第一编码数据。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:向字符串类型的目标字段,写入第一编码数据,得到第三目标数据。可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:向字符串类型的目标字段,写入第一编码数据。可选地,存储介质还被设置为存储用于执行上述实施例中的方法中所包括的步骤的计算机程序,本实施例中对此不再赘述。可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1