基于希尔伯特曲线的非全字段数据同步方法及其相关设备与流程

文档序号:33620276发布日期:2023-03-25 11:18阅读:38来源:国知局
基于希尔伯特曲线的非全字段数据同步方法及其相关设备与流程

1.本技术属于大数据技术领域,具体涉及一种基于希尔伯特曲线的非全字段数据同步方法及其相关设备。


背景技术:

2.数据湖是大数据领域中一种企业级的数据基础架构,其核心思想是以数据为导向,实现任意来源、任意规模、任意类型的数据采集和存储。海量数据的采集是所有大数据任务分析处理的前提与基础,数据湖存在各式各样的海量数据采集的途径与手段,其中在业界难度较大的数据采集场景是基于非全字段更新的场景,其形式如下:
3.数据湖抽取源端数据库的全量数据,完成一次数据的初始化工作,对于后续数据的插入、更新、删除等变更动作,考虑的数据采集的成本与资源消耗等方面的因素,包括网络带宽的消耗、对于数据源头的服务器性能压力,数据源的dba(database admi n i strator)数据库管理员通常仅允许数据湖采集变更的数据范围,其表现形式即为非全字段,即通过唯一标识标记一条发生变更的字段的主键信息。
4.然而数据湖根据非全字段信息完成数据同步的难度和代价极高,因为获取到信息是不全的,通常需要在已经完成同步的基础数据上对数据进行补全,但是对于非全字段的数据而言,是很难定位到其基础数据其所在的物理存储位置的,因为通过唯一标识标记一条发生变更的字段的主键信息,并非都是具有规律的自增字段,大部分场景都是随机且唯一的信息,例如通用唯一标识码uu i d(un i versa l l y un i que i dent i f i er),因此很难根据主键信息对数据进行有意义的分段处理。
5.在业界使用一种妥协的方案完成非全字段数据的同步,利用对某个业务字段分区、对主键分桶的方式,将非全字段的基础数据物理存储位置进行限定,缩小其可能出现的范围。例如数据源端此次更新了数据的分区字段,则其所对应的非全字段信息包含了主键及分区信息,那么数据湖即可将基础数据搜索范围限定在指定的分区分桶下;但是如果数据源端此次更新未更新数据的分区字段,那么数据湖需要在全表数据范围内根据主键信息对基础数据进行搜索,其资源消耗及任务耗时可能提高成百上千倍,因此设计一种有效解决非全字段数据同步场景的方案势在必行。


技术实现要素:

