一种基于kafka的数据同步方法及装置与流程
未命名
10-25
阅读:83
评论:0
1.本技术是关于数据处理技术领域,特别是关于一种基于kafka的数据同步方法及装置。
背景技术:
2.随着计算机技术的发展,在越来越多的应用场景中均涉及到数据的同步。以电站的数据同步为例,当一个电站的电芯数据被采集后,从电站侧将数据使用直连的方式将数据同步到应用侧的数据库。直连数据传输具体流程如下:采集器采集电厂设备中的电芯数据,然后将采集到的数据保存到边侧数据库中,应用端搭建环境,部署数据接收程序通过网络接收边侧数据库中的数据,然后写入到应用端数据库,再由应用数据库保存,根据业务逻辑提供给业务应用端。
3.对于这种直连的数据同步方式,当网络不好时,会造成数据时效性降低,并且数据也会丢包。而且,这种直传的方式没有数据校验,如果丢包是关键数据那么会产生很大的隐患。
4.因此,目前的数据同步方式难以保证数据的完整性,以及难以保证数据传输的安全性。
技术实现要素:
5.本技术的目的在于提供一种基于kafka的数据同步方法及装置,其能够提高数据传输的安全性,以及提高数据的完整性。
6.为实现上述目的,本技术的实施例提供了一种基于kafka的数据同步方法,包括:获取第一数据端传输的待同步数据;所述待同步数据包括:电站采集的电芯数据;基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据;其中,所述第一目标数据对应的数据采集设备信息符合预设条件,所述预设条件包括:数据采集周期条件和数据采集精度条件;基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息;所述数据存储位置关联信息用于表征所述第一目标数据的存储位置条件;通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端。
7.在一种可能的实施方式中,所述数据采集设备信息包括:数据采集周期和数据采集精度;所述数据采集周期条件包括预设数据采集周期,所述数据采集精度条件包括预设数据采集精度,所述基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据,包括:针对所述待同步数据中的数据,比较该数据对应的数据采集设备的数据采集周期和所述预设数据采集周期,以及比较该数据对应的数据采集设备的数据采集精度和所述预设数据采集精度;若该数据对应的数据采集设备的数据采集周期大于所述预设数据采集周期,且该数据对应的数据采集设备的数据采集精度小于所述预设数据采集精度,确定该数据为所述第一目标数据。
8.在一种可能的实施方式中,所述电芯信息包括电芯类型和电芯使用率,所述数据
存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数;所述基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息,包括:判断所述第一目标数据对应的电芯类型是否为目标电芯类型;若所述第一目标数据对应的电芯类型为目标电芯类型,将预设的数据存储位置关联信息确定为所述第一目标数据的数据存储位置关联信息;其中,所述预设的数据存储位置关联信息包括:预设存储空间大小、预设数据读写速度和预设数据复制次数;若所述第一目标数据对应的电芯类型不是目标电芯类型,获取所述目标电芯类型对应的电芯使用率;基于所述目标电芯类型对应的电芯使用率、所述第一目标数据对应的电芯使用率和所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息。
9.在一种可能的实施方式中,所述基于所述目标电芯类型对应的电芯使用率、所述第一目标数据对应的电芯使用率和所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息,包括:比较所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率;若所述目标电芯类型对应的电芯使用率大于所述第一目标数据对应的电芯使用率,基于所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率之间的使用率差值,以及所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息;若所述目标电芯类型对应的电芯使用率小于或者等于所述第一目标数据对应的电芯使用率,将所述预设的数据存储位置关联信息确定为所述第一目标数据的数据存储位置关联信息。
10.在一种可能的实施方式中,所述基于所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率之间的使用率差值,以及所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息,包括:基于所述使用率差值、第一预设系数和所述预设存储空间大小,确定所述第一目标数据对应的存储空间大小;基于所述使用率差值、第二预设系数和所述预设数据读写速度,确定所述第一目标数据对应的数据读写速度;基于所述使用率差值、第三预设系数和所述预设数据复制次数,确定所述第一目标数据对应的数据复制次数;其中,所述第一预设系数、所述第二预设系数和所述第三预设系数的和小于或者等于预设值。
11.在一种可能的实施方式中,所述数据存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数,所述通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端,包括:通过所述kafka基于所述存储空间大小确定所述第一目标数据对应的数据存储分区,并将所述第一目标数据存储到所述数据存储分区中;基于所述数据读写速度和所述数据复制次数,将所述第一目标数据从所述数据存储分区中同步给所述第二数据端。
12.在一种可能的实施方式中,所述数据存储分区包括日志文件,所述第二数据端包括:doris数据库,所述将所述第一目标数据从所述数据存储分区中同步给所述第二数据端,包括:基于所述数据读写数据和所述数据复制次数,从所述日志文件中读取所述第一目标数据;基于所述doris数据库的数据存储机制,将读取的第一目标数据同步给所述doris数据库。
13.在一种可能的实施方式中,所述基于kafka的数据同步方法还包括:基于所述第二数据端的数据同步需求,确定所述待同步数据中的第二目标数据;所述第二目标数据为所
述待同步数据中除所述第一目标数据外的其他数据,且所述第二目标数据符合所述数据同步需求;基于所述第二目标数据对应的数据采集设备信息、所述第二目标数据对应的电芯信息和所述第二目标数据的数据量大小,确定所述第二目标数据的加密策略;基于所述加密策略,对所述第二目标数据进行加密处理;通过公共网络将所述加密处理的第二目标数据同步给所述第二数据端。
14.在一种可能的实施方式中,所述数据采集设备信息包括:数据采集周期和数据采集精度,所述电芯信息包括电芯类型和电芯使用率,所述基于所述第二目标数据对应的数据采集设备信息、所述第二目标数据对应的电芯信息和所述第二目标数据的数据量大小,确定所述第二目标数据的加密策略,包括:基于所述数据采集周期和所述数据采集精度,确定所述第二目标数据的第一加密等级;基于所述电芯类型和所述电芯使用率,确定所述第二目标数据的第二加密等级;基于所述数据量大小,确定所述第二目标数据的加密复杂度;基于所述第一加密等级、所述第二加密等级和所述加密复杂度,确定所述第二目标数据的目标加密等级;基于所述目标加密等级和预设的加密等级与加密策略之间的对应关系,确定所述第二目标数据的加密策略。
15.本技术的实施例还提供一种基于kafka的数据同步装置,包括:获取单元,用于获取第一数据端传输的待同步数据;所述待同步数据包括:电站采集的电芯数据;处理单元,用于:基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据;其中,所述第一目标数据对应的数据采集设备信息符合预设条件,所述预设条件包括:数据采集周期条件和数据采集精度条件;基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息;所述数据存储位置关联信息用于表征所述第一目标数据的存储位置条件;通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端。
16.与现有技术相比,本技术实施例提供的基于kafka的数据同步方法及装置,基于kafka实现数据的同步,kafka是一种开源流处理平台,相当于一种数据同步组件。则,基于该数据同步组件,对电站采集的电芯数据中的符合条件的数据进行同步,利用组件完成端对端的数据同步,省去同步程序的开发,省去代码开发的时间。以及,该数据同步组件能够保证数据传输的丢失,从而保证数据的完整性以及数据传输的安全性。并且,该数据同步组件的数据同步方式,与电站采集的电芯数据对应的电芯信息和数据采集设备关联,使得数据的同步与传输的数据之间的关联性和适配度增强,进一步提高数据同步的安全性与稳定性。从而,该基于kafka的数据同步方法及装置不仅可以提高数据传输的安全性,以及提高数据的完整性;还可以实现低代码开发。
附图说明
17.图1是根据现有技术的数据同步架构的结构示意图;图2是根据本技术一实施方式的数据同步系统的结构示意图;图3是根据本技术一实施方式的基于kafka的数据同步方法的流程图;图4是根据本技术一实施方式的基于kafka的数据同步装置的结构示意图;图5是根据本技术一实施方式的数据同步终端的结构示意图。
具体实施方式
18.下面结合附图,对本技术的具体实施方式进行详细描述,但应当理解本技术的保护范围并不受具体实施方式的限制。
19.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
20.本技术实施例提供的技术方案可以应用于电站应用场景中的数据同步;具体的,可以应用于实现电芯数据的端对端同步。
21.目前,在电站应用场景中,采用的数据同步系统架构,如图1所示,采用直连的端对端同步方式,具体流程包括:采集器采集电厂设备中的电芯数据,然后将采集到的数据保存到边侧数据库中,应用端搭建环境,部署数据接收程序通过网络接收边侧数据库中的数据,然后写入到应用端数据库,再由应用数据库保存,根据业务逻辑提供给业务应用端。
22.对于这种直连的数据同步方式,当网络不好时,会造成数据时效性降低,并且数据也会丢包。而且,这种直传的方式没有数据校验,如果丢包是关键数据那么会产生很大的隐患。
23.基于此,本技术的实施例提供一种的基于kafka的数据同步方案,该数据同步方案,基于kafka实现数据的同步,kafka是一种开源流处理平台,相当于一种数据同步组件。则,基于该数据同步组件,对电站采集的电芯数据中的符合条件的数据进行同步,利用组件完成端对端的数据同步,省去同步程序的开发,省去代码开发的时间。以及,该数据同步组件能够保证数据传输的丢失,从而保证数据的完整性以及数据传输的安全性。
24.接下来请参照图2,为本技术实施例提供的基于kafka的数据同步系统,在该数据同步系统中,增加kafka,该kafka相当于数据同步组件。
25.在一些应用场景中,本技术实施例提供的数据同步方案可以应用于kafka所部署的终端设备,即,kafka组件部署在数据同步终端中,该数据同步终端基于kafka实现数据的同步。
26.在图2中,除了基于kafka,在目前的数据同步架构的基础上,还增加了应用端数据库,该应用端数据库为doris数据库(一种分析型数据库),关于该数据库的实施方式,在后续实施例中具体介绍。
27.接下来请参照图3,为本技术实施例提供的基于kafka的数据同步方法的流程图,该数据同步方法包括:步骤301,获取第一数据端传输的待同步数据。其中,待同步数据包括:电站采集的电芯数据。
28.在一些实施例中,如图2所示的,第一数据端可以是与数据采集器连接的边侧数据库,待同步数据为从电厂设备至采集器采集到的电芯数据。
29.以及,如图2所示,待同步数据可能是来自不同电厂、不同电厂设备的电芯数据,所以存在着多样性的特点。
30.对于待同步数据,其中的一部分数据可能是安全性和完整性要求较高的数据,这部分数据可以通过kafka实现同步,而另一部分数据为安全性和完整性要求相对不高的数据,可以通过目前的公共网络实现数据同步。
31.因此,步骤302,基于待同步数据对应的数据采集设备信息,确定待同步数据中的第一目标数据。其中,第一目标数据对应的数据采集设备信息符合预设条件,预设条件包括:数据采集周期条件和数据采集精度条件。
32.在一些实施例中,如图2所示,待同步数据对应的数据采集设备为相应的电芯数据采集器,因此,当对应不同的电芯数据采集器时,对应的数据采集设备信息不相同。
33.作为一种可选的实施方式,数据采集设备信息包括:数据采集周期和数据采集精度;数据采集周期条件包括预设数据采集周期,数据采集精度条件包括预设数据采集精度。
34.则,步骤302包括:针对待同步数据中的数据,比较该数据对应的数据采集设备的数据采集周期和预设数据采集周期,以及比较该数据对应的数据采集设备的数据采集精度和预设数据采集精度;若该数据对应的数据采集设备的数据采集周期大于预设数据采集周期,且该数据对应的数据采集设备的数据采集精度小于预设数据采集精度,确定该数据为第一目标数据。
35.在一些实施例中,针对待同步数据,将其划分为不同的数据采集设备分别采集的数据,然后对划分的数据分别作第一目标数据的判断。
36.在一些实施例中,数据采集周期可以理解为数据采集设备的数据采集频率,例如:每隔2s采集一次电芯数据;数据采集精度可以理解为基于数据采集设备的数据精度和外界环境影响的数据精度,所确定的数据精度,例如:百分之九十、百分之八十等。
37.在一些实施例中,预设数据采集周期和预设数据采集精度,可以结合不同的应用场景配置,例如,根据不同的应用场景中对于高精度数据的要求配置。
38.步骤303,基于第一目标数据对应的电芯信息,确定数据存储位置关联信息。其中,数据存储位置关联信息用于表征第一目标数据的存储位置条件。
39.在一些实施例中,电芯信息包括电芯类型和电芯使用率,数据存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数。
40.在一些实施例中,电芯类型可以理解为电厂对电芯划分的电芯类型;电芯使用率可以理解为电芯在电厂中的使用率;存储空间大小可以理解为数据所需的存储空间大小;数据读写数据可以理解为对数据进行读写时的速度;数据复制次数可以理解为,对数据进行复制的次数。
41.从而,步骤303包括:判断第一目标数据对应的电芯类型是否为目标电芯类型;若第一目标数据对应的电芯类型为目标电芯类型,将预设的数据存储位置关联信息确定为第一目标数据的数据存储位置关联信息;其中,预设的数据存储位置关联信息包括:预设存储空间大小、预设数据读写速度和预设数据复制次数;若第一目标数据对应的电芯类型不是目标电芯类型,获取目标电芯类型对应的电芯使用率;基于目标电芯类型对应的电芯使用率、第一目标数据对应的电芯使用率和预设的数据存储位置关联信息,确定第一目标数据的数据存储位置关联信息。
42.在一些实施例中,目标电芯类型可以是预先指定的电芯类型,该电芯类型可以是电厂中较为重要的电芯类型,所以该电芯类型的电芯数据也较为重要,需要更安全的数据同步方式。
43.在一些实施例中,预设数据存储位置关联信息,可以根据不同的电芯类型进行制定,为与目标电芯类型匹配的相关信息,此处不对具体的值作限定。
44.在一些实施例中,基于目标电芯类型对应的电芯使用率、第一目标数据对应的电芯使用率和所述预设的数据存储位置关联信息,确定第一目标数据的数据存储位置关联信息,包括:比较目标电芯类型对应的电芯使用率和第一目标数据对应的电芯使用率;若目标电芯类型对应的电芯使用率大于第一目标数据对应的电芯使用率,基于目标电芯类型对应的电芯使用率和第一目标数据对应的电芯使用率之间的使用率差值,以及预设的数据存储位置关联信息,确定第一目标数据的数据存储位置关联信息;若目标电芯类型对应的电芯使用率小于或者等于第一目标数据对应的电芯使用率,将预设的数据存储位置关联信息确定为第一目标数据的数据存储位置关联信息。
45.作为一种可选的实施方式,基于目标电芯类型对应的电芯使用率和第一目标数据对应的电芯使用率之间的使用率差值,以及预设的数据存储位置关联信息,确定第一目标数据的数据存储位置关联信息,包括:基于使用率差值、第一预设系数和预设存储空间大小,确定第一目标数据对应的存储空间大小;基于使用率差值、第二预设系数和预设数据读写速度,确定第一目标数据对应的数据读写速度;基于使用率差值、第三预设系数和预设数据复制次数,确定第一目标数据对应的数据复制次数;其中,第一预设系数、第二预设系数和第三预设系数的和小于或者等于预设值。
46.在一些实施例中,预设值可以为0~1之间的任意值,可以根据不同的应用场景进行设置。
47.在一些实施例中,第一预设系数、第二预设系数和第三预设系数可以相互接近,但是不相同。
48.在一些实施例中,可以先确定使用率差值与各个预设系数的比值,再将该比值与相应的预设信息的乘积,确定为第一目标数据对应的相应信息。例如,先确定使用率差值与第一预设系数的比值,再将该比值与预设存储空间相乘,确定第一目标数据对应的存储空间大小。
49.步骤304,通过kafka基于数据存储位置关联信息,将第一目标数据传输给第二数据端。
50.在一些实施例中,如图2所示,第二数据端为doris数据库。在另一些实施例中,第二数据端也可以采用其他应用侧的数据库,在此不作限定。
51.在一些实施例中,数据存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数,则,步骤304包括:通过kafka基于存储空间大小确定第一目标数据对应的数据存储分区,并将第一目标数据存储到数据存储分区中;基于数据读写速度和数据复制次数,将第一目标数据从数据存储分区中同步给第二数据端。
52.在一些实施例中,kafka首先通过offset来管理内部数据的位置信息,通过保存在consumer上的current offset,保证每次consumer的消费的消息都有唯一序号并标记此位置信息,如果出现新的消息也会对新的消息进行递增式位置标注,以便下次读取的时候能够不重复消息。
53.在一些实施例中,kafka的事务可以实现端到端有且仅有一次语义的基础。kafka包括transaction coordinator和transaction log两个组件,transaction coordinator 是运行在每个kafka broker 上的一个模块,是kafka broker 进程承载的功能之一;transaction log 是kafka的一个内部topic,transaction log有多个分区,每个分区都有
一个 leader,该leader对应哪个kafka broker,哪个 broker上的transaction coordinator 就负责对这些分区的写操作,由于transaction coordinator 是kafka broker 内部的一个模块,而 transaction log 是kakfa的一个内部topic, 所以kafka可以通过内部的复制协议和选举机制,来确保transaction coordinator的可用性和transaction state的持久性;transaction log topic内部存储的只是事务的最新状态和其相关元数据信息,kafka producer 生产的原始消息,仍然是只存储在kafka producer指定的 topic 中。事务的状态有:“ongoing”,“prepare commit”和
ꢀ“
completed”。
54.可以理解,kafka的内部各模块或者各组件的定义,或者运作方式,可参照本领域的成熟技术,在此不作详细介绍。
55.从而,对于kafka来说,将数据读写速度和数据复制次数作为限制条件,执行数据的同步操作。
56.在一些实施例中,kafka内的所有数据保存日志文件中,所以会对日志文件中消息的提交状态进行控制,kafka控制消息的状态有两种,事务已经提交和已经被成功终止;从而,其可以实现数据是否提交成功的校验。
57.在一些实施例中,数据存储分区包括日志文件,第二数据端包括:doris数据库,将第一目标数据从数据存储分区中同步给第二数据端,包括:基于数据读写数据和数据复制次数,从日志文件中读取第一目标数据;基于doris数据库的数据存储机制,将读取的第一目标数据同步给doris数据库。
58.在一些实施例中,利用doris数据库的数据下载机制,doris数据库读取kafka日志文件,完成kafka到doris数据库的数据同步的过程。
59.在一些实施例中,首先,确定表结构不能出现多余字段或与doris数据库的表结构字段位置有出入的字段。然后,确认kafka是否有相应的安全方式认证,以及kafka中的消息格式是否为符合规范的格式。最后,再创建同步任务,执行数据同步操作。
60.在一些实施例中,在完成第一目标数据的同步之后,对于待同步数据中的剩余数据,也需要执行相应的同步操作。因此,作为一种可选的实施方式,该数据同步方法还包括:基于第二数据端的数据同步需求,确定待同步数据中的第二目标数据;第二目标数据为待同步数据中除第一目标数据外的其他数据,且第二目标数据符合数据同步需求;基于第二目标数据对应的数据采集设备信息、第二目标数据对应的电芯信息和第二目标数据的数据量大小,确定第二目标数据的加密策略;基于加密策略,对第二目标数据进行加密处理;通过公共网络将加密处理的第二目标数据同步给第二数据端。
61.在一些实施例中,数据同步需求中,可以包括数据同步量,指定的需要同步的数据等信息。基于数据同步量,可判断第一目标数据的同步量是否达到该需求同步量,若达到,则再进一步判断指定的需要同步的数据是否在第一目标数据中,若在,则可以将预设电芯类型的一些数据作为第二目标数据;若不在,则将指定的需要同步的数据确定为第二目标数据。若没有达到,则基于剩余的数据同步量,在指定的需要同步的数据优先同步的基础上,确定第二目标数据。
62.在一些实施例中,数据采集设备信息包括:数据采集周期和数据采集精度,电芯信息包括电芯类型和电芯使用率,基于第二目标数据对应的数据采集设备信息、第二目标数据对应的电芯信息和第二目标数据的数据量大小,确定第二目标数据的加密策略,包括:基
于数据采集周期和数据采集精度,确定第二目标数据的第一加密等级;基于电芯类型和电芯使用率,确定第二目标数据的第二加密等级;基于数据量大小,确定第二目标数据的加密复杂度;基于第一加密等级、第二加密等级和加密复杂度,确定第二目标数据的目标加密等级;基于目标加密等级和预设的加密等级与加密策略之间的对应关系,确定第二目标数据的加密策略。
63.在一些实施例中,可以预设数据采集周期和数据采集精度,以及多个加密等级之间的对应关系,基于当前的数据采集周期和数据采集精度,确定出对应的加密等级,作为第一加密等级。
64.在一些实施例中,可以预设电芯类型、电芯使用率,以及多个加密等级之间的对应关系,基于当前的电芯类型、电芯使用率,确定对应的加密等级,作为第二加密等级。
65.在一些实施例中,可以预设不同的数据量大小与多个加密复杂度之间的对应关系,基于当前的数据量大小,确定出对应的加密复杂度。
66.在一些实施例中,预设加密复杂度对加密等级的影响值,基于当前的加密复杂度,确定出相应的影响值。然后,基于第一加密等级和第二加密等级,确定出整合的加密等级,例如,预设第一加密等级、第二加密等级和整合加密等级之间的对应关系,从而确定出整合的加密等级。最后,在整合的加密等级的基础上,基于加密影响值,确定出目标加密等级。
67.在一些实施例中,基于目标加密等级,确定出对应的加密策略,可确定出第二目标数据的加密策略。
68.通过前述介绍可以看出,本技术的实施例基于kafka实现数据的同步,kafka是一种开源流处理平台,相当于一种数据同步组件。则,基于该数据同步组件,对电站采集的电芯数据中的符合条件的数据进行同步,利用组件完成端对端的数据同步,省去同步程序的开发,省去代码开发的时间。以及,该数据同步组件能够保证数据传输的丢失,从而保证数据的完整性以及数据传输的安全性。并且,该数据同步组件的数据同步方式,与电站采集的电芯数据对应的电芯信息和数据采集设备关联,使得数据的同步与传输的数据之间的关联性和适配度增强,进一步提高数据同步的安全性与稳定性。从而,该技术方案不仅可以提高数据传输的安全性,以及提高数据的完整性;还可以实现低代码开发。
69.接下来请参照图4,为本技术实施例提供的基于kafka的数据同步装置的结构示意图,该装置包括:获取单元401,用于获取第一数据端传输的待同步数据;所述待同步数据包括:电站采集的电芯数据;处理单元402,用于:基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据;其中,所述第一目标数据对应的数据采集设备信息符合预设条件,所述预设条件包括:数据采集周期条件和数据采集精度条件;基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息;所述数据存储位置关联信息用于表征所述第一目标数据的存储位置条件;通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端。
70.在一些实施例中,所述数据采集设备信息包括:数据采集周期和数据采集精度;所述数据采集周期条件包括预设数据采集周期,处理单元402进一步用于:针对所述待同步数据中的数据,比较该数据对应的数据采集设备的数据采集周期和所述预设数据采集周期,以及比较该数据对应的数据采集设备的数据采集精度和所述预设数据采集精度;若该数据
对应的数据采集设备的数据采集周期大于所述预设数据采集周期,且该数据对应的数据采集设备的数据采集精度小于所述预设数据采集精度,确定该数据为所述第一目标数据。
71.在一些实施例中,所述电芯信息包括电芯类型和电芯使用率,所述数据存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数;处理单元402进一步用于:判断所述第一目标数据对应的电芯类型是否为目标电芯类型;若所述第一目标数据对应的电芯类型为目标电芯类型,将预设的数据存储位置关联信息确定为所述第一目标数据的数据存储位置关联信息;其中,所述预设的数据存储位置关联信息包括:预设存储空间大小、预设数据读写速度和预设数据复制次数;若所述第一目标数据对应的电芯类型不是目标电芯类型,获取所述目标电芯类型对应的电芯使用率;基于所述目标电芯类型对应的电芯使用率、所述第一目标数据对应的电芯使用率和所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息。
72.在一些实施例中,处理单元402进一步用于:比较所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率;若所述目标电芯类型对应的电芯使用率大于所述第一目标数据对应的电芯使用率,基于所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率之间的使用率差值,以及所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息;若所述目标电芯类型对应的电芯使用率小于或者等于所述第一目标数据对应的电芯使用率,将所述预设的数据存储位置关联信息确定为所述第一目标数据的数据存储位置关联信息。
73.在一些实施例中,处理单元402进一步用于:基于所述使用率差值、第一预设系数和所述预设存储空间大小,确定所述第一目标数据对应的存储空间大小;基于所述使用率差值、第二预设系数和所述预设数据读写速度,确定所述第一目标数据对应的数据读写速度;基于所述使用率差值、第三预设系数和所述预设数据复制次数,确定所述第一目标数据对应的数据复制次数;其中,所述第一预设系数、所述第二预设系数和所述第三预设系数的和小于或者等于预设值。
74.在一些实施例中,处理单元402进一步用于:通过所述kafka基于所述存储空间大小确定所述第一目标数据对应的数据存储分区,并将所述第一目标数据存储到所述数据存储分区中;基于所述数据读写速度和所述数据复制次数,将所述第一目标数据从所述数据存储分区中同步给所述第二数据端。
75.在一些实施例中,处理单元402进一步用于:基于所述数据读写数据和所述数据复制次数,从所述日志文件中读取所述第一目标数据;基于所述doris数据库的数据存储机制,将读取的第一目标数据同步给所述doris数据库。
76.在一些实施例中,处理单元402还用于:基于所述第二数据端的数据同步需求,确定所述待同步数据中的第二目标数据;所述第二目标数据为所述待同步数据中除所述第一目标数据外的其他数据,且所述第二目标数据符合所述数据同步需求;基于所述第二目标数据对应的数据采集设备信息、所述第二目标数据对应的电芯信息和所述第二目标数据的数据量大小,确定所述第二目标数据的加密策略;基于所述加密策略,对所述第二目标数据进行加密处理;通过公共网络将所述加密处理的第二目标数据同步给所述第二数据端。
77.在一些实施例中,处理单元402进一步用于:基于所述数据采集周期和所述数据采集精度,确定所述第二目标数据的第一加密等级;基于所述电芯类型和所述电芯使用率,确
定所述第二目标数据的第二加密等级;基于所述数据量大小,确定所述第二目标数据的加密复杂度;基于所述第一加密等级、所述第二加密等级和所述加密复杂度,确定所述第二目标数据的目标加密等级;基于所述目标加密等级和预设的加密等级与加密策略之间的对应关系,确定所述第二目标数据的加密策略。
78.如图5所示,本技术实施例还提供一种数据同步终端,包括处理器501和存储器502,处理器501和存储器502通信连接,该数据同步终端可作为前述的数据同步方法的执行主体。
79.处理器501、存储器502之间直接或间接地电连接,以实现数据的传输或交互。例如,这些元件之间可以通过一条或多条通讯总线或信号总线实现电连接。前述的数据同步方法分别包括至少一个可以以软件或固件(firmware)的形式存储于存储器502中的软件功能模块。
80.处理器501可以是一种集成电路芯片,具有信号处理能力。处理器501可以是通用处理器,包括cpu (central processing unit,中央处理器)、np (network processor,网络处理器)等;还可以是数字信号处理器、专用集成电路、现成可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
81.存储器502可以存储各种软件程序以及模块,如本技术实施例提供的数据同步方法及装置对应的程序指令/模块。处理器501通过运行存储在存储器502中的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现本技术实施例中的方法。
82.存储器502可以包括但不限于ram(random access memory,随机存取存储器),rom(read only memory,只读存储器),prom(programmable read-only memory,可编程只读存储器),eprom(erasable programmable read-only memory,可擦除只读存储器),eeprom(electric erasable programmable read-only memory,电可擦除只读存储器)等。
83.可以理解,图5所示的结构仅为示意,数据同步终端还可包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。
84.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
85.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
86.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
87.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
88.前述对本技术的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本技术限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本技术的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本技术的各种不同的示例性实施方案以及各种不同的选择和改变。本技术的范围意在由权利要求书及其等同形式所限定。
技术特征:
1.一种基于kafka的数据同步方法,其特征在于,包括:获取第一数据端传输的待同步数据;所述待同步数据包括:电站采集的电芯数据;基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据;其中,所述第一目标数据对应的数据采集设备信息符合预设条件,所述预设条件包括:数据采集周期条件和数据采集精度条件;基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息;所述数据存储位置关联信息用于表征所述第一目标数据的存储位置条件;通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端。2.根据权利要求1所述的基于kafka的数据同步方法,其特征在于,所述数据采集设备信息包括:数据采集周期和数据采集精度;所述数据采集周期条件包括预设数据采集周期,所述数据采集精度条件包括预设数据采集精度,所述基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据,包括:针对所述待同步数据中的数据,比较该数据对应的数据采集设备的数据采集周期和所述预设数据采集周期,以及比较该数据对应的数据采集设备的数据采集精度和所述预设数据采集精度;若该数据对应的数据采集设备的数据采集周期大于所述预设数据采集周期,且该数据对应的数据采集设备的数据采集精度小于所述预设数据采集精度,确定该数据为所述第一目标数据。3.根据权利要求1所述的基于kafka的数据同步方法,其特征在于,所述电芯信息包括电芯类型和电芯使用率,所述数据存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数;所述基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息,包括:判断所述第一目标数据对应的电芯类型是否为目标电芯类型;若所述第一目标数据对应的电芯类型为目标电芯类型,将预设的数据存储位置关联信息确定为所述第一目标数据的数据存储位置关联信息;其中,所述预设的数据存储位置关联信息包括:预设存储空间大小、预设数据读写速度和预设数据复制次数;若所述第一目标数据对应的电芯类型不是目标电芯类型,获取所述目标电芯类型对应的电芯使用率;基于所述目标电芯类型对应的电芯使用率、所述第一目标数据对应的电芯使用率和所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息。4.根据权利要求3所述的基于kafka的数据同步方法,其特征在于,所述基于所述目标电芯类型对应的电芯使用率、所述第一目标数据对应的电芯使用率和所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息,包括:比较所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率;若所述目标电芯类型对应的电芯使用率大于所述第一目标数据对应的电芯使用率,基于所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率之间的使用率差值,以及所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息;若所述目标电芯类型对应的电芯使用率小于或者等于所述第一目标数据对应的电芯
使用率,将所述预设的数据存储位置关联信息确定为所述第一目标数据的数据存储位置关联信息。5.根据权利要求4所述的基于kafka的数据同步方法,其特征在于,所述基于所述目标电芯类型对应的电芯使用率和所述第一目标数据对应的电芯使用率之间的使用率差值,以及所述预设的数据存储位置关联信息,确定所述第一目标数据的数据存储位置关联信息,包括:基于所述使用率差值、第一预设系数和所述预设存储空间大小,确定所述第一目标数据对应的存储空间大小;基于所述使用率差值、第二预设系数和所述预设数据读写速度,确定所述第一目标数据对应的数据读写速度;基于所述使用率差值、第三预设系数和所述预设数据复制次数,确定所述第一目标数据对应的数据复制次数;其中,所述第一预设系数、所述第二预设系数和所述第三预设系数的和小于或者等于预设值。6.根据权利要求1所述的基于kafka的数据同步方法,其特征在于,所述数据存储位置关联信息包括:存储空间大小、数据读写速度和数据复制次数,所述通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端,包括:通过所述kafka基于所述存储空间大小确定所述第一目标数据对应的数据存储分区,并将所述第一目标数据存储到所述数据存储分区中;基于所述数据读写速度和所述数据复制次数,将所述第一目标数据从所述数据存储分区中同步给所述第二数据端。7.根据权利要求6所述的基于kafka的数据同步方法,其特征在于,所述数据存储分区包括日志文件,所述第二数据端包括:doris数据库,所述将所述第一目标数据从所述数据存储分区中同步给所述第二数据端,包括:基于所述数据读写数据和所述数据复制次数,从所述日志文件中读取所述第一目标数据;基于所述doris数据库的数据存储机制,将读取的第一目标数据同步给所述doris数据库。8.根据权利要求1所述的基于kafka的数据同步方法,其特征在于,所述基于kafka的数据同步方法还包括:基于所述第二数据端的数据同步需求,确定所述待同步数据中的第二目标数据;所述第二目标数据为所述待同步数据中除所述第一目标数据外的其他数据,且所述第二目标数据符合所述数据同步需求;基于所述第二目标数据对应的数据采集设备信息、所述第二目标数据对应的电芯信息和所述第二目标数据的数据量大小,确定所述第二目标数据的加密策略;基于所述加密策略,对所述第二目标数据进行加密处理;通过公共网络将所述加密处理的第二目标数据同步给所述第二数据端。9.根据权利要求8所述的基于kafka的数据同步方法,其特征在于,所述数据采集设备信息包括:数据采集周期和数据采集精度,所述电芯信息包括电芯类型和电芯使用率,所述
基于所述第二目标数据对应的数据采集设备信息、所述第二目标数据对应的电芯信息和所述第二目标数据的数据量大小,确定所述第二目标数据的加密策略,包括:基于所述数据采集周期和所述数据采集精度,确定所述第二目标数据的第一加密等级;基于所述电芯类型和所述电芯使用率,确定所述第二目标数据的第二加密等级;基于所述数据量大小,确定所述第二目标数据的加密复杂度;基于所述第一加密等级、所述第二加密等级和所述加密复杂度,确定所述第二目标数据的目标加密等级;基于所述目标加密等级和预设的加密等级与加密策略之间的对应关系,确定所述第二目标数据的加密策略。10.一种基于kafka的数据同步装置,其特征在于,包括:获取单元,用于获取第一数据端传输的待同步数据;所述待同步数据包括:电站采集的电芯数据;处理单元,用于:基于所述待同步数据对应的数据采集设备信息,确定所述待同步数据中的第一目标数据;其中,所述第一目标数据对应的数据采集设备信息符合预设条件,所述预设条件包括:数据采集周期条件和数据采集精度条件;基于所述第一目标数据对应的电芯信息,确定数据存储位置关联信息;所述数据存储位置关联信息用于表征所述第一目标数据的存储位置条件;通过kafka基于所述数据存储位置关联信息,将所述第一目标数据传输给第二数据端。
技术总结
本申请公开了一种基于kafka的数据同步方法及装置,涉及数据处理技术领域。数据同步方法包括:获取第一数据端传输的待同步数据;待同步数据包括:电站采集的电芯数据;基于待同步数据对应的数据采集设备信息,确定待同步数据中的第一目标数据;其中,第一目标数据对应的数据采集设备信息符合预设条件,预设条件包括:数据采集周期条件和数据采集精度条件;基于第一目标数据对应的电芯信息,确定数据存储位置关联信息;数据存储位置关联信息用于表征第一目标数据的存储位置条件;通过kafka基于数据存储位置关联信息,将第一目标数据传输给第二数据端。该数据同步方法及装置能够提高数据传输的安全性,以及提高数据的完整性。以及提高数据的完整性。以及提高数据的完整性。
技术研发人员:赵震 施捷 何传鑫 孙增福
受保护的技术使用者:上海融和元储能源有限公司
技术研发日:2023.09.12
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/