CN106776785B - 一种数据写入方法及装置和数据处理系统 - Google Patents
一种数据写入方法及装置和数据处理系统 Download PDFInfo
- Publication number
- CN106776785B CN106776785B CN201611044541.XA CN201611044541A CN106776785B CN 106776785 B CN106776785 B CN 106776785B CN 201611044541 A CN201611044541 A CN 201611044541A CN 106776785 B CN106776785 B CN 106776785B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- primary key
- writing
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Abstract
本申请实施例提供一种数据写入方法及装置和数据处理系统,数据写入方法应用于数据处理系统中的任一服务器,通过接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;确定所述服务器处理所述数据写入请求的处理标识;将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;根据所述主键,将所述数据写入数据库的方式,使得在数据库写入数据的过程中,每个写入数据库的数据所具有的主键因与处理标识相关而具有唯一性,进而有效避免现有技术因同时将多个具有相同主键的数据写入数据库,所导致的主键冲突的问题。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种数据写入方法及装置和数据处理系统。
背景技术
数据处理系统由至少一台服务器构成,每台服务器均可对数据库进行操作,实现对数据库的数据写入。服务器写入数据库中的数据通常以数据来源为主键进行存储,当数据处理系统中的服务器同时将多个具有相同数据来源的数据写入数据库时,通常存在主键冲突的问题。
例如,针对第一应用而言,第一应用会把第一应用中用户的相关信息推送给第二应用的数据处理系统(数据处理系统包括至少一台服务器),以便服务器接收并向数据库写入用户的相关信息。因用户的相关信息包括的内容较多(如用户昵称、等级、好友等),所以同一用户的相关信息会被切分成多个数据推送给第二应用,每个数据的数据来源均指向其所属的用户的相关信息指示的用户。对于服务器而言,用户的相关信息切分成的多个数据则需多次以同一主键(数据来源,如用户ID)写入数据库,由此会产生主键冲突的问题。
有鉴于此,提供一种数据写入方法及装置和数据处理系统,以在避免主键冲突的基础上,实现数据写入的目的,是亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种数据写入方法及装置和数据处理系统,以在避免主键冲突的基础上,实现数据写入的目的。
为实现上述目的,本发明实施例提供如下技术方案:
一种数据写入方法,应用于数据处理系统中的任一服务器,该方法包括:
接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
确定所述服务器处理所述数据写入请求的处理标识;
将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
根据所述主键,将所述数据写入数据库。
一种数据写入装置,应用于数据处理系统中的任一服务器,该装置包括:
请求接收单元,用于接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
处理标识确定单元,用于确定所述服务器处理所述数据写入请求的处理标识;
主键确定单元,用于将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
数据写入单元,用于根据所述主键,将所述数据写入数据库。
一种数据处理系统,包括至少一台服务器,各所述服务器包括处理器,
所述处理器,用于接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
确定所述服务器处理所述数据写入请求的处理标识;
将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
根据所述主键,将所述数据写入数据库。
本申请实施例提供一种数据写入方法及装置和数据处理系统,数据写入方法应用于数据处理系统中的任一服务器,通过接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;确定所述服务器处理所述数据写入请求的处理标识;将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;根据所述主键,将所述数据写入数据库的方式,使得在数据库写入数据的过程中,每个写入数据库的数据所具有的主键因与处理标识相关而具有唯一性,进而有效避免现有技术因同时将多个具有相同主键的数据写入数据库,所导致的主键冲突的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据写入方法应用场景示意图;
图2为本申请实施例提供的一种数据写入方法流程图;
图3为本申请实施例提供的一种根据所述主键,将所述数据写入数据库的方法流程图;
图4为本申请实施例提供的另一种根据所述主键,将所述数据写入数据库的方法流程图;
图5为本申请实施例提供的另一种数据写入方法应用场景示意图;
图6为本申请实施例提供的一种数据写入装置的结构示意图;
图7为本申请实施例提供的一种数据写入单元的详细结构示意图;
图8为本申请实施例提供的另一种数据写入单元的详细结构示意图;
图9为本申请实施例提供的一种数据写入装置的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
图1为本申请实施例提供的一种数据写入方法应用场景示意图。
如图1所示,第一应用(可由图1中的客户端表示)可将其中的用户的相关信息推送给第二应用的数据处理系统(即图1中的数据处理系统),以便由第二应用的数据处理系统将接收到的用户的相关信息写入到数据库。
可选的,如图1所示的数据处理系统中的服务器的个数并不由图1所示而限定(即,如图1所示的数据处理系统中的服务器的个数并不一定是两个)。具体的,如图1所示的数据处理系统中的服务器的个数为至少一个,数据处理系统中的服务器的个数在此不做具体限定。
可选的,第一应用为王者荣耀游戏,第二应用为掌上王者荣耀。以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置第一应用和第二应用的具体内容,在此不做限定。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置第一应用推送给第二应用的数据处理系统的具体内容。例如,群组的相关信息、战局的相关信息等,在此不做限定。
为了便于对本申请提供的一种数据写入方法的详细介绍,现以第一应用向第二应用推送的用户的相关信息为例进行说明。第一应用向第二应用推送的用户的相关信息包括的内容通常较多(如用户昵称、等级、好友等),所以为了提高传输效率,通常会将一用户的相关信息切分成多个数据分别发送给数据处理系统。例如可认为数据1和数据2以及数据3的集合正好为一用户的相关信息。可选的,切分后得到的每个数据通常携带相应的数据属性,例如,当切分后得到的数据为用户昵称时,此切分后得到的数据携带的数据属性用于指示该切分后得到的数据为昵称;当切分后得到的数据为等级时,此切分后得到的数据携带的数据属性用于指示该切分后得到的数据为等级。
可选的,切分用户的相关信息的方式通常为按照用户的相关信息中包括的不同数据的数据属性进行切分。例如,当用户的相关信息中包括昵称、等级和好友三种数据时,通常会将昵称作为切分后的一个数据,所述数据中携带用于指示昵称的数据属性;将等级作为切分后的一个数据,所述数据中携带用于指示等级的数据属性;将好友作为切分后的一个数据,所述数据中携带用于指示好友的数据属性。优选的,进一步的当用户的相关信息中包括的好友较多时,通常可将好友作为的切分后的一个数据进行再次切分,例如将好友作为的切分后的一个数据进一步切分成两个数据,得到的每个数据包括用户的相关信息中的好友的一部分,得到的两个数据的集合正好为所有的用户的相关信息中的好友。需要注意的是,得到的两个数据中,每个数据均携带用于指示好友的数据属性。
可选的,第一应用对一用户的相关信息进行切分得到的多个数据在发送给数据处理系统时,针对切分后得到的每个数据而言,均可发送给数据处理系统中的任意服务器(例如,同一用户的相关信息被切分后得到的各个数据可发送给同一服务器,也可发送给不同服务器),在此不做限定。
可选的,可将第一应用向数据处理系统中的服务器发送数据的过程认为是第一应用向数据处理系统中的服务器发送数据写入请求的过程,所述数据写入请求中携带有请求写入的所述数据。
可选的,所述数据处理系统中的任意服务器在接收到数据写入请求后,具体执行的数据写入过程请参见图2。
图2为本申请实施例提供的一种数据写入方法流程图。
如图2所示,该方法包括:
S101、接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
为了便于对本申请提供的一种数据写入方法的详细介绍,现以第一应用向第二应用推送用户的相关信息为例进行说明。数据的来源标识用于指示所述数据来源于哪一个用户的相关信息(即,所述数据属于哪一个用户的相关信息),进一步可认为数据的来源标识用于指示所述数据所属的用户。例如,当数据写入请求携带的请求写入的数据属于第一用户的相关信息时,认为所述数据的来源标识用于指示所述第一用户。
可选的,所述数据的来源标识为所述数据所属用户的唯一的标识信息,例如,所述数据的来源标识为所述数据所属用户的用户ID。
相应的,第一应用向第二应用推送群组的相关信息时,数据的来源标识用于指示所述数据所属的群组的唯一的标识信息,例如,所述数据的来源标识为所述数据所属的群组的群组ID。
相应的,第一应用向第二应用推送战局的相关信息时,数据的来源标识用于指示所述数据所属的战局的唯一的标识信息,例如,所述数据的来源标识为所述数据所属战局的战局ID。
以上仅仅是本申请实施例的为了对提供的数据写入方法的详细介绍而提供的优选方式,具体的数据的来源标识依据第一应用向第二应用推送的信息的具体类型而定,在此不做限定。
S102、确定所述服务器处理所述数据写入请求的处理标识;
可选的,当服务器接收到数据写入请求后,需确定所述服务器处理所述数据写入请求的处理标识。所述处理标识用于指示处理所述数据写入请求的服务器,以及,处理所述数据写入请求的服务器分配的用于处理所述数据写入请求的进程。
可选的,当接收到的所述数据写入请求的个数为一个时,所述处理标识用于唯一指示所述服务器。
具体的,当服务器仅仅接收到一个数据写入请求时,仅仅需要确定唯一指示所述服务器的标识(即处理标识)。其中,处理标识包括所述服务器的ID,服务器的ID可通过所述服务器的硬件编码表示。
例如,当数据处理系统包括第一服务器和第二服务器时,若第一服务器接收到一个数据写入请求,第二服务器接收到一个数据写入请求;可设置第一服务器接收到的数据写入请求对应的处理标识为A(其中,A用于表示第一服务器),设置第二服务器接收到的数据写入请求对应的处理标识为B(其中,B用于表示第二服务器)。
可选的,当接收到的数据写入请求的个数为多个时,所述处理标识用于唯一指示所述服务器,及唯一指示所述服务器分配处理所述数据写入请求的进程。
具体的,当服务器接收到数据写入请求的个数为多个时,不仅需要确定唯一指示所述服务器的标识(第一标识),还需确定唯一指示所述服务器分配的用于处理所述数据写入请求的进程的标识(第二标识)。本申请实施例通过一个处理标识同时实现对第一标识和第二标识的确定,也即,所述处理标识不仅用于唯一指示所述服务器,而且用于唯一指示所述服务器分配处理所述数据写入请求的进程。
可选的,当接收到的数据写入请求的个数为多个时,所述处理标识可由处理所述数据写入请求的服务器的ID和用于处理所述数据写入请求的服务器分配的用于处理所述数据写入请求的进程的ID组合构成。
例如,当数据处理系统包括第一服务器和第二服务器时,若第一服务器接收到两个数据写入请求,第二服务器接收到三个数据写入请求;可设置第一服务器接收到的两个数据写入请求对应的处理标识分别为A1和A2(其中,A用于表示第一服务器,A1中的1用于表示第一服务器分配出的用于处理数据写入请求的第一个进程,A2中的2用于表示第一服务器分配出的用于处理数据写入请求的第二个进程);设置第二服务器接收到的三个数据写入请求对应的处理标识分别为B1、B2和B3(其中,B用于表示第二服务器,B1中的1用于表示第二服务器分配出的用于处理数据写入请求的第一个进程,B2中的2用于表示第二服务器分配出的用于处理数据写入请求的第二个进程,B3中的3用于表示第二服务器分配出的用于处理数据写入请求的第三个进程)。
以上仅仅是本申请实施例的优选方式,发明人可根据自己的需求任意设置处理标识的具体表现形式,在此不做限定。
S103、将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
可选的,可将数据写入请求携带的来源标识作为所述数据写入请求所请求写入的数据的一级主键,将确定的处理标识作为请求写入的数据的二级主键,将所述一级主键和二级主键作为请求写入的数据的主键。
S104、根据所述主键,将所述数据写入数据库。
本申请实施例提供一种数据写入方法应用于数据处理系统中的任一服务器,通过接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;确定所述服务器处理所述数据写入请求的处理标识;将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;根据所述主键,将所述数据写入数据库的方式,使得在数据库写入数据的过程中,每个写入数据库的数据所具有的主键因与处理标识相关而具有唯一性(即,因处理标识的唯一性使得利用处理标识形成的主键具有唯一性),进而不再存在同时将具有多个相同主键的数据写入数据库的情况,有效避免了现有技术因同时将多个具有相同主键的数据写入数据库,所导致的主键冲突的问题。
为了更加全面的对本申请实施例提供的一种数据写入方法进行阐述,现对本申请实施例提供的一种数据写入方法中的步骤S104提供的“根据所述主键,将所述数据写入数据库”方法进行详细介绍,具体请参见图2。
图3为本申请实施例提供的一种根据所述主键,将所述数据写入数据库的方法流程图。
如图3所示,该方法包括:
S201、判断所述数据库中是否存在与所述主键对应的数据项;如果所述数据库中不存在与所述主键对应的数据项,执行步骤S202;
可选的,每条数据项是一个键值对,键值对包括主键和与主键关联的值。所述值对应至少一个子数据项,每个所述子数据项对应一个子数据项值,所述值为所述值对应的各个子数据项的子数据项值的集合;每个所述子数据项唯一对应一个字段。
确定所述数据库中是否存在与所述主键对应的数据项的方式包括:确定所述数据库中是否存在所包括的主键与所述主键相同的数据项;当存在时,确定所述数据库中存在与所述主键对应的数据项;当不存在时,确定所述数据库中不存在与所述主键对应的数据项。
S202、按照预设数据项创建模板创建与所述主键对应的数据项;所述数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段;
可选的,当所述数据库中不存在与所述主键对应的数据项时,需要调用并按照预设数据项创建模板在所述数据库中创建与所述主键对应的数据项。
可选的,数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段。
可选的,按照预设数据项创建模板创建与所述主键对应的数据项的方式包括:在所述数据库中创建一个数据项,所述数据项包括所述主键(此主键为上述步骤S103形成的主键)以及与所述主键关联的值;所述值对应至少一个所述数据创建模板指示的子数据项,且所述值对应的每个所述子数据项的初始值为空(即,所述值对应的每个所述子数据项的子数据项值为空),每个所述子数据项唯一对应一个字段。
可选的,每个所述子数据项唯一对应一个字段。例如,当数据项中与主键关联的值包括A、B和C三个子数据项值时,子数据项值A对应的子数据项对应所述数据项中的一个唯一的字段(如昵称);子数据项值B对应的子数据项对应所述数据项中的另一个唯一的字段(如性别);子数据项值C对应的子数据项对应所述数据项中的又一个唯一的字段(如好友)。
以上仅仅是为了便于理解所提供的优选方式,具体的所述子数据项与字段的对应方式,发明人可根据自己的需求任意设置,在此不做限定。
S203、从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项;
可选的,接收数据写入请求,所述数据写入请求携带有请求写入的数据,所述数据中携带数据属性。
可选的,确定字段与数据携带的数据属性匹配的方式包括:字段指示的内容与数据携带的数据属性指示的内容相同。例如,当字段指示性别时,若数据携带的数据属性指示所述数据为性别,则确定字段与数据携带的数据属性匹配。
可选的,从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项,包括:确定所创建的数据项中的各子数据项对应的字段;从所确定的字段中查找与所述数据携带的数据属性匹配的字段;将所查找到的字段对应的子数据项作为结果(即将查找到的字段对应的子数据项作为从所创建的数据项中确定的子数据项,所述子数据项对应的字段与所述数据携带的数据属性匹配)。
S204、将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
可选的,将所述数据作为所确定的子数据项的值写入所确定的子数据项,包括:将所述数据作为所确定的子数据项的值(此所确定的子数据项的值为所确定的子数据项的子数据项值)写入所述数据库中所确定的子数据项的相应位置(即所确定的子数据项的子数据项值在所述数据库中的位置)。其中,将所述数据作为所确定的子数据项的子数据项值写入所述数据库中所确定的子数据项的子数据项值在所述数据库中的位置的过程,具体为:将所述数据确定为所确定的子数据项的子数据项值写入数据库的过程。
可选的,在所述数据库中设置所确定的子数据项的数据写入时间戳;所述数据写入时间戳为将所述数据写入所确定的子数据项的子数据项值在所述数据库中的位置的系统时间。
通过上述对本申请实施例提供的一种根据所述主键,将所述数据写入数据库的方法的进一步介绍,使得本申请实施例提供的数据写入方法更加清晰、完整,便于本领域技术人员理解。
进一步的,为了更加全面的对本申请实施例提供的一种数据写入方法进行阐述,现对本申请实施例提供的一种数据写入方法中的步骤S104提供的“根据所述主键,将所述数据写入数据库”方法进行详细介绍,具体请参见图4。
图4为本申请实施例提供的另一种根据所述主键,将所述数据写入数据库的方法流程图。
如图4所示,该方法包括:
S301、判断所述数据库中是否存在与所述主键对应的数据项;如果所述数据库中不存在与所述主键对应的数据项,执行步骤S302;如果所述数据库中存在与所述主键对应的数据项,执行步骤S305;
可选的,当所述数据库中不存在与所述主键对应的数据项时,执行步骤S302;当所述数据库中存在与所述主键对应的数据项时,执行步骤S305。
S302、按照预设数据项创建模板创建与所述主键对应的数据项;所述数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段;
S303、从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项;
S304、将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳;
本申请实施例中,优选的,除步骤S301-S304中包括的“如果所述数据库中存在与所述主键对应的数据项,执行步骤S305”步骤外,步骤S301-S304的执行过程与上述步骤S201-S204的执行过程相同,有关步骤S301-S304的执行过程的详细描述请参见上述步骤S201-S204,在此不做赘述。
S305、从所述数据项中确定对应的字段与所述数据属性匹配的子数据项;
可选的,从所述数据项中确定对应的字段与所述数据属性匹配的子数据项,包括:确定所述数据项中的各个子数据项对应的字段;从所确定的字段中查找与所述数据携带的数据属性匹配的字段;将所查找到的字段对应的子数据项作为结果(即将查找到的字段对应的子数据项作为从所述数据项中确定的子数据项,所述子数据项对应的字段与所述数据携带的数据属性匹配)。
S306、将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
可选的,将所述数据作为所确定的子数据项的值写入所确定的子数据项,包括:将所述数据作为所确定的子数据项的值(此所确定的子数据项的值为所确定的子数据项的子数据项值)写入所述数据库中所确定的子数据项的相应位置(即所确定的子数据项的子数据项值在所述数据库中的位置)。其中,将所述数据作为所确定的子数据项的子数据项值写入所述数据库中所确定的子数据项的子数据项值在所述数据库中的位置的过程,具体为:将所述数据确定为所确定的子数据项的子数据项值写入数据库的过程。
可选的,在所述数据库中设置所确定的子数据项的数据写入时间戳;所述数据写入时间戳为将所述数据写入所确定的子数据项的子数据项值在所述数据库中的位置的系统时间。
通过上述对本申请实施例提供的另一种根据所述主键,将所述数据写入数据库的方法的进一步介绍,使得本申请实施例提供的数据写入方法更加清晰、完整,便于本领域技术人员理解。
进一步的,为了更加全面的对本申请实施例提供的一种数据写入方法进行阐述,现提供另一种数据写入方法应用场景示意图,参见图5。
结合图1、图2、图3、图4和图5。以第一应用向第二应用的数据处理系统发送携带有同一来源标识1的两个数据为例进行说明,这两个数据分别为携带有来源标识1的数据1和携带有来源标识1的数据2。其中,第二应用的数据处理系统至少包括服务器41和服务器42,携带数据1的数据写入请求发送给服务器41、携带数据2的数据写入请求发送给服务器42;服务器41确定其处理携带有数据1的数据写入请求的处理标识1,将来源标识1和处理标识1作为主键1,且从数据库查找到存在与主键1对应的数据项1,从数据项1中确定对应的字段与数据1携带的数据属性匹配的子数据项的子数据项值为数据3,将数据项1进行修改得到修改后的数据项1;服务器42确定其处理携带有数据2的数据写入请求的处理标识2,将来源标识1和处理标识2作为主键2,且从数据库未查找到与主键2对应的数据项,则在所述数据库中创建与所述主键2对应的数据项3,数据项3中的各个子数据项的初始值为空,从数据项3中确定对应的字段与数据2携带的数据属性匹配的子数据项为数据项3中的最后一个子数据项,将数据项3中的最后一个子数据项的初始值设置为数据2。
通过上述对本申请实施例提供的另一种数据写入方法应用场景的进一步介绍,使得本申请实施例提供的数据写入方法更加清晰、完整,便于本领域技术人员理解。
上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种数据写入装置,下面给出具体的实施例进行详细说明。
图6为本申请实施例提供的一种数据写入装置的结构示意图。
在本申请实施例中,优选的,如图6所示的装置应用于数据处理系统中的任一服务器。
如图6所示,该装置包括:
请求接收单元51,用于接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
处理标识确定单元52,用于确定所述服务器处理所述数据写入请求的处理标识;
主键确定单元53,用于将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
数据写入单元54,用于根据所述主键,将所述数据写入数据库。
在本申请实施例中,优选的,当接收到的所述数据写入请求的个数为一个时,所述处理标识用于唯一指示所述服务器。
在本申请实施例中,优选的,当接收到的数据写入请求的个数为多个时,所述处理标识用于唯一指示所述服务器,及唯一指示所述服务器分配处理所述数据写入请求的进程。
本发明实施例提供的数据写入单元54的一种可选结构参见图7,数据写入单元54包括:
数据项创建单元61,用于如果所述数据库中不存在与所述主键对应的数据项,按照预设数据项创建模板创建与所述主键对应的数据项;所述数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段;
第一子数据项确定单元62,用于从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项;
第一数据写入子单元63,用于将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
本发明实施例提供的数据写入单元54的另一种可选结构参见图8,数据写入单元54包括:
数据项创建单元61,用于如果所述数据库中不存在与所述主键对应的数据项,按照预设数据项创建模板创建与所述主键对应的数据项;所述数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段;
第一子数据项确定单元62,用于从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项;
第一数据写入子单元63,用于将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳;
第二子数据项确定单元71,用于如果所述数据库中存在与所述主键对应的数据项,从所述数据项中确定对应的字段与所述数据属性匹配的子数据项;
第二数据写入子单元72,用于将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
本申请实施例中,优选的,第一数据写入单元63和第二数据写入单元72可以为同一数据写入单元,也可为不同的数据写入单元,在此不做限定。
可选的,数据写入装置可以为硬件设备,上文描述的模块、单元可以为设置于数据写入装置内的功能模块。图9示出了数据写入装置的硬件结构框图,参照图9,数据写入装置可以包括:处理器81,通信接口82,存储器83和通信总线84;其中处理器81、通信接口82、存储器83通过通信总线84完成相互间的通信;可选的,通信接口82可以为通信模块的接口,如GSM模块的接口;
处理器81,用于执行程序;存储器83,用于存放程序;程序可以包括程序代码,程序代码包括计算机操作指令;
处理器81可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路;存储器83可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,程序可具体用于:
接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
确定所述服务器处理所述数据写入请求的处理标识;
将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
根据所述主键,将所述数据写入数据库。
本申请实施例提供一种数据写入装置,数据写入装置应用于数据处理系统中的任一服务器,通过接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;确定所述服务器处理所述数据写入请求的处理标识;将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;根据所述主键,将所述数据写入数据库的方式,使得在数据库写入数据的过程中,每个写入数据库的数据所具有的主键因与处理标识相关而具有唯一性,进而有效避免现有技术因同时将多个具有相同主键的数据写入数据库,所导致的主键冲突的问题。
本发明实施例还公开一种数据处理系统,所述数据处理系统中包括至少一台服务器,每个所述服务器均包括处理器;
所述处理器,用于接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;
确定所述服务器处理所述数据写入请求的处理标识;
将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;
根据所述主键,将所述数据写入数据库。
本申请实施例提供一种数据处理系统,所述数据处理系统中包括至少一台服务器,每个所述服务器均包括处理器,所述处理器,用于接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;确定所述服务器处理所述数据写入请求的处理标识;将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;根据所述主键,将所述数据写入数据库。以使得在数据库写入数据的过程中,每个写入数据库的数据所具有的主键因与处理标识相关而具有唯一性,进而有效避免现有技术因同时将多个具有相同主键的数据写入数据库,所导致的主键冲突的问题。
综上:
本申请实施例提供一种数据写入方法及装置和数据处理系统,数据写入方法应用于数据处理系统中的任一服务器,通过接收数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识;确定所述服务器处理所述数据写入请求的处理标识;将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键;根据所述主键,将所述数据写入数据库的方式,使得在数据库写入数据的过程中,每个写入数据库的数据所具有的主键因与处理标识相关而具有唯一性,进而有效避免现有技术因同时将多个具有相同主键的数据写入数据库,所导致的主键冲突的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种数据写入方法,其特征在于,第一应用将待向第二应用的数据处理系统推送的信息切分得到多个数据,第一应用向所述数据处理系统发送切分得到的多个数据;针对切分得到每个数据,该数据发送给所述数据处理系统中的任意服务器,第一应用向服务器发送的数据为第一应用向服务器发送的数据写入请求携带的数据,该方法应用于所述数据处理系统中的任一服务器,该方法包括:
接收第一应用发送的数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识,所述数据的来源标识指示所述数据的数据来源;
确定所述服务器处理所述数据写入请求的处理标识,所述处理标识具有唯一性,所述处理标识至少指示所述数据处理系统中用于处理所述数据写入请求的所述服务器;
将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键,所述主键具有唯一性;
根据所述主键,将所述数据写入数据库。
2.根据权利要求1所述的方法,其特征在于,当接收到的所述数据写入请求的个数为一个时,
所述处理标识用于唯一指示所述服务器。
3.根据权利要求1所述的方法,其特征在于,当接收到的所述数据写入请求的个数为多个时,
所述处理标识用于唯一指示所述服务器,及唯一指示所述服务器分配处理所述数据写入请求的进程。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述根据所述主键,将所述数据写入数据库,包括:
如果数据库中不存在与所述主键对应的数据项,按照预设数据项创建模板创建与所述主键对应的数据项;所述数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段;
从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项;
将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
5.根据权利要求4所述的方法,其特征在于,还包括:
如果数据库中存在与所述主键对应的数据项,从所述数据项中确定对应的字段与所述数据属性匹配的子数据项;
将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
6.一种数据写入装置,其特征在于,第一应用将待向第二应用的数据处理系统推送的信息切分得到多个数据,第一应用向所述数据处理系统发送切分得到的多个数据;针对切分得到每个数据,该数据发送给所述数据处理系统中的任意服务器,第一应用向服务器发送的数据为第一应用向服务器发送的数据写入请求携带的数据,该装置应用于所述数据处理系统中的任一服务器,该装置包括:
请求接收单元,用于接收第一应用发送的数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识,所述数据的来源标识指示所述数据的数据来源;
处理标识确定单元,用于确定所述服务器处理所述数据写入请求的处理标识,所述处理标识具有唯一性,所述处理标识至少指示所述数据处理系统中用于处理所述数据写入请求的所述服务器;
主键确定单元,用于将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键,所述主键具有唯一性;
数据写入单元,用于根据所述主键,将所述数据写入数据库。
7.根据权利要求6所述的装置,其特征在于,当接收到的所述数据写入请求的个数为一个时,
所述处理标识用于唯一指示所述服务器。
8.根据权利要求6所述的装置,其特征在于,当接收到的所述数据写入请求的个数为多个时,
所述处理标识用于唯一指示所述服务器,及唯一指示所述服务器分配处理所述数据写入请求的进程。
9.根据权利要求6-8任意一项所述的装置,其特征在于,所述数据写入单元,包括:
数据项创建单元,用于如果数据库中不存在与所述主键对应的数据项,按照预设数据项创建模板创建与所述主键对应的数据项;所述数据项创建模板包括主键以及与所述主键关联的值,所述值对应至少一个初始值为空的子数据项,每个所述子数据项唯一对应一个字段;
第一子数据项确定单元,用于从所创建的数据项中确定对应的字段与所述数据携带的数据属性匹配的子数据项;
第一数据写入子单元,用于将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
10.根据权利要求9所述的装置,其特征在于,所述数据写入单元,还包括:
第二子数据项确定单元,用于如果数据库中存在与所述主键对应的数据项,从所述数据项中确定对应的字段与所述数据属性匹配的子数据项;
第二数据写入子单元,用于将所述数据作为所确定的子数据项的值写入所确定的子数据项,并设置所确定的子数据项的数据写入时间戳。
11.一种数据处理系统,其特征在于,第一应用将待向所述数据处理系统推送的信息切分得到多个数据,第一应用向所述数据处理系统发送切分得到的多个数据;针对切分得到每个数据,该数据发送给所述数据处理系统中的任意服务器,第一应用向服务器发送的数据为第一应用向服务器发送的数据写入请求携带的数据,所述数据处理系统应用于第二应用,所述数据处理系统包括至少一台服务器,各所述服务器包括处理器,
所述处理器,用于接收第一应用发送的数据写入请求,所述数据写入请求携带有请求写入的数据,及所述数据的来源标识,所述数据的来源标识指示所述数据的数据来源;
确定所述服务器处理所述数据写入请求的处理标识,所述处理标识具有唯一性,所述处理标识至少指示所述数据处理系统中用于处理所述数据写入请求的所述服务器;
将所述来源标识作为所述数据的一级主键,将所述处理标识作为所述数据的二级主键,形成所述数据的主键,所述主键具有唯一性;
根据所述主键,将所述数据写入数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611044541.XA CN106776785B (zh) | 2016-11-24 | 2016-11-24 | 一种数据写入方法及装置和数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611044541.XA CN106776785B (zh) | 2016-11-24 | 2016-11-24 | 一种数据写入方法及装置和数据处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776785A CN106776785A (zh) | 2017-05-31 |
CN106776785B true CN106776785B (zh) | 2021-06-22 |
Family
ID=58975168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611044541.XA Active CN106776785B (zh) | 2016-11-24 | 2016-11-24 | 一种数据写入方法及装置和数据处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776785B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463670B (zh) * | 2017-08-03 | 2020-06-05 | 北京奇艺世纪科技有限公司 | 数据存储、读取方法及装置 |
US10944549B2 (en) | 2019-06-20 | 2021-03-09 | Advanced New Technologies Co., Ltd. | Blockchain-type data storage |
CN110347679B (zh) * | 2019-06-20 | 2020-08-04 | 阿里巴巴集团控股有限公司 | 一种基于收据的数据存储方法、装置及设备 |
CN111090648B (zh) * | 2019-12-07 | 2023-05-16 | 杭州安恒信息技术股份有限公司 | 一种关系型数据库数据同步冲突解决方法 |
CN111352944B (zh) * | 2020-02-10 | 2023-08-18 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备与存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953793A (zh) * | 2004-03-15 | 2007-04-25 | 科乐美数码娱乐株式会社 | 游戏服务器系统、游戏元素提供方法、游戏设备和程序产品 |
CN101551826A (zh) * | 2009-05-19 | 2009-10-07 | 成都市华为赛门铁克科技有限公司 | 数据检索方法、装置及其系统 |
CN102546788A (zh) * | 2011-12-29 | 2012-07-04 | 北京新媒传信科技有限公司 | 一种云平台管理方法和云平台 |
CN104854551A (zh) * | 2012-11-08 | 2015-08-19 | Dssd股份有限公司 | 用于采用一致性散列的全局命名空间的方法和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10585862B2 (en) * | 2014-02-28 | 2020-03-10 | Red Hat, Inc. | Efficient data migration with reversible database schema modification |
CN104794249B (zh) * | 2015-05-15 | 2018-08-28 | 网易乐得科技有限公司 | 一种数据库的实现方法和设备 |
CN108170726A (zh) * | 2015-10-21 | 2018-06-15 | 华为技术有限公司 | 数据查询方法和装置 |
-
2016
- 2016-11-24 CN CN201611044541.XA patent/CN106776785B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1953793A (zh) * | 2004-03-15 | 2007-04-25 | 科乐美数码娱乐株式会社 | 游戏服务器系统、游戏元素提供方法、游戏设备和程序产品 |
CN101551826A (zh) * | 2009-05-19 | 2009-10-07 | 成都市华为赛门铁克科技有限公司 | 数据检索方法、装置及其系统 |
CN102546788A (zh) * | 2011-12-29 | 2012-07-04 | 北京新媒传信科技有限公司 | 一种云平台管理方法和云平台 |
CN104854551A (zh) * | 2012-11-08 | 2015-08-19 | Dssd股份有限公司 | 用于采用一致性散列的全局命名空间的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106776785A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776785B (zh) | 一种数据写入方法及装置和数据处理系统 | |
CN110334152B (zh) | 一种数据同步方法、装置及服务器 | |
CN109831487B (zh) | 分片文件验证方法及终端设备 | |
CN112153085A (zh) | 一种数据处理方法、节点及区块链系统 | |
CN110033302B (zh) | 恶意账户识别方法及装置 | |
CN108572970B (zh) | 一种结构化数据的处理方法和分布式处理系统 | |
US20210058382A1 (en) | Block sequencing method and system based on tree-graph structure, and data processing terminal | |
JP2013536492A (ja) | 複数のシステムを用いたデータ解析 | |
US20170185454A1 (en) | Method and Electronic Device for Determining Resource Consumption of Task | |
CN110888858A (zh) | 数据库的操作方法和装置、存储介质、电子装置 | |
CN104113571A (zh) | 数据冲突处理方法和装置 | |
JP2021518021A (ja) | データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
CN110209780B (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN108111598B (zh) | 云盘数据的下发方法、装置及存储介质 | |
EP3138019B1 (en) | Validating analytics results | |
CN112434062A (zh) | 准实时数据处理方法、装置、服务器及存储介质 | |
CN108667647B (zh) | 一种设备参数的设置方法、设备及服务器 | |
CN110675133A (zh) | 一种抢红包的方法、装置、电子设备及可读存储介质 | |
CN115422184A (zh) | 一种数据获取方法、装置、设备及存储介质 | |
CN112181829B (zh) | Ab实验的用户分流方法、装置、终端及介质 | |
CN113486025A (zh) | 数据存储方法、数据查询方法及装置 | |
CN109462543B (zh) | 邮件下载方法、装置、计算机设备和存储介质 | |
CN114547184A (zh) | 人员信息同步方法、终端设备及存储介质 | |
CN111008220A (zh) | 数据源的动态识别方法及装置、存储介质和电子装置 | |
US20150067303A1 (en) | Input data aggregation processing apparatus, system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |