船舶数据的分区方法、分区装置、电子设备和存储介质制造方法及图纸

技术编号:33293169 阅读:14 留言:0更新日期:2022-05-01 00:16
本申请提供了一种船舶数据的分区方法、分区装置、电子设备和存储介质,该分区方法包括:获取每条船舶的至少一条历史行驶数据;基于预设的分区数量和所述船舶的数量,确定船舶分区原始矩阵的行数量和列数量;按照所述列数量和所述行数量,生成所述船舶分区原始矩阵;在所述船舶分区原始矩阵的各个数据行之间进行数据交换,得到船舶分区目标矩阵;基于所述船舶分区目标矩阵,确定每条船舶对应的数据分区,并将每条船舶的至少一条历史行驶数据存储至对应的数据分区中。根据所述分区方法和分区装置,可以避免各个数据分区内船舶数量分布不均匀的问题。匀的问题。匀的问题。

【技术实现步骤摘要】
船舶数据的分区方法、分区装置、电子设备和存储介质


[0001]本申请涉及数据处理领域,具体而言,涉及船舶数据的分区方法、分区装置、电子设备和存储介质。

技术介绍

[0002]船舶在进出港和航行过程中,往往会产生大量的数据。装载在船舶上的自动跟踪系统可以实时的发送航行中船舶的特征信息如速度、航向、经纬度等。由于数据规模庞大,船舶规模数万,数据规模数千亿,预估每年新增数百亿GPS(Global Positioning System,全球定位系统)轨迹数据和数百新船舶,因此考虑使用CLICKHOUSE数据库来进行船舶数据的存储。
[0003]在使用CLICKHOUSE数据库对船舶数据进行分区时,往往存在很多缺点,例如能满足分区内总数据尽可能均匀和每条船舶的全部数据存放同一分区,但无法满足分区内船舶数量尽可能均匀,有的分区内数据量较大,而有的分区内数据量较小。这样当某个分区中的数据量过大时,就会导致该分区所在的物理机的存储压力过大。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供船舶数据的分区方法、分区装置、电子设备和存储介质,根据预设的分区数量以及已有的船舶数量生成原始矩阵,并对原始矩阵中的各个船舶信息进行随机交换,以生成分布均匀的船舶分区目标矩阵,再根据船舶分区目标矩阵对船舶数据进行分区存储,这样,同一条船舶的全部数据存放在同一数据分区中,每个数据分区中船舶数量尽可能相同,避免了各个数据分区内船舶数量分布不均匀的问题,降低了数据分区所在的物理机的存储压力。
[0005]第一方面,本申请实施例提供了一种船舶数据的分区方法,所述分区方法包括:
[0006]获取每条船舶的至少一条历史行驶数据;其中,每条历史行驶数据携带有船舶标识号,每个不同的船舶标识号代表不同的船舶;
[0007]基于CLICKHOUSE数据库中预设的分区数量和所述船舶的数量,确定船舶分区原始矩阵的行数量和列数量;
[0008]将每条船舶的元素信息作为所述船舶分区原始矩阵中的元素,按照所述列数量和所述行数量,生成所述船舶分区原始矩阵;其中,所述元素信息包括所述船舶的船舶标识号以及所述船舶所具有的历史行驶数据的数据量;
[0009]在所述船舶分区原始矩阵的各个数据行之间进行数据交换,得到船舶分区目标矩阵;
[0010]基于所述船舶分区目标矩阵,确定每条船舶对应的数据分区,并将每条船舶的至少一条历史行驶数据存储至对应的数据分区中。
[0011]进一步的,所述基于CLICKHOUSE数据库中预设的分区数量和所述船舶的数量,确定船舶分区原始矩阵的行数量和列数量,包括:
[0012]将所述预设的分区数量确定为所述船舶分区原始矩阵的列数量;
[0013]将所述船舶的数量与所述预设的分区数量之间的商,确定为所述船舶分区原始矩阵的行数量。
[0014]进一步的,所述在所述船舶分区原始矩阵的各个数据行之间进行数据交换,得到船舶分区目标矩阵,包括:
[0015](A)针对于所述船舶分区原始矩阵中的每一数据行,基于该数据行中所包括的每条船舶所具有的历史行驶数据的数据量,计算该数据行的数据累加值;
[0016](B)将所述船舶分区原始矩阵中数据累加值最大的数据行确定为第一数据行,将所述船舶分区原始矩阵中数据累加值最小的数据行确定为第二数据行;
[0017](C)从第一数据行中确定出所具有的历史行驶数据的数据量最大的第一船舶,从第二数据行中确定出所具有的历史行驶数据的数据量最小的第二船舶;
[0018](D)将所述第一船舶的元素信息在所述船舶分区原始矩阵中的位置与所述第二船舶的元素信息在所述船舶分区原始矩阵中的位置进行第一交换,再次计算所述第一数据行的数据累加值和所述第二数据行的数据累加值,若所述第一数据行的数据累加值大于所述第二数据行的数据累加值,则返回执行步骤(C),直至所述第一数据行的数据累加值小于所述第二数据行的数据累加值,得到船舶分区变化矩阵;
[0019](E)将所述船舶分区变化矩阵中的任意两个船舶的元素信息在所述船舶分区变化矩阵中的位置进行第二交换,将所述船舶分区变化矩阵中数据累加值最大的数据行确定为第三数据行,将所述船舶分区原始矩阵中数据累加值最小的数据行确定为第四数据行,并计算所述第三数据行与所述第四数据行之间的数据量差值;
[0020](F)若第二交换次数小于预设次数,则返回执行步骤(E),直至所述第二交换次数达到所述预设次数,并将所述数据量差值最小时的船舶分区变化矩阵确定为所述船舶分区目标矩阵。
[0021]进一步的,所述基于所述船舶分区目标矩阵,确定每条船舶对应的数据分区,并将每条船舶的至少一条历史行驶数据存储至对应的数据分区中,包括:
[0022]针对于每条船舶,基于所述船舶分区目标矩阵,确定出该船舶对应的分区序列号;
[0023]按照所述分区序列号,将该船舶的至少一条历史行驶数据存储至对应的数据分区中。
[0024]进一步的,所述分区方法还包括:
[0025]基于待查找船舶的船舶标识号,确定用于存储所述待查找船舶的历史行驶数据的物理机;
[0026]基于所述待查找船舶的船舶标识号,在所述物理机中确定用于存储所述待查找船舶的历史行驶数据的数据分区。
[0027]进一步的,所述分区方法还包括:
[0028]当接收到新增船舶数据时,确定所述CLICKHOUSE数据库中是否存在所述新增船舶数据所属的目标船舶对应的数据分区;
[0029]若存在,则将所述新增船舶数据添加到存在所述目标船舶对应的数据分区中;
[0030]若不存在,则将所述新增船舶数据添加到多个数据分区中数据总量最少的数据分区中。
[0031]第二方面,本申请实施例还提供了一种船舶数据的分区装置,所述分区装置包括:
[0032]数据获取模块,用于获取每条船舶的至少一条历史行驶数据;其中,每条历史行驶数据携带有船舶标识号,每个不同的船舶标识号代表不同的船舶;
[0033]数量确定模块,用于基于CLICKHOUSE数据库中预设的分区数量和所述船舶的数量,确定船舶分区原始矩阵的行数量和列数量;
[0034]船舶分区原始矩阵生成模块,用于将每条船舶的元素信息作为船舶分区原始矩阵中的元素,按照所述列数量和所述行数量,生成所述船舶分区原始矩阵;其中,所述元素信息包括所述船舶的船舶标识号以及所述船舶所具有的历史行驶数据的数据量;
[0035]船舶分区目标矩阵生成模块,用于在所述船舶分区原始矩阵的各个数据行之间进行数据交换,得到船舶分区目标矩阵;
[0036]数据分区生成模块,用于基于所述船舶分区目标矩阵,确定每条船舶对应的数据分区,并将每条船舶的至少一条历史行驶数据存储至对应的数据分区中。
[0037]进一步的,所述数量确定模块在用于基于CLICKHOUSE数据库中预设的分区数量和所述船舶的数量,确定用于生成船舶分区原始矩阵所需的行的数量和所需的列的数量时,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种船舶数据的分区方法,其特征在于,所述分区方法包括:获取每条船舶的至少一条历史行驶数据;其中,每条历史行驶数据携带有船舶标识号,每个不同的船舶标识号代表不同的船舶;基于CLICKHOUSE数据库中预设的分区数量和所述船舶的数量,确定船舶分区原始矩阵的行数量和列数量;将每条船舶的元素信息作为所述船舶分区原始矩阵中的元素,按照所述列数量和所述行数量,生成所述船舶分区原始矩阵;其中,所述元素信息包括所述船舶的船舶标识号以及所述船舶所具有的历史行驶数据的数据量;在所述船舶分区原始矩阵的各个数据行之间进行数据交换,得到船舶分区目标矩阵;基于所述船舶分区目标矩阵,确定每条船舶对应的数据分区,并将每条船舶的至少一条历史行驶数据存储至对应的数据分区中。2.根据权利要求1所述的分区方法,其特征在于,所述基于CLICKHOUSE数据库中预设的分区数量和所述船舶的数量,确定船舶分区原始矩阵的行数量和列数量,包括:将所述预设的分区数量确定为所述船舶分区原始矩阵的列数量;将所述船舶的数量与所述预设的分区数量之间的商,确定为所述船舶分区原始矩阵的行数量。3.根据权利要求1所述的分区方法,其特征在于,所述在所述船舶分区原始矩阵的各个数据行之间进行数据交换,得到船舶分区目标矩阵,包括:(A)针对于所述船舶分区原始矩阵中的每一数据行,基于该数据行中所包括的每条船舶所具有的历史行驶数据的数据量,计算该数据行的数据累加值;(B)将所述船舶分区原始矩阵中数据累加值最大的数据行确定为第一数据行,将所述船舶分区原始矩阵中数据累加值最小的数据行确定为第二数据行;(C)从第一数据行中确定出所具有的历史行驶数据的数据量最大的第一船舶,从第二数据行中确定出所具有的历史行驶数据的数据量最小的第二船舶;(D)将所述第一船舶的元素信息在所述船舶分区原始矩阵中的位置与所述第二船舶的元素信息在所述船舶分区原始矩阵中的位置进行第一交换,再次计算所述第一数据行的数据累加值和所述第二数据行的数据累加值,若所述第一数据行的数据累加值大于所述第二数据行的数据累加值,则返回执行步骤(C),直至所述第一数据行的数据累加值小于所述第二数据行的数据累加值,得到船舶分区变化矩阵;(E)将所述船舶分区变化矩阵中的任意两个船舶的元素信息在所述船舶分区变化矩阵中的位置进行第二交换,将所述船舶分区变化矩阵中数据累加值最大的数据行确定为第三数据行,将所述船舶分区原始矩阵中数据累加值最小的数据行确定为第四数据行,并计算所述第三数据行与所述第四数据行之间的数据量差值;(F)若第二交换次数小于预设次数,则返回执行步骤(E),直至所述第二交换次数达到所述预设次数,并将所述数据量差值最小时的船舶分区变化矩阵确定为所述船舶分区目标矩阵。4.根据权利要求1所述的方法,其特征在于,所述基于所述船舶分区目标矩阵,确定每条船舶对...

【专利技术属性】
技术研发人员:熊建军何渝君许振乾程明何丹郭子豪刘维王超段奇邬明罡
申请(专利权)人:瀚云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1