6.本技术实施例的目的在于提出一种基于希尔伯特曲线的非全字段数据同步方法、装置、计算机设备及存储介质,以解决现有非全字段数据同步方案存在的计算资源消耗较大、耗时较长的技术问题。
7.为了解决上述技术问题,本技术实施例提供一种基于希尔伯特曲线的非全字段数据同步方法,采用了如下所述的技术方案:
8.一种基于希尔伯特曲线的非全字段数据同步方法,包括:
9.获取待同步的非全字段数据的主键信息;
10.对所述主键信息进行哈希散列运算,获取所述主键信息对应的哈希值;
11.将所述主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;
12.获取所述主键信息对应的哈希值在所述希尔伯特曲线上的坐标数据;
13.将所述坐标数据输入到预设的希尔伯特空间曲线算法模型,得到所述非全字段数据的位置信息;
14.获取所述非全字段数据对应的同步方式,并基于所述同步方式和所述位置信息对所述非全字段数据进行同步。
15.进一步地,在所述获取待同步的非全字段数据的主键信息之前,还包括:
16.获取全量数据,并将所述全量数据按照标准希尔伯特曲线进行排序;
17.在预设一维空间中构建所述全量数据与希尔伯特曲线的映射关系,得到所述一维空间中所述全量数据的希尔伯特曲线;
18.按照预设的拆解规则对一维空间中的所述全量数据的希尔伯特曲线进行拆解;
19.在二维空间对拆解后的所述全量数据的希尔伯特曲线进行重构。
20.进一步地,所述在预设一维空间中构建所述全量数据与希尔伯特曲线的映射关系,得到所述一维空间中所述全量数据的希尔伯特曲线之后,还包括:
21.获取待同步数据文件,基于所述待同步数据文件确定待同步的非全字段数据;
22.获取在所述一维空间中构建所述全量数据与希尔伯特曲线的映射关系时生成的一维序列值;
23.获取所述非全字段数据对应的唯一标识码,并对所述一维序列值和所述唯一标识码进行拼接,生成所述非全字段数据的主键信息。
24.进一步地,所述将所述主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上,具体包括:
25.按照预设的划分规则对所述主键信息对应的哈希值进行划分,得到第一哈希值集合和第二哈希值集合,其中,所述划分规则与所述拆解规则相互对应;
26.将所述第一哈希值集合映射到所述全量数据的希尔伯特曲线所在二维空间的x平面;以及
27.将所述第二哈希值集合映射到所述全量数据的希尔伯特曲线所在二维空间的y平面。
28.进一步地,将所述坐标数据输入到预设的希尔伯特空间曲线算法模型,得到所述非全字段数据的位置信息,具体包括:
29.获取所述全量数据的希尔伯特曲线对应的阶数信息;
30.将所述阶数信息和所述位置信息输入到所述希尔伯特空间曲线算法模型中;
31.基于所述希尔伯特空间曲线算法模型中的递归算法计算所述非全字段数据的位置信息。
32.进一步地,所述基于所述希尔伯特空间曲线算法模型中的递归算法计算所述非全字段数据的位置信息,具体包括:
33.基于所述根据希尔伯特曲线阶数计算中间状态值;
34.基于所述中间状态值利用所述递归算法计算所述非全字段数据的位置信息。
35.进一步地,所述基于所述中间状态值利用所述递归算法计算所述非全字段数据的位置信息,具体包括:
36.判断所述位置信息中x坐标与中间状态值的大小关系,以及判断所述位置信息中y坐标与中间状态值的大小关系;
37.若x坐标小于或等于中间状态值,且y坐标也小于或等于中间状态值,则将希尔伯特曲线阶数减去1,并将x坐标和y坐标的值互换后进行递归计算,并返回计算得到的位置信息;
38.若x坐标大于中间状态值,且y坐标小于或等于中间状态值,则将希尔伯特曲线阶数减去1,并将中间状态值减去y坐标后加1作为递归的x值,以及将中间状态值乘2减去x坐标后加1作为递归的y值进行递归计算,将计算得到的递归值加上3并乘以中间状态值的平方,并返回计算得到的位置信息;
39.若x坐标小于或等于中间状态值,且y坐标大于中间状态值,则将希尔伯特曲线阶数n减去1,并将x坐标作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上中间状态值的平方,并返回计算得到的位置信息值;
40.若x坐标大于中间状态值,且y坐标大于中间状态值,则将希尔伯特曲线阶数n减去1,将x坐标值减去中间状态值作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上2乘以中间状态值的平方后,并返回计算得到的位置信息值。
41.为了解决上述技术问题,本技术实施例还提供一种基于希尔伯特曲线的非全字段数据同步装置,采用了如下所述的技术方案:
42.一种基于希尔伯特曲线的非全字段数据同步装置,包括:
43.主键信息获取模块,用于获取待同步的非全字段数据的主键信息;
44.哈希散列运算模块,用于对所述主键信息进行哈希散列运算,获取所述主键信息对应的哈希值;
45.哈希值映射模块,用于将所述主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;
46.坐标数据获取模块,用于获取所述主键信息对应的哈希值在所述希尔伯特曲线上的坐标数据;
47.希尔伯特运算模块,用于将所述坐标数据输入到预设的希尔伯特空间曲线算法模型,得到所述非全字段数据的位置信息;
48.数据信息同步模块,用于获取所述非全字段数据对应的同步方式,并基于所述同步方式和所述位置信息对所述非全字段数据进行同步。
49.为了解决上述技术问题,本技术实施例还提供一种计算机设备,采用了如下所述的技术方案:
50.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述任一项所述的基于希尔伯特曲线的非全字段数据同步方法的步骤。
51.为了解决上述技术问题,本技术实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
52.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述中任一项所述的基于希尔伯特曲线的非全字段数据同步方法的步骤。
53.与现有技术相比,本技术实施例主要有以下有益效果:
54.本技术公开了一种基于希尔伯特曲线的非全字段数据同步方法及其相关设备,属于大数据技术领域。本技术通过获取待同步的非全字段数据的主键信息;对主键信息进行哈希散列运算,获取主键信息对应的哈希值;将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据;将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息;获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。此外,本技术还涉及区块链技术领域,非全字段数据可以存储在区块链网络的节点上。本技术利用希尔伯特曲线快速标定全量数据的范围,并通过哈希散列运算计算非全字段数据的主键信息对应的哈希值,通过将哈希值映射到上述全量数据的希尔伯特曲线的方式,来实现对非全字段数据的快速查询和定位,以完成非全字段数据的同步,大大降低了非全字段同步的任务耗时,同时降低数据同步过程中计算资源的消耗,提升了数据同步的效率。
附图说明
55.为了更清楚地说明本技术中的方案,下面将对本技术实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
56.图1示出了本技术可以应用于其中的示例性系统架构图;
57.图2示出了根据本技术的基于希尔伯特曲线的非全字段数据同步方法的一个实施例的流程图;
58.图3示出了根据本技术的基于希尔伯特曲线的非全字段数据同步装置的一个实施例的结构示意图;
59.图4示出了根据本技术的计算机设备的一个实施例的结构示意图。
具体实施方式
60.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
61.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
62.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
63.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
64.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
65.终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(movi ng pi cture experts group aud i o layer i i i,动态影像专家压缩标准音频层面3)、mp4(movi ng pi cture experts group aud i o layer i v,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
66.服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content de l ivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。
67.需要说明的是,本技术实施例所提供的基于希尔伯特曲线的非全字段数据同步方法一般由服务器执行,相应地,基于希尔伯特曲线的非全字段数据同步装置一般设置于服务器中。
68.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
69.继续参考图2,示出了根据本技术的基于希尔伯特曲线的非全字段数据同步方法的一个实施例的流程图。本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(art ificia l i nte l l igence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
70.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。所述的基于希尔伯特曲线的非全字段数据同步方法,包括以下步骤:
71.s201,获取待同步的非全字段数据的主键信息。
72.具体的,当数据湖抽取源端数据库的全量数据,并完成全量数据的初始化工作后,对于后续部分数据的插入、更新、删除等变更动作,通常采取非全字段数据同步的方式。当需要进行插入、更新或删除等数据同步操作时,接收数据同步指令,获取待同步的非全字段数据的主键信息,其中,非全字段数据的主键信息由全量数据与希尔伯特曲线的映射时生成的一维序列值和非全字段数据对应的唯一标识码拼接而成。
73.在本实施例中,基于希尔伯特曲线的非全字段数据同步方法运行于其上的电子设
备(例如图1所示的服务器)可以通过有线连接方式或者无线连接方式接收数据同步指令。需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi连接、蓝牙连接、wimax连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
74.进一步地,在获取待同步的非全字段数据的主键信息之前,还包括:
75.获取全量数据,并将全量数据按照标准希尔伯特曲线进行排序;
76.在预设一维空间中构建全量数据与希尔伯特曲线的映射关系,得到一维空间中全量数据的希尔伯特曲线;
77.按照预设的拆解规则对一维空间中的全量数据的希尔伯特曲线进行拆解;
78.在二维空间对拆解后的全量数据的希尔伯特曲线进行重构。
79.希尔伯特曲线(h i l bert curve)是一种空间填充曲线(space fi l l i ng curve)的分形图案,由德国数学家david hi l bert(1862-1943)发现。简单来说,空间填充曲线就是可以用“一笔画”的方式填充整个二维、三维或更高维的空间。
80.希尔伯特曲线是一条贯穿空间的连续曲线,其特性是可以穿过任意维度空间的所有点,相较于其他空间曲线来说,希尔伯特曲线具有连续稳定的特性,即该曲线上连续相邻的两个点,在空间位置上也相邻。基于希尔伯特曲线的这个空间特性,将非全字段的主键信息映射到希尔伯特曲线上,使主键信息表现在希尔伯特曲线上是随机且唯一的值,也可以做到对数据进行分段,使得在主键值上临近的数据在物理空间分布上也必然相近。
81.具体的,在进行非全字段数据同步之前,需要先对全量数据进行数据同步,即需要先完成全量数据的初始化工作。通过获取全量数据,并将全量数据按照标准希尔伯特曲线进行排序,在预设一维空间中构建全量数据与希尔伯特曲线的映射关系,得到一维空间中全量数据的希尔伯特曲线,按照预设的拆解规则对一维空间中的全量数据的希尔伯特曲线进行拆解,在二维空间对拆解后的全量数据的希尔伯特曲线进行重构。其中,预设的拆解规则为均分拆解规则,即将一维空间中的全量数据的希尔伯特曲线拆分为前后均等的两部分,且前部分曲线重构在二维空间的x平面,后部分曲线重构在二维空间的y平面。
82.在上述实施例中,在进行非全字段数据同步之前,需要构建全量数据与希尔伯特曲线的映射关系,并将一维空间中的全量数据的希尔伯特曲线展开形成二维空间的全量数据的希尔伯特曲线,完成全量数据的初始化工作。
83.进一步地,在在预设一维空间中构建全量数据与希尔伯特曲线的映射关系,得到一维空间中全量数据的希尔伯特曲线之后,还包括:
84.获取待同步数据文件,基于待同步数据文件确定待同步的非全字段数据;
85.获取在一维空间中构建全量数据与希尔伯特曲线的映射关系时生成的一维序列值;
86.获取非全字段数据对应的唯一标识码,并对一维序列值和唯一标识码进行拼接,生成非全字段数据的主键信息。
87.具体的,获取待同步数据文件,基于待同步数据文件确定待同步的非全字段数据,获取在一维空间中构建全量数据与希尔伯特曲线的映射关系时生成的一维序列值,获取非全字段数据对应的唯一标识码,并对一维序列值和唯一标识码进行拼接,生成非全字段数据的主键信息。
88.在上述实施例中,通过拼接一维序列值和唯一标识码进行拼接,生成非全字段数据的主键信息,以便于后续通过非全字段数据的主键信息确定非全字段数据在全量数据中的位置信息。
89.s202,对主键信息进行哈希散列运算,获取主键信息对应的哈希值。
90.其中,哈希(hash)是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
91.具体的,对非全字段数据的主键信息进行哈希散列运算,获取主键信息对应的哈希值hash code。在本技术具体的实施例中,以uui d构成的主键信息为例,uui d是一个128bit大小的唯一标识码,可以用于标记2的128次方个数据,足够支持任意业务场景使用,但是对于希尔伯特曲线空间位置的计算,其数值偏大,因此需要通过哈希函数将其散列至32b it长度,并获取散列后的哈希值散列后的哈希值hash code。
92.s203,将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上。
93.具体的,将上述散列后的哈希值后得到的主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上,以确定主键信息在二维空间上的位置坐标。
94.进一步地,将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上,具体包括:
95.按照预设的划分规则对主键信息对应的哈希值进行划分,得到第一哈希值集合和第二哈希值集合,其中,划分规则与拆解规则相互对应;
96.将第一哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的x平面;以及
97.将第二哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的y平面。
98.具体的,按照预设的划分规则对主键信息对应的哈希值进行划分,得到第一哈希值集合和第二哈希值集合,其中,划分规则与拆解规则相互对应,将第一哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的x平面,以及将第二哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的y平面。其中,预设的划分规则为均分划分规则,其与上述均分拆解规则对应。
99.在本技术具体实施例中,通过划分规则将上述32b it的uu i d对应的哈希值hash code拆解为16b i t-16b it的形式,并分别映射到全量数据16阶希尔伯特曲线所在二维空间,其中前16b it作为主键信息对应的坐标x值,后16b it作为主键信息对应的坐标y值。
100.在上述实施例中,本技术通过将主键信息对应的哈希值进行划分,以及将划分的哈希值分别映射到全量数据希尔伯特曲线所在二维空间,以确定主键信息对应的坐标。其中,16阶希尔伯特曲线所在二维空间所能包含的位置点数量是固定的,共计2的32次方个,将其所包含位置点的值等分为2的13次方个分段,即8192个分段,每个分段包含2的19次方个位置点,即524288个位置点。
101.s204,获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据。
102.具体的,在将第一哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的x
平面,以及将第二哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的y平面之后,遍历整个二维空间,获取获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据。
103.s205,将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息。
104.具体的,将坐标数据输入到预设的希尔伯特空间曲线算法模型,通过希尔伯特空间曲线算法模型对坐标数据进行递归运算,得到非全字段数据在全量数据中的具体位置信息,以便后续进行非全字段数据的同步。
105.进一步地,将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息,具体包括:
106.获取全量数据的希尔伯特曲线对应的阶数信息;
107.将阶数信息和位置信息输入到希尔伯特空间曲线算法模型中;
108.基于希尔伯特空间曲线算法模型中的递归算法计算非全字段数据的位置信息。
109.具体的,获取全量数据的希尔伯特曲线对应的阶数信息,将阶数信息和位置信息输入到希尔伯特空间曲线算法模型中,基于希尔伯特空间曲线算法模型中的递归算法计算非全字段数据的位置信息。其中,根据希尔伯特曲线中每一维度点数量的最大值,确定希尔伯特曲线阶数,阶数值为与每一维度点数量的最大值临近的2n中的指数值。
110.进一步地,基于希尔伯特空间曲线算法模型中的递归算法计算非全字段数据的位置信息,具体包括:
111.基于根据希尔伯特曲线阶数计算中间状态值;
112.基于中间状态值利用递归算法计算非全字段数据的位置信息。
113.具体的,本技术通过希尔伯特曲线阶数计算希尔伯特曲线的中间状态值,并通过基于中间状态值和位置信息,利用递归算法计算非全字段数据的位置信息。其中,希尔伯特曲线的中间状态值m为2的n-1次方,n为希尔伯特曲线阶数。
114.进一步地,基于中间状态值利用递归算法计算非全字段数据的位置信息,具体包括:
115.判断位置信息中x坐标与中间状态值的大小关系,以及判断位置信息中y坐标与中间状态值的大小关系;
116.若x坐标小于或等于中间状态值,且y坐标也小于或等于中间状态值,则将希尔伯特曲线阶数减去1,并将x坐标和y坐标的值互换后进行递归计算,并返回计算得到的位置信息;
117.若x坐标大于中间状态值,且y坐标小于或等于中间状态值,则将希尔伯特曲线阶数减去1,并将中间状态值减去y坐标后加1作为递归的x值,以及将中间状态值乘2减去x坐标后加1作为递归的y值进行递归计算,将计算得到的递归值加上3并乘以中间状态值的平方,并返回计算得到的位置信息;
118.若x坐标小于或等于中间状态值,且y坐标大于中间状态值,则将希尔伯特曲线阶数n减去1,并将x坐标作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上中间状态值的平方,并返回计算得到的位置信息值;
119.若x坐标大于中间状态值,且y坐标大于中间状态值,则将希尔伯特曲线阶数n减去1,将x坐标值减去中间状态值作为递归的x值,将y坐标值减去中间状态值作为递归的y值进
行递归计算,将计算得到的递归值加上2乘以中间状态值的平方后,并返回计算得到的位置信息值。
120.具体的,通过判断位置信息中x坐标与中间状态值的大小关系,以及判断位置信息中y坐标与中间状态值的大小关系来确定递归运算时的x值和y值,坐标值与中间状态值的4种大小关系和对应的递归求解过程如下:
121.如果x坐标小于或等于中间状态值m,且y坐标也小于或等于中间状态值m,则将希尔伯特曲线阶数减去1,并将x坐标和y坐标的值互换后进行递归计算,并返回计算得到的位置信息;
122.如果x坐标大于中间状态值m,且y坐标小于或等于中间状态值m,则将希尔伯特曲线阶数减去1,并将中间状态值减去y坐标后加1作为递归的x值,以及将中间状态值乘2减去x坐标后加1作为递归的y值进行递归计算,将计算得到的递归值加上3并乘以中间状态值的平方,并返回计算得到的位置信息;
123.如果x坐标小于或等于中间状态值m,且y坐标大于中间状态值m,则将希尔伯特曲线阶数n减去1,并将x坐标作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上中间状态值的平方,并返回计算得到的位置信息值;
124.如果x坐标大于中间状态值m,且y坐标大于中间状态值m,则将希尔伯特曲线阶数n减去1,将x坐标值减去中间状态值作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上2乘以中间状态值的平方后,并返回计算得到的位置信息值。
125.在上述实施例中,本技术通过计算希尔伯特曲线的阶数、计算希尔伯特曲线的中间状态值,并结合希尔伯特空间曲线算法模型中的递归算法,计算出非全字段数据位置信息值,得到非全字段数据在全量数据中的具体位置信息,以便后续进行非全字段数据的同步工作。
126.s206,获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。
127.具体的,确定非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。如果是插入数据操作,则将新增的数据根据非全字段数据的位置信息插入到该数据分段位置;如果是更新或者删除操作,则根据非全字段数据的位置信息在该数据分段搜寻匹配该条数据,搜寻到后完成相应的数据更新或者数据删除操作。
128.在上述实施例中,本技术公开了一种基于希尔伯特曲线的非全字段数据同步方法,属于大数据技术领域。本技术通过获取待同步的非全字段数据的主键信息;对主键信息进行哈希散列运算,获取主键信息对应的哈希值;将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据;将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息;获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。此外,本技术还涉及区块链技术领域,非全字段数据可以存储在区块链网络的节点上。本技术利用希尔伯特曲线快速标定全量数据的范围,并通过哈希散列运算计算非全字段数据的主键信息对应的哈希值,通过将哈希值映射到上述全量数据的希尔伯特曲线的方式,来实现对非全字段数据的快速查询和定位,以完成非全字段数据的同步,大大降低
了非全字段同步的任务耗时,同时降低数据同步过程中计算资源的消耗,提升了数据同步的效率。在数据湖的非全字段数据同步场景中,本技术的方案可以降低数据入湖的延迟。
129.需要强调的是,为进一步保证上述非全字段数据的私密和安全性,上述非全字段数据还可以存储于一区块链的节点中。
130.本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
131.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-on l y memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
132.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
133.进一步参考图3,作为对上述图2所示方法的实现,本技术提供了一种基于希尔伯特曲线的非全字段数据同步装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
134.如图3所示,本实施例所述的基于希尔伯特曲线的非全字段数据同步装置300包括:
135.主键信息获取模块301,用于获取待同步的非全字段数据的主键信息;
136.哈希散列运算模块302,用于对主键信息进行哈希散列运算,获取主键信息对应的哈希值;
137.哈希值映射模块303,用于将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;
138.坐标数据获取模块304,用于获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据;
139.希尔伯特运算模块305,用于将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息;
140.数据信息同步模块306,用于获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。
141.进一步地,该基于希尔伯特曲线的非全字段数据同步装置300还包括:
142.全量数据排序模块,用于获取全量数据,并将全量数据按照标准希尔伯特曲线进行排序;
143.全量数据映射模块,用于在预设一维空间中构建全量数据与希尔伯特曲线的映射关系,得到一维空间中全量数据的希尔伯特曲线;
144.一维曲线拆解模块,用于按照预设的拆解规则对一维空间中的全量数据的希尔伯特曲线进行拆解;
145.二维曲线重构模块,用于在二维空间对拆解后的全量数据的希尔伯特曲线进行重构。
146.进一步地,该基于希尔伯特曲线的非全字段数据同步装置300还包括:
147.同步数据确定模块,用于获取待同步数据文件,基于待同步数据文件确定待同步的非全字段数据;
148.序列值获取模块,用于获取在一维空间中构建全量数据与希尔伯特曲线的映射关系时生成的一维序列值;
149.主键信息生成模块,用于获取非全字段数据对应的唯一标识码,并对一维序列值和唯一标识码进行拼接,生成非全字段数据的主键信息。
150.进一步地,哈希值映射模块303具体包括:
151.哈希值划分子模块,用于按照预设的划分规则对主键信息对应的哈希值进行划分,得到第一哈希值集合和第二哈希值集合,其中,划分规则与拆解规则相互对应;
152.第一哈希值映射子模块,用于将第一哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的x平面;以及
153.第二哈希值映射子模块,用于将第二哈希值集合映射到全量数据的希尔伯特曲线所在二维空间的y平面。
154.进一步地,希尔伯特运算模块具体包括:
155.曲线阶数获取子模块,用于获取全量数据的希尔伯特曲线对应的阶数信息;
156.模型信息输入子模块,用于将阶数信息和位置信息输入到希尔伯特空间曲线算法模型中;
157.模型递归计算子模块,用于基于希尔伯特空间曲线算法模型中的递归算法计算非全字段数据的位置信息。
158.进一步地,模型递归计算子模块具体包括:
159.中间状态值计算单元,用于基于根据希尔伯特曲线阶数计算中间状态值;
160.位置信息计算单元,用于基于中间状态值利用递归算法计算非全字段数据的位置信息。
161.进一步地,位置信息计算单元具体包括:
162.坐标值判断子单元,用于判断位置信息中x坐标与中间状态值的大小关系,以及判断位置信息中y坐标与中间状态值的大小关系;
163.第一判断结果子单元,用于当x坐标小于或等于中间状态值,且y坐标也小于或等于中间状态值时,将希尔伯特曲线阶数减去1,并将x坐标和y坐标的值互换后进行递归计算,并返回计算得到的位置信息;
164.第二判断结果子单元,用于当x坐标大于中间状态值,且y坐标小于或等于中间状态值时,将希尔伯特曲线阶数减去1,并将中间状态值减去y坐标后加1作为递归的x值,以及将中间状态值乘2减去x坐标后加1作为递归的y值进行递归计算,将计算得到的递归值加上
3并乘以中间状态值的平方,并返回计算得到的位置信息;
165.第三判断结果子单元,用于当x坐标小于或等于中间状态值,且y坐标大于中间状态值时,将希尔伯特曲线阶数n减去1,并将x坐标作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上中间状态值的平方,并返回计算得到的位置信息值;
166.第四判断结果子单元,用于当x坐标大于中间状态值,且y坐标大于中间状态值时,将希尔伯特曲线阶数n减去1,将x坐标值减去中间状态值作为递归的x值,将y坐标值减去中间状态值作为递归的y值进行递归计算,将计算得到的递归值加上2乘以中间状态值的平方后,并返回计算得到的位置信息值。
167.在上述实施例中,本技术公开了一种基于希尔伯特曲线的非全字段数据同步装置,属于大数据技术领域。本技术通过获取待同步的非全字段数据的主键信息;对主键信息进行哈希散列运算,获取主键信息对应的哈希值;将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据;将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息;获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。此外,本技术还涉及区块链技术领域,非全字段数据可以存储在区块链网络的节点上。本技术利用希尔伯特曲线快速标定全量数据的范围,并通过哈希散列运算计算非全字段数据的主键信息对应的哈希值,通过将哈希值映射到上述全量数据的希尔伯特曲线的方式,来实现对非全字段数据的快速查询和定位,以完成非全字段数据的同步,大大降低了非全字段同步的任务耗时,同时降低数据同步过程中计算资源的消耗,提升了数据同步的效率。
168.为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
169.所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(app l i cat i on spec i f i c i ntegrated ci rcu it,as i c)、可编程门阵列(f i e l d-programmab l e gate array,fpga)、数字处理器(d i gita l si gna l processor,dsp)、嵌入式设备等。
170.所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
171.所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器
41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如基于希尔伯特曲线的非全字段数据同步方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
172.所述处理器42在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述基于希尔伯特曲线的非全字段数据同步方法的计算机可读指令。
173.所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
174.本技术公开了一种计算机设备,属于大数据技术领域。本技术通过获取待同步的非全字段数据的主键信息;对主键信息进行哈希散列运算,获取主键信息对应的哈希值;将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据;将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息;获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。此外,本技术还涉及区块链技术领域,非全字段数据可以存储在区块链网络的节点上。本技术利用希尔伯特曲线快速标定全量数据的范围,并通过哈希散列运算计算非全字段数据的主键信息对应的哈希值,通过将哈希值映射到上述全量数据的希尔伯特曲线的方式,来实现对非全字段数据的快速查询和定位,以完成非全字段数据的同步,大大降低了非全字段同步的任务耗时,同时降低数据同步过程中计算资源的消耗,提升了数据同步的效率。
175.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于希尔伯特曲线的非全字段数据同步方法的步骤。
176.本技术公开了一种存储介质,属于大数据技术领域。本技术通过获取待同步的非全字段数据的主键信息;对主键信息进行哈希散列运算,获取主键信息对应的哈希值;将主键信息对应的哈希值映射到预设全量数据的希尔伯特曲线所在的二维空间上;获取主键信息对应的哈希值在希尔伯特曲线上的坐标数据;将坐标数据输入到预设的希尔伯特空间曲线算法模型,得到非全字段数据的位置信息;获取非全字段数据对应的同步方式,并基于同步方式和位置信息对非全字段数据进行同步。此外,本技术还涉及区块链技术领域,非全字段数据可以存储在区块链网络的节点上。本技术利用希尔伯特曲线快速标定全量数据的范围,并通过哈希散列运算计算非全字段数据的主键信息对应的哈希值,通过将哈希值映射到上述全量数据的希尔伯特曲线的方式,来实现对非全字段数据的快速查询和定位,以完成非全字段数据的同步,大大降低了非全字段同步的任务耗时,同时降低数据同步过程中计算资源的消耗,提升了数据同步的效率。
177.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方
法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
178.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
179.显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1