一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据标识生成方法、装置、设备及存储介质与流程

2022-07-13 10:37:22 来源:中国专利 TAG:


1.本技术涉及数据处理领域,尤其涉及一种数据标识生成方法、装置、设备及存储介质。


背景技术:

2.在实时的流式数据处理中,如果是基于flink来做实时的数据处理,在发生故障的情况下,启用了检查点的flink程序将在恢复时从上一个完成的检查点恢复处理。
3.现有的标识(id)生成方法,是采用自增序列或采用时间戳,如果在检查点恢复前刚好有数据的id生成,并且也已经将生成的id入库,在检查点恢复后会对该数据重新生成id,并且重新生成的id必然和已有的id不一致,这样就会导致在数据库中出现同一条数据有不同id的情况,从而造成数据冗余,甚至是数据错乱。


技术实现要素:

4.本技术提供了一种数据标识生成方法、装置、设备及存储介质,用以解决数据处理中,同一条数据生成不同标识的问题。
5.第一方面,本技术实施例提供了一种数据标识生成方法,包括:
6.接收客户端发送的标识生成请求,所述标识生成请求中携带当前数据的获取时刻和所述当前数据所属的用户标识;
7.从所述标识生成请求中获取所述获取时刻和所述用户标识;
8.基于所述获取时刻和所述用户标识,生成所述当前数据的数据标识。
9.可选地,所述基于所述获取时刻和所述用户标识,生成所述当前数据的数据标识,包括:
10.计算所述获取时刻和预设时刻的差值,作为时刻间隔;
11.计算所述用户标识的哈希值;
12.根据所述时刻间隔以及所述用户标识的哈希值,生成所述当前数据的数据标识。
13.可选地,所述计算所述用户标识的哈希值,包括:
14.利用非加密散列函数计算所述用户标识的哈希值。
15.可选地,所述根据所述时刻间隔以及所述用户标识的哈希值,生成所述当前数据的数据标识,包括:
16.获取所述时刻间隔对应的第一比特数据串,以及获取所述用户标识的哈希值对应的第二比特数据串;
17.将所述第一比特数据串写入预设总比特数据串的第一部分比特位,将所述第二比特数据串写入所述预设总比特数据串的第二部分比特位;
18.其中,所述第一部分比特位的起始比特位为所述预设总比特数据串的第一个比特位,所述第二部分比特位的最末比特位为所述预设总比特数据串的最后一个比特位,所述第一部分比特位的长度与所述第二部分比特位的长度之和,等于所述预设总比特数据串的
长度。
19.可选地,所述将所述第二比特数据串写入所述预设总比特数据串的第二部分比特位,包括:
20.若所述第二比特数据串的长度大于所述第二部分比特位的长度,则从所述第二比特数据串中获取第三比特数据串;
21.其中,所述第三比特数据串的最末比特位为所述第二比特数据串的最后一个比特位,所述第三比特数据串的长度等于所述第二部分比特位的长度;
22.将所述第三比特数据串写入所述第二部分比特位。
23.可选地,所述预设总比特数据串的长度不大于64位。
24.可选地,所述用户标识包括设备标识和账号中的至少一个。
25.第二方面,本技术实施例提供了一种数据标识生成装置,其特征在于,包括:
26.接收模块,用于接收客户端发送的标识生成请求,所述标识生成请求中携带当前数据的获取时刻和所述当前数据所属的用户标识;
27.获取模块,用于从所述标识生成请求中获取所述获取时刻和所述用户标识;
28.处理模块,用于基于所述获取时刻和所述用户标识,生成所述当前数据的数据标识。
29.第三方面,本技术实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
30.所述存储器,用于存储计算机程序;
31.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的数据标识生成方法。
32.第四方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据标识生成方法。
33.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,接收客户端发送的标识生成请求,标识生成请求中携带当前数据的获取时刻和当前数据所属的用户标识;从标识生成请求中获取该获取时刻和用户标识;基于该获取时刻和用户标识,生成当前数据的数据标识。该方法通过获取当前数据的获取时刻和当前数据所属的用户标识,保证当前数据的获取时刻是个固定值,基于该获取时刻和用户标识,生成当前数据的数据标识,确保当前数据的数据标识是唯一的,解决了数据处理中,同一条数据生成不同标识的问题。
附图说明
34.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
36.图1为本技术实施例中数据标识生成的方法流程示意图;
37.图2为本技术一个具体实施例中基于该获取时刻和用户标识,生成当前数据的数
据标识的方法流程示意图;
38.图3为本技术一个具体实施例中根据时刻间隔以及用户标识的哈希值,生成当前数据的数据标识的方法流程示意图;
39.图4为本技术实施例中数据标识生成装置的结构示意图;
40.图5为本技术实施例中电子设备的结构示意图。
具体实施方式
41.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
42.本技术实施例中提供了一种数据标识生成方法,该方法可以应用于服务器,当然,也可以应用于其他电子设备,例如终端(手机、平板电脑等)。本技术实施例中,以将该方法应用于服务器为例进行说明。
43.如图1所示,数据标识生成的方法流程主要包括:
44.步骤101,接收客户端发送的标识生成请求,标识生成请求中携带当前数据的获取时刻和当前数据所属的用户标识。
45.其中,当前数据的获取时刻是指第一次获取当前数据的时刻。这样当前数据的获取时刻是个固定值,不会出现同一条数据有不同获取时刻的情况。
46.一个具体实施例中,当前数据的获取时刻的单位可以是天、小时、分钟、秒等。
47.一个具体实施例中,用户标识包括设备标识和账号中的至少一个。其中,设备标识可以是设备的mac地址等能确定当前数据所属的设备的标识,账号可以是当前数据所属的应用的账号,例如:手机号、邮箱等。
48.需要说明的是,此处所列举的用户标识中包括的信息或参数仅为示例,并不对本技术的保护范围进行限制,根据需要该用户标识中还可以包括其他参数。
49.步骤102,从标识生成请求中获取该获取时刻和用户标识。
50.步骤103,基于该获取时刻和用户标识,生成当前数据的数据标识。
51.一个具体实施例中,如图2所示,基于该获取时刻和用户标识,生成当前数据的数据标识的方法流程主要包括:
52.步骤201,计算该获取时刻和预设时刻的差值,作为时刻间隔。
53.其中,预设时刻的单位与该获取时刻的单位保持一致。例如:该获取时刻为2020年11月10日,预设时刻为2020年1月1日,计算得到的时刻间隔为314天。
54.其中,预设时刻可以是预先设置的一年中的任意时刻,该时刻一旦设定将不再改变,除非重新设置。具体地,该预设时刻可以是由技术人员手动配置。例如:预设时刻可以被配置为该获取时刻所在年份的第一日。
55.步骤202,计算用户标识的哈希值。
56.一个具体实施例中,利用非加密散列函数计算所述用户标识的哈希值。
57.其中,非加密散列函数可以是murmur hash。
58.步骤203,根据时刻间隔以及用户标识的哈希值,生成当前数据的数据标识。
59.一个具体实施例中,如图3所示,根据时刻间隔以及用户标识的哈希值,生成当前数据的数据标识的方法流程主要包括:
60.步骤301,获取时刻间隔对应的第一比特数据串,以及获取用户标识的哈希值对应的第二比特数据串。
61.例如:时刻间隔为314天,时刻间隔对应的第一比特数据串为00001001 1101 0,用户标识为174957d0d5f5ec-065ca2ad687a38,利用murmur hash计算出用户标识的哈希值为6224283396627763572,用户标识的哈希值对应的第二比特数据串为0101 0110 0110 0001 0001 1000 1100 0101 1000 0101 0101 1100 0001 0001 0111 0100。
62.步骤302,将第一比特数据串写入预设总比特数据串的第一部分比特位,将第二比特数据串写入预设总比特数据串的第二部分比特位。
63.其中,预设总比特数据串是当前数据的数据标识对应的,根据预设总比特数据串,获得当前数据的数据标识。
64.例如:将第一比特数据串写入预设总比特数据串的第一部分比特位,将第二比特数据串写入预设总比特数据串的第二部分比特位后,得到预设总比特数据串为0000 1001 1101 0001 0001 1000 1100 0101 1000 0101 0101 1100 0001 0001 0111 0100,从而获得当前数据的数据标识为707373853098905972。
65.一个具体实施例中,预设总比特数据串的长度不大于64位。能够减少当前数据的数据标识占用的空间,提高数据处理的效率。
66.一个具体实施例中,将第二比特数据串写入预设总比特数据串的第二部分比特位的方法流程主要包括:
67.若第二比特数据串的长度大于第二部分比特位的长度,则从第二比特数据串中获取第三比特数据串;
68.其中,第三比特数据串的最末比特位为第二比特数据串的最后一个比特位,第三比特数据串的长度等于第二部分比特位的长度;
69.将第三比特数据串写入第二部分比特位。
70.例如:第二部分比特位的长度为51位,第二比特数据串的长度为64位,第二比特数据串为0101 0110 0110 0001 0001 1000 1100 0101 1000 0101 0101 1100 0001 0001 0111 0100,则从第二比特数据串的最后一个比特位往前截取51位,得到第三比特数据串为001 0001 1000 1100 0101 1000 0101 0101 1100 0001 0001 0111 0100,第三比特数据串的长度为51位,将第三比特数据串写入第二部分比特位。
71.步骤303,其中,第一部分比特位的起始比特位为预设总比特数据串的第一个比特位,第二部分比特位的最末比特位为预设总比特数据串的最后一个比特位,第一部分比特位的长度与第二部分比特位的长度之和,等于预设总比特数据串的长度。
72.其中,预设总比特数据串的长度、第一部分比特位的长度和第二部分比特位的长度是预先设置的。
73.例如:预设总比特数据串的长度为64位,第一部分比特位的长度为13位,第二部分比特位的长度为51位。
74.例如:第一部分比特位为0000 1001 1101 0,第二部分比特位为001 0001 1000 1100 0101 1000 0101 0101 1100 0001 0001 0111 0100,第一部分比特位的起始比特位
为预设总比特数据串的第一个比特位,第二部分比特位的最末比特位为预设总比特数据串的最后一个比特位,得到预设总比特数据串为0000 1001 1101 0001 0001 1000 1100 0101 1000 0101 0101 1100 0001 0001 0111 0100。
75.综上,本技术实施例中,接收客户端发送的标识生成请求,标识生成请求中携带当前数据的获取时刻和当前数据所属的用户标识;从标识生成请求中获取该获取时刻和用户标识;基于该获取时刻和用户标识,生成当前数据的数据标识。该方法通过获取当前数据的获取时刻和当前数据所属的用户标识,保证当前数据的获取时刻是个固定值,基于该获取时刻和用户标识,生成当前数据的数据标识,确保当前数据的数据标识是唯一的,解决了数据处理中,同一条数据生成不同标识的问题。
76.基于同一构思,本技术实施例中提供了一种数据标识生成装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图4所示,该装置主要包括:
77.接收模块401,用于接收客户端发送的标识生成请求,所述标识生成请求中携带当前数据的获取时刻和所述当前数据所属的用户标识;
78.获取模块402,用于从所述标识生成请求中获取所述获取时刻和所述用户标识;
79.处理模块403,用于基于所述获取时刻和所述用户标识,生成所述当前数据的数据标识。
80.基于同一构思,本技术实施例中还提供了一种电子设备,如图5所示,该电子设备主要包括:处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502和存储器503通过通信总线504完成相互间的通信。其中,存储器503中存储有可被至处理器501执行的程序,处理器501执行存储器503中存储的程序,实现如下步骤:接收客户端发送的标识生成请求,标识生成请求中携带当前数据的获取时刻和当前数据所属的用户标识;从标识生成请求中获取该获取时刻和用户标识;基于该获取时刻和用户标识,生成当前数据的数据标识。
81.上述电子设备中提到的通信总线504可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
82.通信接口502用于上述电子设备与其他设备之间的通信。
83.存储器503可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器501的存储装置。
84.上述的处理器501可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
85.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实
施例中所描述的数据标识生成方法。
86.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
87.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
88.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献