CN117171811A - 数据库同步和防篡改溯源的方法、装置和电子设备 - Google Patents
数据库同步和防篡改溯源的方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117171811A CN117171811A CN202311169789.9A CN202311169789A CN117171811A CN 117171811 A CN117171811 A CN 117171811A CN 202311169789 A CN202311169789 A CN 202311169789A CN 117171811 A CN117171811 A CN 117171811A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- flink
- synchronized
- immudb
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000001360 synchronised effect Effects 0.000 claims abstract description 69
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 17
- 230000007246 mechanism Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 238000004140 cleaning Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库同步和防篡改溯源的方法、装置和电子设备,属于计算机的技术领域,包括:采用Flink的JDBC Source实时读取待同步数据库中的数据;采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;采用Immudb提供的版本控制功能对目标数据进行溯源。本发明的方法是基于Flink和Immudb实现的数据库同步和防篡改溯源的过程,Flink负责待同步数据库中数据的采集、数据入库的工作,Immudb负责实现数据的溯源和防篡改,由Flink和Immudb的性能能力可知,该方法技术实施简单,难度低,开发工作量小,易于应用和实施,并且具有快速和稳定的性能,即在数据库同步和防篡改溯源的过程中,兼顾了简单、高效、可靠的特点。
Description
技术领域
本发明涉及计算机的技术领域,尤其是涉及一种数据库同步和防篡改溯源的方法、装置和电子设备。
背景技术
当今社会处于高速发展状态,科技不断进步,信息流通速度加快,人们之间的沟通也变得越来越紧密。这些变化使得生活更加便利,同时也促进了数据的产生和应用。数据在这个高科技时代中变得异常重要,因此数据采集、存储、搜索、共享、分析和可视化等方面已成为当前重要的研究课题。数据采集是一切数据应用的开始和前提,数据的防篡改则是确保数据可信的基石。
MySQL是一种开源的关系型数据库管理系统,它使用SQL语言进行数据管理。作为最受欢迎的数据库之一,MySQL被广泛应用于Web应用程序和企业级解决方案。为了分析原有数据或提高系统性能,通常需要将MySQL的数据实时同步到一些大数据存储中。在项目开发和实施中,客户和研发人员通常更加关注数据治理、挖掘和分析应用等方面,但在许多场景下,确保数据不被篡改以及对数据进行溯源是至关重要的。保证数据库数据的原始性,查找数据的历史变更记录并确保这些记录可信,是非常重要的。
Mysql数据的同步,有许多成熟的方案,例如主从复制、多主复制、Galera Cluster等。但是主从复制需要考虑数据一致性和主从延迟的问题,而且容易出现单点故障;多主复制需要更高的硬件和网络成本,而且需要解决冲突问题;Galera Cluster需要所有节点之间的高速网络连接,而且不支持跨数据中心部署。因此,在选择同步方案时,需要根据实际情况综合考虑各种因素,权衡利弊。
目前,大多数防篡改和数据溯源功能,都是采用区块链技术。区块链技术可以通过去中心化的方式,保证数据的安全性和不可篡改性。具体来说,数据会被分散存储在区块链网络的多个节点中,每个节点都有完整的数据备份,这样即便有一部分节点出现故障或被攻击,数据仍然可以被保护。但区块链技术成本高、效率低,且存储容量是有限的,当数据量达到一定程度时,会导致存储空间不足的问题,同时还涉及到隐私问题、交易速度慢的问题。
综上,如何简单、高效、可靠的进行数据库同步和防篡改溯源成为目前亟需解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种数据库同步和防篡改溯源的方法、装置和电子设备,以缓解现有技术无法简单、高效、可靠的进行数据库同步和防篡改溯源的技术问题。
第一方面,本发明实施例提供了一种数据库同步和防篡改溯源的方法,包括:
采用Flink的JDBC Source实时读取待同步数据库中的数据;
采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;
采用所述Immudb提供的版本控制功能对目标数据进行溯源。
进一步的,采用Flink的JDBC Source实时读取待同步数据库中的数据,包括:
在所述Flink的环境中添加所述待同步数据库的连接依赖,以建立与所述待同步数据库的连接;
创建JDBC Source,并配置所述JDBC Source的参数,其中,所述JDBC Source的参数包括:所述待同步数据库的连接信息、待读取的数据表名和读取数据的起始位置;
使用所述Flink提供的JDBCInputFormat实时读取所述待同步数据库中的与所述JDBC Source的参数对应的数据。
进一步的,采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储,包括:
在所述Immudb中创建与所述待同步数据库对应的数据表;
在所述Flink的环境中添加immudb4j依赖,以通过所述immudb4j依赖连接Immudb;
创建Immudb Sink,并配置所述Immudb Sink的参数,其中,所述Immudb Sink的参数包括:所述Immudb的服务器地址、端口号、用户名和密码;
根据所述Immudb Sink和所述immudb4j依赖将读取得到的流式数据写入所述Immudb中进行存储。
进一步的,在采用Flink的JDBC Source实时读取待同步数据库中的数据之后,所述方法还包括:
根据需求对读取得到的流式数据进行处理,得到处理后的流式数据,进而采用所述Flink的Sink将所述处理后的流式数据写入所述Immudb中进行存储。
进一步的,在采用Flink的JDBC Source实时读取待同步数据库中的数据和采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储的过程中,采用Flink的CheckPoint机制记录当前运行节点,并在程序发生故障时,采用Savepoint机制实现程序的恢复。
进一步的,所述待同步数据库包括以下任一种:Mysql数据库、Oracle数据库、SQLServer数据库和PostgreSQL数据库。
进一步的,当所述待同步数据库为Mysql数据库时,所述待同步数据库的连接依赖为:mysql-connector-java依赖。
第二方面,本发明实施例还提供了一种数据库同步和防篡改溯源的装置,包括:
读取单元,用于采用Flink的JDBC Source实时读取待同步数据库中的数据;
存储单元,用于采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;
溯源单元,用于采用所述Immudb提供的版本控制功能对目标数据进行溯源。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述第一方面任一项所述的方法。
在本发明实施例中,提供了一种数据库同步和防篡改溯源的方法,包括:采用Flink的JDBC Source实时读取待同步数据库中的数据;采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;采用Immudb提供的版本控制功能对目标数据进行溯源。通过上述描述可知,本发明的方法是基于Flink和Immudb实现的数据库同步和防篡改溯源的过程,Flink负责待同步数据库中数据的采集、数据入库的工作,Immudb负责实现数据的溯源和防篡改,由Flink和Immudb的性能能力可知,该方法技术实施简单,难度低,开发工作量小,易于应用和实施,并且具有快速和稳定的性能,即在数据库同步和防篡改溯源的过程中,兼顾了简单、高效、可靠的特点,缓解了现有技术无法简单、高效、可靠的进行数据库同步和防篡改溯源的技术问题。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据库同步和防篡改溯源的方法的流程图;
图2为本发明实施例提供的一种数据库同步和防篡改溯源的装置的示意图;
图3为本发明实施例提供的一种电子设备的示意图。
具体实施方式
下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术无法简单、高效、可靠的进行数据库同步和防篡改溯源。
基于此,本发明的方法是基于Flink和Immudb实现的数据库同步和防篡改溯源的过程,Flink负责待同步数据库中数据的采集、数据入库的工作,Immudb负责实现数据的溯源和防篡改,由Flink和Immudb的性能能力可知,该方法技术实施简单,难度低,开发工作量小,易于应用和实施,并且具有快速和稳定的性能,即在数据库同步和防篡改溯源的过程中,兼顾了简单、高效、可靠的特点。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据库同步和防篡改溯源的方法进行详细介绍。
实施例一:
根据本发明实施例,提供了一种数据库同步和防篡改溯源的方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种数据库同步和防篡改溯源的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,采用Flink的JDBC Source实时读取待同步数据库中的数据;
具体的,可以根据实际业务需求形成多种多样的多级数据采集流程,例如,多级数据采集包括:Mysql数据库、Oracle数据库和SQL Server数据库的多级数据采集,此时,待同步数据库包括:Mysql数据库、Oracle数据库和SQL Server数据库。
为了实时读取待同步数据库中的数据并将其转化为流式数据,可以利用Flink的JDBC Source来实现。
Apache Flink 是一个开源的流式的数据抽取工具,即开源的流处理框架,可以在分布式环境中对无界和有界数据流进行高效、可伸缩、可靠的处理。
上述“在使用 Flink 抽取数据时,可以根据实际业务需求形成多种多样的多级数据采集流程”是指Flink 提供了足够的灵活性和强大的功能,使得开发人员可以根据自己的需求来定制数据抽取和处理的流程。
具体的,其中的多种多样为:Flink 提供了丰富的操作和转换,如 map、filter、reduce、join、window、aggregate 等,可以使用它们来处理和转换数据流。此外,还可以集成各种源(如 Kafka、HDFS、RDBMS 等)和接收器(如 Elasticsearch、HDFS、RDBMS 等),以便从多种数据源获取数据,并将处理结果输出到多种地方。
其中的多级为:可以创建复杂的数据处理流程,这些流程可能包括多个阶段。例如,可能先从一个或多个数据源获取数据,然后进行一些预处理(如过滤和清理),再进行一些业务逻辑处理(如数据聚合和统计),最后将结果输出到一个或多个数据接收器。这就形成了一个多级的数据处理流程。
其中的多根据实际业务需求为:Flink 的灵活性和强大功能使得开发人员可以根据自己的业务需求来定制数据处理流程。例如,可以根据需求来选择合适的数据源和数据接收器,选择合适的操作和转换,以及设定合适的窗口和时间特性等。
因此,Flink使得本发明可以根据实际业务需求来创建多种多样的多级数据采集和处理流程。
步骤S104,采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;
具体的,Immudb是一种高度安全的键值存储引擎,提供防篡改能力和数据溯源能力。它利用Merkle树来确保数据的一致性和不可篡改性。每个节点都包含一个哈希值,该哈希值由该节点下面的所有数据块的哈希值计算得出。这样,如果有任何数据块被篡改,该节点的哈希值就会改变,从而导致整个Merkle树的哈希值发生变化。数据一旦写入就不能再修改或删除。如果需要修改数据,必须先创建一个新的版本,这样可以确保数据的完整性和不可篡改性。同时使用数字签名来确保数据的不可篡改性,每个数据块都被签名,并且每个签名都是唯一的,如果数据块被篡改,签名就会变化,从而导致验证失败。
所以,为了实现数据的防篡改,需要将流式数据写入到Immudb中进行存储。为此,可以利用Flink的Sink来实现。
步骤S106,采用Immudb提供的版本控制功能对目标数据进行溯源。
具体的,需要实现目标数据的溯源,以便于追踪目标数据的变化历史。可以利用Immudb提供的版本控制功能。在上一步中,已经实现了数据的同步,数据已经插入到Immudb中。可以使用Immudb提供的版本控制功能,实现数据的溯源,且Immudb本身的机制,能够保证数据是不可篡改的。
数据的溯源代码如下所示:
// 查询历史版本
List<Row>rows = immuClient.sqlQuery("SELECTFROM mytable WHERE key='mykey'");
for (Row row : rows) {
System.out.println(row.getString("value") + " (version " + row.getInt("version") + ")");
}
在本发明实施例中,提供了一种数据库同步和防篡改溯源的方法,包括:采用Flink的JDBC Source实时读取待同步数据库中的数据;采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;采用Immudb提供的版本控制功能对目标数据进行溯源。通过上述描述可知,本发明的方法是基于Flink和Immudb实现的数据库同步和防篡改溯源的过程,Flink负责待同步数据库中数据的采集、数据入库的工作,Immudb负责实现数据的溯源和防篡改,由Flink和Immudb的性能能力可知,该方法技术实施简单,难度低,开发工作量小,易于应用和实施,并且具有快速和稳定的性能,即在数据库同步和防篡改溯源的过程中,兼顾了简单、高效、可靠的特点,缓解了现有技术无法简单、高效、可靠的进行数据库同步和防篡改溯源的技术问题。
上述内容对本发明的数据库同步和防篡改溯源的方法进行了简要介绍,下面对其中涉及到的具体内容进行详细描述。
在本发明的一个可选实施例中,上述步骤S102,采用Flink的JDBC Source实时读取待同步数据库中的数据,具体包括如下步骤:
(1)在Flink的环境中添加待同步数据库的连接依赖,以建立与待同步数据库的连接;
(2)创建JDBC Source,并配置JDBC Source的参数,其中,JDBC Source的参数包括:待同步数据库的连接信息、待读取的数据表名和读取数据的起始位置;
(3)使用Flink提供的JDBCInputFormat实时读取待同步数据库中的与JDBCSource的参数对应的数据。
具体的,需要先在Flink的环境中添加待同步数据库的连接依赖,并创建JDBCSource来使用Flink提供的JDBCInputFormat实时读取待同步数据库中的数据。然后,需要对JDBC Source进行参数配置,包括待同步数据库的连接信息、数据表名以及读取数据的起始位置等。这些参数的正确配置将有助于确保数据的准确性和完整性。最后,使用Flink提供的JDBCInputFormat实时读取待同步数据库中的与JDBC Source的参数对应的数据,并将其发送到下游(在本发明中,即Immudb)进行进一步处理,以满足开发人员的需求。这种基于Flink和JDBC Source的实时数据读取方法具有可扩展性(具体根据需求指对读取得到的流式数据进行处理转换等)和高效性,并且适用于各种规模的数据处理任务。
在本发明的一个可选实施例中,上述步骤S104,采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储,具体包括如下步骤:
(1)在Immudb中创建与待同步数据库中待同步的数据表对应的数据表;
(2)在Flink的环境中添加immudb4j依赖,以通过immudb4j依赖连接Immudb;
(3)创建Immudb Sink,并配置Immudb Sink的参数,其中,Immudb Sink的参数包括:Immudb的服务器地址、端口号、用户名和密码;
(4)根据Immudb Sink和immudb4j依赖将读取得到的流式数据写入Immudb中进行存储。
具体的,先在Immudb数据库中创建与待同步数据库中待同步的数据表对应的数据表,然后在Flink的环境中添加immudb4j依赖,并创建Immudb Sink来使用Immudb提供的immudb4j实现将数据写入Immudb中进行存储。这个过程需要配置Immudb Sink的参数,包括Immudb服务器地址、端口号、用户名、密码等。这些参数的正确配置将有助于确保数据的安全性和完整性。最后,Immudb Sink接受到数据流,然后根据immudb4j依赖将流式数据写入immudb进行存储,数据写入immudb的过程详见如下所示的代码:
// 创建Immudb Sink
public class ImmudbSink extends RichSinkFunction<String>{
// 构造函数,初始化Immudb连接参数
public ImmudbSink(String serverAddress, int port, String username,String password) {
this.serverAddress = serverAddress;
this.port = port;
this.username = username;
this.password = password;
}
// 初始化方法,创建Immudb客户端和用户对象
@Override
public void open(Configuration parameters) throws Exception {
super.open(parameters);
immudbClient.login(user);
}
// 写入方法,将流式数据写入到Immudb中进行存储
@Override
public void invoke(String value, Context context) throws Exception {
try {
immudbClient.safeSet(value.getBytes(), value.getBytes(), user);
} catch (ImmudbException e) {
throw new RuntimeException("Error writing data to Immudb: " +e.getMessage(), e);
}
}
// 清理方法,关闭Immudb客户端连接
@Override
public void close() throws Exception {
super.close();
immudbClient.logout(user);
immudbClient.shutdown();
}
}
DataStream<String>stream = ...; // 从其他地方获取流式数据
ImmudbSink immudbSink = new ImmudbSink("immudb-server", 3322, "username", "password");
stream.addSink(immudbSink); // 将数据流发送到ImmudbSink中进行存储。
在本发明的一个可选实施例中,在采用Flink的JDBC Source实时读取待同步数据库中的数据之后,该方法还包括:
根据需求对读取得到的流式数据进行处理,得到处理后的流式数据,进而采用Flink的Sink将处理后的流式数据写入Immudb中进行存储。
上述处理可以为前述内容中提到的预处理(如过滤和清理)和业务逻辑处理(如数据聚合和统计)等,这里不进行具体限制。
在本发明的一个可选实施例中,在采用Flink的JDBC Source实时读取待同步数据库中的数据和采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储的过程中,采用Flink的CheckPoint机制记录当前运行节点,并在程序发生故障时,采用Savepoint机制实现程序的恢复。
具体的,为了确保程序的高可靠性,可以使用Flink的CheckPoint机制。具体来说,CheckPoint是Flink中实现容错性的机制,它可以定期将程序的当前运行节点保存到可靠的存储介质(如硬盘)中,以便在程序发生故障时能够根据最近的CheckPoint恢复,具体可以使用Flink的Savepoint机制实现程序的快速恢复。
在本发明的一个可选实施例中,待同步数据库包括以下任一种:Mysql数据库、Oracle数据库、SQL Server数据库和PostgreSQL数据库。
具体的,对于任何一个待同步数据库,都可以按照上述S102至步骤S106的过程进行流程设计。
在本发明的一个可选实施例中,当待同步数据库为Mysql数据库时,待同步数据库的连接依赖为:mysql-connector-java依赖。
本发明的方法可以无侵入地将Mysql的数据同步到Immudb中,具有广泛的适用场景(根据需求对读取得到的流式数据进行处理),该方法突破了传统数据库同步和数据溯源方法的局限性(传统的数据溯源通常依赖于区块链,它的性能会受到较大的局限,无法处理高并发或者是大规模吞吐量的场景),其完整流程设计涉及了参数配置、数据采集、传输、存储以及数据溯源应用的完整流程设计,确保了数据的完整性和可追溯性。该方法易于实现,开发成本低,无需专业知识,软件开发人员可以快速地将MySql中的业务数据进行溯源。此外,该方法具有灵活、多样的特点,可以根据不同的业务需求进行定制化,满足不同场景的需求(根据需求对读取得到的流式数据进行处理以及不同的待同步数据库)。此外,本发明采用Flink和Immudb作为技术基础,具有高度可扩展性,可以随着业务需求的变化进行灵活的扩展。综上,本发明提供的基于Flink和Immudb的数据库同步和防篡改溯源方法,是一种具有重要实际应用价值的技术方案,具有完整的流程设计、易于实现、灵活多样、高可扩展和广泛适用的优点。
实施例二:
本发明实施例还提供了一种数据库同步和防篡改溯源的装置,该数据库同步和防篡改溯源的装置主要用于执行本发明实施例一中所提供的数据库同步和防篡改溯源的方法,以下对本发明实施例提供的数据库同步和防篡改溯源的装置做具体介绍。
图2是根据本发明实施例的一种数据库同步和防篡改溯源的装置的示意图,如图2所示,该装置主要包括:读取单元10、存储单元20和溯源单元30,其中:
读取单元,用于采用Flink的JDBC Source实时读取待同步数据库中的数据;
存储单元,用于采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;
溯源单元,用于采用Immudb提供的版本控制功能对目标数据进行溯源。
在本发明实施例中,提供了一种数据库同步和防篡改溯源的装置,包括:采用Flink的JDBC Source实时读取待同步数据库中的数据;采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;采用Immudb提供的版本控制功能对目标数据进行溯源。通过上述描述可知,本发明的装置是基于Flink和Immudb实现的数据库同步和防篡改溯源的过程,Flink负责待同步数据库中数据的采集、数据入库的工作,Immudb负责实现数据的溯源和防篡改,由Flink和Immudb的性能能力可知,该方法技术实施简单,难度低,开发工作量小,易于应用和实施,并且具有快速和稳定的性能,即在数据库同步和防篡改溯源的过程中,兼顾了简单、高效、可靠的特点,缓解了现有技术无法简单、高效、可靠的进行数据库同步和防篡改溯源的技术问题。
可选地,读取单元还用于:在Flink的环境中添加待同步数据库的连接依赖,以建立与待同步数据库的连接;创建JDBC Source,并配置JDBC Source的参数,其中,JDBCSource的参数包括:待同步数据库的连接信息、待读取的数据表名和读取数据的起始位置;使用Flink提供的JDBCInputFormat实时读取待同步数据库中的与JDBC Source的参数对应的数据。
可选地,存储单元还用于:在Immudb中创建与待同步数据库对应的数据表;在Flink的环境中添加immudb4j依赖,以通过immudb4j依赖连接Immudb;创建Immudb Sink,并配置Immudb Sink的参数,其中,Immudb Sink的参数包括:Immudb的服务器地址、端口号、用户名和密码;根据Immudb Sink和immudb4j依赖将读取得到的流式数据写入Immudb中进行存储。
可选地,该装置还用于:根据需求对读取得到的流式数据进行处理,得到处理后的流式数据,进而采用Flink的Sink将处理后的流式数据写入Immudb中进行存储。
可选地,在采用Flink的JDBC Source实时读取待同步数据库中的数据和采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储的过程中,采用Flink的CheckPoint机制记录当前运行节点,并在程序发生故障时,采用Savepoint机制实现程序的恢复。
可选地,待同步数据库包括以下任一种:Mysql数据库、Oracle数据库、SQL Server数据库和PostgreSQL数据库。
可选地,当待同步数据库为Mysql数据库时,待同步数据库的连接依赖为:mysql-connector-java依赖。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图3所示,本申请实施例提供的一种电子设备600,包括:处理器601、存储器602和总线,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线通信,所述处理器601执行所述机器可读指令,以执行如上述数据库同步和防篡改溯源的方法的步骤。
具体地,上述存储器602和处理器601能够为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述数据库同步和防篡改溯源的方法。
处理器601可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器601可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成上述方法的步骤。
对应于上述数据库同步和防篡改溯源的方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述数据库同步和防篡改溯源的方法的步骤。
本申请实施例所提供的数据库同步和防篡改溯源的装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本申请实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
再例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述车辆标记方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据库同步和防篡改溯源的方法,其特征在于,包括:
采用Flink的JDBC Source实时读取待同步数据库中的数据;
采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;
采用所述Immudb提供的版本控制功能对目标数据进行溯源。
2. 根据权利要求1所述的方法,其特征在于,采用Flink的JDBC Source实时读取待同步数据库中的数据,包括:
在所述Flink的环境中添加所述待同步数据库的连接依赖,以建立与所述待同步数据库的连接;
创建JDBC Source,并配置所述JDBC Source的参数,其中,所述JDBC Source的参数包括:所述待同步数据库的连接信息、待读取的数据表名和读取数据的起始位置;
使用所述Flink提供的JDBCInputFormat实时读取所述待同步数据库中的与所述JDBCSource的参数对应的数据。
3.根据权利要求1所述的方法,其特征在于,采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储,包括:
在所述Immudb中创建与所述待同步数据库对应的数据表;
在所述Flink的环境中添加immudb4j依赖,以通过所述immudb4j依赖连接Immudb;
创建Immudb Sink,并配置所述Immudb Sink的参数,其中,所述Immudb Sink的参数包括:所述Immudb的服务器地址、端口号、用户名和密码;
根据所述Immudb Sink和所述immudb4j依赖将读取得到的流式数据写入所述Immudb中进行存储。
4. 根据权利要求1所述的方法,其特征在于,在采用Flink的JDBC Source实时读取待同步数据库中的数据之后,所述方法还包括:
根据需求对读取得到的流式数据进行处理,得到处理后的流式数据,进而采用所述Flink的Sink将所述处理后的流式数据写入所述Immudb中进行存储。
5. 根据权利要求1所述的方法,其特征在于,在采用Flink的JDBC Source实时读取待同步数据库中的数据和采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储的过程中,采用Flink的CheckPoint机制记录当前运行节点,并在程序发生故障时,采用Savepoint机制实现程序的恢复。
6. 根据权利要求1所述的方法,其特征在于,所述待同步数据库包括以下任一种:Mysql数据库、Oracle数据库、SQL Server数据库和PostgreSQL数据库。
7.根据权利要求2所述的方法,其特征在于,当所述待同步数据库为Mysql数据库时,所述待同步数据库的连接依赖为:mysql-connector-java依赖。
8.一种数据库同步和防篡改溯源的装置,其特征在于,包括:
读取单元,用于采用Flink的JDBC Source实时读取待同步数据库中的数据;
存储单元,用于采用Flink的Sink将读取得到的流式数据写入Immudb中进行存储;
溯源单元,用于采用所述Immudb提供的版本控制功能对目标数据进行溯源。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有机器可运行指令,所述机器可运行指令在被处理器调用和运行时,所述机器可运行指令促使所述处理器运行上述权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311169789.9A CN117171811B (zh) | 2023-09-12 | 2023-09-12 | 数据库同步和防篡改溯源的方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311169789.9A CN117171811B (zh) | 2023-09-12 | 2023-09-12 | 数据库同步和防篡改溯源的方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117171811A true CN117171811A (zh) | 2023-12-05 |
CN117171811B CN117171811B (zh) | 2024-04-05 |
Family
ID=88935204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311169789.9A Active CN117171811B (zh) | 2023-09-12 | 2023-09-12 | 数据库同步和防篡改溯源的方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117171811B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651510A (zh) * | 2020-05-14 | 2020-09-11 | 拉扎斯网络科技(上海)有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN113010608A (zh) * | 2021-04-07 | 2021-06-22 | 亿企赢网络科技有限公司 | 数据实时同步方法、装置及计算机可读存储介质 |
CN116186053A (zh) * | 2022-12-30 | 2023-05-30 | 中国联合网络通信集团有限公司 | 一种数据处理方法、装置及存储介质 |
CN116414891A (zh) * | 2021-12-29 | 2023-07-11 | 浙江省公众信息产业有限公司 | 数据血缘溯源方法和系统 |
-
2023
- 2023-09-12 CN CN202311169789.9A patent/CN117171811B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111651510A (zh) * | 2020-05-14 | 2020-09-11 | 拉扎斯网络科技(上海)有限公司 | 数据处理方法、装置、电子设备和计算机可读存储介质 |
CN113010608A (zh) * | 2021-04-07 | 2021-06-22 | 亿企赢网络科技有限公司 | 数据实时同步方法、装置及计算机可读存储介质 |
CN116414891A (zh) * | 2021-12-29 | 2023-07-11 | 浙江省公众信息产业有限公司 | 数据血缘溯源方法和系统 |
CN116186053A (zh) * | 2022-12-30 | 2023-05-30 | 中国联合网络通信集团有限公司 | 一种数据处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117171811B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6097880B2 (ja) | ビザンチン故障耐性データ複製を行う方法およびシステム | |
US20160147622A1 (en) | Enhanced error detection in data synchronization operations | |
CN112231402A (zh) | 一种异构数据实时同步方法、装置、设备和存储介质 | |
CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
CN111444027B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN111400170B (zh) | 一种数据权限测试方法及装置 | |
CN112087530B (zh) | 一种将数据上传至区块链系统的方法、装置、设备及介质 | |
Sánchez et al. | Distributed data collection for the ATLAS EventIndex | |
US11243777B2 (en) | Process stream replication for content management system synchronization | |
JP2021528884A (ja) | 誤り訂正符号に基づく動的なブロックチェーンデータの記憶 | |
US20160275134A1 (en) | Nosql database data validation | |
Razzoli | Mastering MariaDB | |
US20220413971A1 (en) | System and Method for Blockchain Based Backup and Recovery | |
CN117171811B (zh) | 数据库同步和防篡改溯源的方法、装置和电子设备 | |
CN112035471B (zh) | 一种事务处理方法及计算机设备 | |
CN111767168B (zh) | 基于区块链的便于数据回溯的存储系统 | |
CN111460436B (zh) | 一种基于区块链的非结构化数据操作方法和系统 | |
CN114625751A (zh) | 基于区块链的数据溯源查询方法及装置 | |
US20210374036A1 (en) | Application-specific log routing | |
CN111026764B (zh) | 一种数据存储方法、装置、电子产品及存储介质 | |
CN115114258A (zh) | 数据复制方法、装置、电子设备及计算机存储介质 | |
CN110928839A (zh) | 国际运价数据的存储方法和系统 | |
US20230376467A1 (en) | Identity resolution system | |
CN113127549B (zh) | 增量数据的同步方法、装置、计算机设备和存储介质 | |
CN114416886A (zh) | 一种确定数据关系的方法、装置、设备及存储介质 |
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 |