CN110334075B - 基于消息中间件的数据迁移方法及相关设备 - Google Patents
基于消息中间件的数据迁移方法及相关设备 Download PDFInfo
- Publication number
- CN110334075B CN110334075B CN201910268533.0A CN201910268533A CN110334075B CN 110334075 B CN110334075 B CN 110334075B CN 201910268533 A CN201910268533 A CN 201910268533A CN 110334075 B CN110334075 B CN 110334075B
- Authority
- CN
- China
- Prior art keywords
- data
- message middleware
- migrated
- database
- middleware
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,尤其涉及一种基于消息中间件的数据迁移方法及相关设备,所述方法包括:从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件;将待迁移数据进行流式计算处理后传输至次级消息中间件;根据次级消息中间件的下一级连接判断是否存在数据异步落地要求;当存在时将待迁移数据传输至与次级消息中间件连接的中间数据库,再通过ETL方式使数据落库至目标数据库;当不存在时将待迁移数据进行流式计算处理后传输至后续级联的消息中间件后,使待迁移数据落库至目标数据库。本发明通过构建中间件作为数据迁移的中间桥梁,实现数据从源数据库落库至目标数据库,具有实时性高、低延时、传输率高的优点。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于消息中间件的数据迁移方法及相关设备。
背景技术
数据迁移是数据存储技术的一种典型方式,它用于将存储于一套存储系统上的数据转移到另一套存储系统中。比如,基于数据存储设备硬件的更替要求,将数据从旧设备所在的源数据库中迁移至新设备所在的目标数据库中。一般使用中,也常用于将使用频率较低甚至不会被使用到的数据从源数据库转存至目标数据库,比如,将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上,当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一级磁盘上。
数据迁移一般分三个阶段实现:迁移前的准备、迁移的实施和迁移后的校验。由于数据迁移的特点,大量的工作都需要在准备阶段完成,充分而周到的准备工作是完成数据迁移的主要基础。具体而言,要进行待迁移数据源的详细说明(包括数据的存储方式、数据量、数据的时间跨度等);建立新旧系统数据库的数据字典;对旧系统的历史数据进行质量分析,新旧系统数据结构的差异分析;新旧系统代码数据的差异分析;建立新老系统数据库表的映射关系,对无法映射字段的处理方法;开发、部属ETL工具,编写数据转换的测试计划和校验程序;制定数据转换的应急措施等工作。为实现这些数据迁移过程,传统的做法一般是从源数据库通过ETL工具将数据迁移到另一个数据库,或者先将数据迁移至一个中间数据库,再经由中间数据库将数据落库到目标数据库,依次依照此方法,最终通过多次ETL操作使数据迁移到目标数据库中。
但是,上述传统做法存在如下技术问题:
1)、延时问题造成的时间消耗成本上升,也无法确保数据的时效性,当源数据库的数据在迁移时发生了变化,则该变化可能无法对应到目标数据库;
2)、无法实现数据的高速落地,即数据迁移的速度较慢。
发明内容
本发明提供了一种基于消息中间件的数据迁移方法及相关设备,采用流式计算的方式对待迁移数据进行处理后使其经由消息中间件集群进行逐级传输,实现数据从源数据库高速精准落地至目标数据库,并且能够兼容原有的落库前的数据库连接结构布局,实现数据的异步落地,具有较好的兼容性,当数据在消息中间件中迁移时采用流式计算处理降低数据传输过程中的延时问题和传输速度。
本发明实施例的第一方面提供一种基于消息中间件的数据迁移方法,包括:从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件;
将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件;
根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库,所述中间存储单元的类型包括消息中间件和中间数据库。
在其中一些可能的实施例中,所述从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件,包括:
获取所述源数据库的访问权限和预设的数据迁移任务清单,所述数据迁移任务清单中记录所述待迁移数据;
基于所述第一级消息中间件生成用于连接所述源数据库的源端数据连接器,根据所述源数据库的访问权限建立所述源端数据连接器与所述源数据库的连接;
根据所述数据迁移任务清单,通过所述源端数据连接器从所述源数据库抽取所述待迁移数据;
将所述待迁移数据写入所述第一级消息中间件。
在其中一些可能的实施例中,所述将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件,包括:
建立所述第一级消息中间件与预设的流式处理引擎的连接;
从所述第一级消息中间件中提取所述待迁移数据,通过所述流式处理引擎对所述待迁移数据进行处理;
建立所述流式处理引擎和所述次级消息中间件之间的连接,将经过流式计算处理后的所述待迁移数据写入所述次级消息中间件。
在其中一些可能的实施例中,所述根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,包括:
读取所述次级消息中间件的连接配置信息,所述连接配置信息用于定义所述次级消息中间件与和其连接的下一级中间存储单元之间的连接配置,包括所述下一级中间存储单元的数据驱动配置命令、访问地址、数据端口、用户名和密码;
遍历所述连接配置信息的定义文本,当存在数据驱动配置命令时,确定所述次级消息中间件连接的下一级中间存储单元的类型为中间数据库,标记所述次级消息中间件存在数据异步落地要求,当不存在数据驱动配置命令时,则确定所述次级消息中间件连接的下一级中间存储单元的类型为消息中间件,标记所述次级消息中间件不存在数据异步落地要求。
在其中一些可能的实施例中,所述当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,包括通过ETL方式将所述待迁移数据经由所述中间数据库落库于所述目标数据库,具体包括:
当存在后续级联的中间数据库时,通过ETL方式将所述待迁移数据传输给所述后续级联的中间数据库,直至通过最后一级所述中间数据库将所述待迁移数据落库于所述目标数据库;
当不存在后续级联的中间数据库时,直接通过ETL方式将所述待迁移数据经由所述中间数据库落库至所述目标数据库。
在其中一些可能的实施例中,所述当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库,包括:
当存在后续级联的消息中间件时,将所述待迁移数据进行流式计算处理后向后续级联的消息中间件逐级传递,直至通过最后一级所述消息中间件将所述待迁移数据落库于所述目标数据库;
当不存在后续级联的消息中间件时,在当前的所述消息中间件和所述目标数据库之间建立目的地端数据连接器,通过所述目的地端数据连接器将所述待迁移数据落库至所述目标数据库。
在其中一些可能的实施例中,所述根据所述数据迁移任务清单,通过所述源端数据连接器从所述源数据库抽取所述待迁移数据之后,包括:
对所述数据迁移任务清单中的每一项数据迁移任务所对应的待迁移的数据X,通过密码散列函数计算后得到与所述数据X对应的校验码A;
将所述校验码A和所述数据X通过所述源端数据连接器写入所述第一级消息中间件,使所述校验码A随所述数据X落库至所述目标数据库;
所述将所述待迁移数据落库至所述目标数据库之后,包括:
根据所述密码散列函数计算落库后的所述数据X的校验码B,将所述校验码B与所述校验码A进行比较,若一致,则标记此次数据迁移任务执行成功,否则标记为执行失败后记录至失败列表;
当完成所述数据迁移任务清单中的所有数据迁移任务后,根据所述失败列表进行失败任务的再执行,在预设的重试阈值范围内重复执行所述失败列表中记录的数据迁移任务,每次重试执行后刷新所述失败列表;
将执行完所述重试阈值后获得的失败列表发送至数据运维方。
本发明实施例的第二方面提供了一种基于消息中间件的数据迁移装置,包括:数据抽取模块、数据传输模块和数据落库模块,其中,
数据抽取模块,设置为从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件;
数据传输模块,设置为将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件;
数据落库模块,设置为根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库。
本发明实施例的第三方面提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现上述任意实施例所述的基于消息中间件的数据迁移方法。
本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,实现上述任意实施例所述的基于消息中间件的数据迁移方法。
有益效果:本发明通过构建消息中间件作为数据迁移的中间桥梁,实现数据从源数据库落库至目标数据库,具有如下优点:
1)实时性和低延时性:数据在消息中间件中传输时,通过流式计算方式确保数据迁移的实时性和低延时性;
2)高传输率:通过流式计算方式和消息中间件集群确保数据传输的连续性,从而实现数据的高速传输。
3)兼容性:在具有兼容性要求的场合下,需要不破坏目标数据库与和其连接的中间数据库的连接,本发明通过消息中间件与中间数据库的连接组成的数据迁移通道,在兼容原有的目标数据库落库结构的情况下实现数据的迁移和落库。
附图说明
图1为本发明实施例的基于消息中间件的数据迁移方法的主流程图;
图2为本发明实施例的基于消息中间件的数据迁移方法中的获取待迁移数据过程的流程图;
图3为本发明实施例的基于消息中间件的数据迁移方法中的待迁移数据的传输过程的流程图;
图4为本发明实施例的基于消息中间件的数据迁移方法中对数据异步落地要求进行判断的流程图;
图5为本发明实施例的基于消息中间件的数据迁移装置的功能框图。
具体实施方式
本发明实施例提供了一种基于消息中间件的数据迁移方法及相关设备,用于使数据从源数据库高速且实时落库至目标数据库。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例进行描述。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例提供的基于消息中间件的数据迁移方法的主流程图,如图所示,一种基于消息中间件的数据迁移方法,包括S1步骤~S3步骤:
S1、从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件。
具体的,通过获取源数据库的访问地址和相关权限后连接到源数据库,然后根据在此步骤前预先获取到的数据迁移任务相关的任务清单,从源数据库中提取对应每项迁移任务的待迁移数据,然后将这些数据传输给消息中间件集群的第一级消息中间件中。其中,所述消息中间件集群由逐级连接的多个消息中间件组成,包括了级联的至少两个消息中间件。其中,消息中间件是一类利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统集成的功能组件,它通过提供消息传递和消息排队这两种数据传输模型,可以在分布式环境下提供程序应用包括解耦、弹性伸缩、冗余存储、流量削峰、异步通信、数据同步等在内的多种功能。本申请的消息中间件技术可采用目前使用较多的消息中间件技术,比如ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。
S2、将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件。
具体的,消息中间件集群中的数据传递基于流式计算引擎的工作基础上,在每个次级消息中间件接收前一级消息中间件传送来的数据时,应当对这些数据进行流式计算处理。流式计算是一种特殊的增量计算方式,其利用分布式的思想和方法,对大数据量的数据流进行实时处理。这类计算方式源自传统业务对海量数据在时效价值上的挖掘诉求,即该方式需要确保数据处理的时效性,应对传统数据传输方式在连续不断的数据流传递中,发生数据落库时,其源端已经发生了变化的情况。现有主流的流式处理系统包括SparkStreaming、Apache Storm和Kafka Stream。其中,Apache Storm发展多年,应用广泛,提供记录级别的处理能力。Spark Streaming基于Apache Spark,可以非常方便与图计算、SQL处理等功能实现集成,且对于熟悉其它Spark应用开发的使用者而言,其使用门槛较低。KafkaStream提供的是一个基于Kafka的流式处理类库,直接给开发者提供具体的类来调用,整个应用的运行方式主要由开发者控制,方便使用和调试。另外,目前主流的分布式系统架构,比如Hadoop发行版等,大多集成了Apache Storm或者Apache Spark,使得流式计算引擎在分布式结构中的部署更容易,比如,在多个数据库之间进行数据迁移的工作,其本质上即建立在分布式系统结构基础之上,因此,在本申请中更容易通过部署流式处理引擎实现对待迁移数据进行流式处理,确保时效性。
S3、根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库。其中,所述中间存储单元的类型包括消息中间件和中间数据库。
具体的,任一次级的消息中间件向后可连接包括更次一级的消息中间件,或者,也可以连接中间数据库后实现兼容旧有数据迁移策略的效果。在某些使用场景中,出于安全性、部署难度、成本等方面的综合考虑,目标数据库无法直接向前连接消息中间件,而需要通过前置至少一级中间数据库才能与次级消息中间件连接。即,相当于保留了其原有的数据库之间迁移数据的传统迁移策略。为了兼容这类传统迁移策略,本申请针对这类需求,通过将任一级的次级消息中间件与允许连接的任一中间数据库进行连接后,实现兼容原有的数据迁移策略的效果。即相当于将中间数据库作为落库的第一目的地,也可以视为将中间数据库作为一类消息中间件使用。在中间数据库之间传输数据并落库至目标数据库的过程中,传统迁移策略可选用ETL工具实现数据的接收和向后传输。需要说明的是,在本申请中,所述中间数据库定义为位于源数据库和目标数据库之间的数据库,起到数据迁移过程中的数据临时存储的作用。传统的数据迁移策略中,一般在各个中间数据库之间需要通过相互之间的连接配置进行连接访问,连接配置信息记录在每一个中间数据库的连接配置文件中,定义了每一个中间数据库的数据驱动、访问地址、数据端口、用户名和密码等信息。
本实施例,通过在源数据库和目标数据库之间架设由消息中间件搭建的数据通道,使数据实现高速迁移和精准落库;在数据迁移过程中,消息中间件可实现与传统数据迁移策略对应的由中间数据库搭建的数据迁移通道结构的无缝连接,使具有保留部分传统数据迁移通道结构的需求得以满足。
图2为本发明实施例提供的基于消息中间件的数据迁移方法中的获取待迁移数据过程的流程图,如图所示,所述S1、从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件,包括S101步骤~S104步骤:
S101、获取所述源数据库的访问权限和预设的数据迁移任务清单,所述数据迁移任务清单中记录所述待迁移数据。
具体的,访问数据库需要预先获取该数据库的地址、用户名、密码等连接信息。通过源数据库的访问地址和用户名、密码等基本访问权限信息后生成配置文件,这些配置文件可被配置生成所述源数据库的连接池,以便供后续的应用或者服务持续调用来实现数据库的访问。
另外,为了使实施例可持续稳定地被执行,任一项数据迁移工作均需生成迁移任务后形成任务清单,该清单中记录了所有的数据迁移任务,任一项数据迁移任务中又记录了源数据库中的表结构、待迁移数据的定位信息等与数据迁移相关的信息。通过表结构和数据定位信息可迅速定位待迁移数据。
S102、基于所述第一级消息中间件生成用于连接所述源数据库的源端数据连接器,根据所述源数据库的访问权限建立所述源端数据连接器与所述源数据库的连接。
具体的,利用第一级消息中间件自身的特点生成连接源数据库的数据连接器,将已经获得的源数据库的访问信息配置到所述数据连接器后实现消息中间件和源数据库之间的数据连接,从而构建两者之间的数据交互通道。
所述数据连接器是指设置于数据库和消息中间件之间的数据流连接组件,用于创建和管理从数据库至消息中间件的数据流管道,一般根据消息中间件的特性生成,其类型由消息中间件所连接的数据库的类型决定。比如,采用消息中间件技术RabbitMQ生成的RabbitMQ组件,其数据连接器的类型根据数据库的不同,包括:HDFS、JDBC、Debezium-CDCSources、MongoDB Source、MQTT Source、MySQL Binlog Source、Twitter Source等。例如,消息中间件采用RabbitMQ构建,对应的数据连接器按RabbitMQ的特性有如下表现形式:
ConnectionFactory factory=new ConnectionFactory();
factory.UserName="admin";//用户名
factory.Password="admin";//密码
factory.HostName="192.168.17.205";//主机名
factory.VirtualHost="";//虚拟主机(这个暂时不需要,稍后的文章里会介绍虚拟主机的概念)
factory.Port=15672;//端口
IConnection conn=factory.CreateConnection();//创建连接
其中,ConnectionFactory factory=new ConnectionFactory()表示通过RabbitMQ的特性定义了一个数据连接器;
其中,factory.UserName="admin"表示配置了连接源数据库的用户名;
其中,factory.Password="admin"表示配置了连接源数据库的密码;
其中,factory.HostName="192.168.17.205"表示配置了源数据库的连接地址;
其中,factory.Port=15672表示配置了连接源数据库后构成数据通道的数据端口;
其中,IConnection conn=factory.CreateConnection()表示数据连接器被创建。
S103、根据所述数据迁移任务清单,通过所述源端数据连接器从所述源数据库抽取所述待迁移数据;
S104、将所述待迁移数据写入所述第一级消息中间件。
具体的,根据数据迁移任务清单上的迁移任务,将待迁移数据按任务序列逐项从源数据库中定位后提取出来,再通过数据连接器构建的数据通道发送给第一级消息中间件,从而完成了待迁移数据的提取。此时,第一级消息中间件仅作为一个数据提取和临时存储的功能单元。
本实施例,利用消息中间件自身的特性构建数据连接器,实现待迁移数据在提取前的数据通道的建立,无需额外借助第三方工具或者功能插件实现数据库和作为临时存储单元的第一级消息中间件之间的连接。
图3为本发明实施例提供的一种基于消息中间件的数据迁移方法中的待迁移数据的传输过程的流程图,如图所示,所述S2、将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件,具体包括S201步骤~S203步骤:
S201、建立所述第一级消息中间件与预设的流式处理引擎的连接;
S202、从所述第一级消息中间件中提取所述待迁移数据,通过所述流式处理引擎对所述待迁移数据进行处理;
具体的,流式处理引擎是一种计算引擎,常见的包括Spark Streaming、ApacheStorm和Kafka Stream等。对数据的处理具有低延时、持续性和准确性的特点。本申请通过将待迁移数据进行流式处理后再进行消息中间件传输,实现数据传输的低延时性和准确性。对流式处理引擎的设置可采用内置式和外置式,其中,内置式是指通过消息中间件自身的特性实现流式处理引擎,比如,当消息中间件采用Kafka技术构建时,对应的流式处理引擎可由Kafka Stream生成;而外置式设置方式,则是指在设置流式处理引擎时不依赖消息中间件,而是通过设置匹配的通讯协议实现流式处理引擎和消息中间件之间的数据传输,从而实现将数据从消息中间件传送至流式处理引擎,或者从流式处理引擎向消息中间件传送处理后的数据。
S203、建立所述流式处理引擎和所述次级消息中间件之间的连接,将经过流式计算处理后的所述待迁移数据写入所述次级消息中间件。
具体的,通过设置匹配的通信协议,使流式处理引擎和消息中间件建立数据通道后,在流式处理引擎对所述待迁移数据进行计算处理后,将数据传输给所述次级消息中间件,计算和传输的过程是持续和实时的。
本实施例,利用流式处理引擎实现消息中间件之间的数据传输时的预处理,使传输过程具有低延时性和持续性,既提高了传输速度,又能够确保数据传输的时效性。
图4为本发明实施例提供的一种基于消息中间件的数据迁移方法中对数据异步落地要求进行判断的流程图,如图所示,所述S3、根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,具体包括S301步骤~S302步骤:
S301、读取所述次级消息中间件的连接配置信息,所述连接配置信息用于定义所述次级消息中间件与和其连接的下一级中间存储单元之间的连接配置,包括所述下一级中间存储单元的数据驱动配置命令、访问地址、数据端口、用户名和密码;
具体的,从次级消息中间件的配置文件中,读取连接配置信息,从所述连接配置信息中,识别出下一级连接信息。各个消息中间件的配置文件按照消息中间件采用的技术不同,格式上各有不同,但是记录连接配置信息的位置按照各个消息中间件自身的特性,该位置是固定的,因此可以迅速定位识别出连接配置信息所在位置。提取这些连接信息后,根据各个消息中间件的连接信息的编码命令,确定其连接的下一级中间存储单元的类型,由于本申请中涉及的中间存储单元包括中间数据库和消息中间件两类,因此,只需要判断是否存在数据库驱动程序的调用命令,即可确定连接的中间存储单元是否为中间数据库。
S302、遍历所述连接配置信息的定义文本,当存在数据驱动配置命令时,确定所述次级消息中间件连接的下一级中间存储单元的类型为中间数据库,标记所述次级消息中间件存在数据异步落地要求,当不存在数据驱动配置命令时,则确定所述次级消息中间件连接的下一级中间存储单元的类型为消息中间件,标记所述次级消息中间件不存在数据异步落地要求。
具体的,两种类型的中间存储单元,其连接配置信息均可以连接池形式配置,也可以直接连接。当以连接池形式配置时,根据类型的不同,通过数据库连接池进行中间数据库的连接,或者通过中间件连接池连接下一级消息中间件。不同的中间数据库类型对应有不同的连接池配置形式,但是均需包含包括数据库访问地址、数据端口、用户名和密码,且和消息中间件连接池配置形式的区别在于,中间数据库的连接池配置需配置数据库驱动,比如,MySQL数据库的连接池配置形式如下:
Class.forName("org.gjt.mm.mysql.Driver");
cn=DriverManager.getConnection("jdbc:mysql://MyDbComputerName OrIP:3306/myDatabaseName",sUsr,sPwd)。
其中,“Class.forName("org.gjt.mm.mysql.Driver")”是指调用的数据库驱动的类型。“DriverManager.getConnection()”用于创建连接。
“jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName”表示指向将要访问地址为“MyDbComputerNameOrIP”,且名称为“myDatabaseName”的数据库,访问使用的数据端口为3306。
“sUsr”和“sPwd”分别为访问数据库“myDatabaseName”时的用户名和密码。
需要说明的是,不同的消息中间件连接池配置形式也随着消息中间件类型的不同而有差异,但是其中的基本配置项也如数据库连接池类似的,应当包括:创建连接的命令、地址、数据端口、用户名和密码。
本实施例通过在数据迁移过程中对数据异步落地要求进行判断,为后续迁移的方向做出实时指向,即本申请可做到任一次级消息中间件作为传输节点发生配置变化时,也可以持续的进行数据迁移工作,而不需要整体进行分布式连接结构的再部署和相关配置文件的更新,比如,当任一位于第N个传输节点的次级消息中间件由于其应用框架或者硬件发生故障而导致崩溃或者未响应时,可仅将连接配置信息转移替换其前一级消息中间件的连接配置信息,从而使数据迁移过程得以恢复。
在其中一个实施例中,所述当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,包括通过ETL方式将所述待迁移数据经由所述中间数据库落库于所述目标数据库,具体包括:
当存在后续级联的中间数据库时,通过ETL方式将所述待迁移数据传输给所述后续级联的中间数据库,直至通过最后一级所述中间数据库将所述待迁移数据落库于所述目标数据库;
当不存在后续级联的中间数据库时,直接通过ETL方式将所述待迁移数据经由所述中间数据库落库至所述目标数据库。
具体的,传统的数据迁移方式常采用ETL方式实现在多个数据库之间进行数据的同步和更新,本申请可通过在中间传输环节时,对存在异步落地要求的情况进行兼容考虑,使传统的迁移策略在不能被彻底摒弃的情况下,也可以部分发挥作用,从而在某些场合起到使数据迁移工作不搁浅,又节省成本的效果。另外,在与所述中间数据库连接的次级消息中间件和所述中间数据库之间需通过所述次级消息中间件的特性建立中间端数据连接器,以便消息中间件向中间数据库写入待迁移数据。
本实施例,通过在任一次级消息中间件的中间传输节点处进行数据异步落地的检查和判断,在确定存在数据异步落地要求的情况下,将消息中间件和传统的中间数据库连接后实现兼容传统数据迁移方案的效果。
在其中一个实施例中,所述当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库,包括:
当存在后续级联的消息中间件时,将所述待迁移数据进行流式计算处理后向后续级联的消息中间件逐级传递,直至通过最后一级所述消息中间件将所述待迁移数据落库于所述目标数据库;
当不存在后续级联的消息中间件时,在当前的所述消息中间件和所述目标数据库之间建立目的地端数据连接器,通过所述目的地端数据连接器将所述待迁移数据落库至所述目标数据库。
具体的,在不存在数据异步落地要求的情况下,即是说,在源数据库和目标数据库之间,均以消息中间件或者由多个消息中间件构建的集群进行数据的迁移,此时,在任一次级消息中间件接收数据前,均需通过流式处理引擎作为该次级消息中间件的输入数据的预处理功能模块,从而使相连接的消息中间件之间的数据传输均保持实时性和高速性。另外,在目标数据库和最末一级消息中间件之间通过所述最末一级消息中间件的特性建立目的地端数据连接器,实现目标数据库和消息中间件的数据传输通道的建立。
本实施例,通过流式处理引擎配合消息中间件集群实现数据的迁移过程,具有高速和实时的优点。
在其中一个实施例中,所述根据所述数据迁移任务清单,通过所述源端数据连接器从所述源数据库抽取所述待迁移数据之后,包括:
对所述数据迁移任务清单中的每一项数据迁移任务所对应的待迁移的数据X,通过密码散列函数计算后得到与所述数据X对应的校验码A;
将所述校验码A和所述数据X通过所述源端数据连接器写入所述第一级消息中间件,使所述校验码A随所述数据X落库至所述目标数据库;
具体的,由于迁移任务中的流式计算方式的参与,使得迁移过程的持续性较高,因此,对于待迁移数据的校验通过在源数据库端对待迁移数据生成校验码,和在目标数据库端对已经落库的相同迁移任务的数据生成另一组校验码,对两组校验码进行比较,根据比较结果是否一致来判断对应的数据迁移任务是否执行成功。执行时,先在源数据库端,根据数据迁移任务清单中的当前正在执行的迁移任务,在确定了待迁移数据后,对该组数据利用密码散列函数计算后得到一组校验码,定义该校验码为校验码A。密码散列函数是一种单向散列函数,它将任意长度的数据根据一定算法压缩到某一固定长度后得到一组数据摘要,这组数据摘要就可视作是所述任意长度的数据的校验码。常见的哈希函数即为密码散列函数,其算法包括MD5、SHA1、SHA224、SHA256、SHA384、SHA512、SM3等。当获得了校验码A后,将其与对应的待迁移数据X一起经过迁移落库到目标数据库。校验码A将用于在数据最终落库后,对数据的一致性进行校验。
在本实施例中,所述将所述待迁移数据落库至所述目标数据库之后,包括:
根据所述密码散列函数计算落库后的所述数据X的校验码B,将所述校验码B与所述校验码A进行比较,若一致,则标记此次数据迁移任务执行成功,否则标记为执行失败后记录至失败列表;
具体的,当数据X最终落库到目标数据库后,对数据X在落库后利用相同的密码散列函数的算法进行计算后得到校验码B,比较校验码A和校验码B,根据比较结果来确定本次数据迁移任务是否执行成功。
具体的,对于数据X中存在的Number类型的数据,可进行求和操作后生成sum值,看看迁移前后的两边的sum值是否一致,从而判断其完整性和正确性。
具体的,在进行数据X的校验时,也可以通过统计记录数进行数据记录数的迁移判断。比如,对于同一迁移任务,根据迁移的记录条数在源数据库端提取后的总数,和在落库后统计得到的总数,将两个总数进行比较后判断同一迁移任务中的迁移前后的记录数是否一致,从而确定数据的迁移数量的完整性。
具体的,对于数据X中的字符类型的数据在迁移时,可统计源端和目标端两个数据库的字符数是否相等来判断字符类型数据的迁移是否成功。
当完成所述数据迁移任务清单中的所有数据迁移任务后,根据所述失败列表进行失败任务的再执行,在预设的重试阈值范围内重复执行所述失败列表中记录的数据迁移任务,每次重试执行后刷新所述失败列表;
将执行完所述重试阈值后获得的失败列表发送至数据运维方。
具体的,当校验后发现迁移任务执行失败,则进行迁移任务再执行,为此,可在整个迁移任务作业进行前,对所有迁移任务生成执行序列,并为每个任务生成执行序列号,将执行失败的迁移任务的序列号追加到整个执行序列的最末,从而不影响整个迁移任务清单的执行。在执行一定次数后,依然校验为执行失败,则将该任务做好标记后,最终汇总所有带标记的任务后生成失败列表,所述失败列表将作为数据运维方进行数据运维时的参考。
在一些实施例中,本发明提出了一种基于消息中间件的数据迁移装置。如图5所示为所述基于消息中间件的数据迁移装置的功能框图,所述基于消息中间件的数据迁移装置包括数据抽取模块11、数据传输模块12和数据落库模块13,其中:
数据抽取模块11,设置为从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件;
数据传输模块12,设置为将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件;
数据落库模块13,设置为根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库。
在其中一些实施例中,本发明提出了一种计算机设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述基于消息中间件的数据迁移方法的步骤。
在其中一些实施例中,本发明提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中的所述基于消息中间件的数据迁移方法的步骤,其中,所述存储介质可以为非易失性存储介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁盘或光盘等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请一些示例性实施例,其中描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于消息中间件的数据迁移方法,其特征在于,包括:
从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件;
将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件;
根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库,所述中间存储单元的类型包括消息中间件和中间数据库;
其中,所述根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,包括:读取所述次级消息中间件的连接配置信息,所述连接配置信息用于定义所述次级消息中间件与和其连接的下一级中间存储单元之间的连接配置,包括所述下一级中间存储单元的数据驱动配置命令、访问地址、数据端口、用户名和密码;遍历所述连接配置信息的定义文本,当存在数据驱动配置命令时,确定所述次级消息中间件连接的下一级中间存储单元的类型为中间数据库,标记所述次级消息中间件存在数据异步落地要求,当不存在数据驱动配置命令时,则确定所述次级消息中间件连接的下一级中间存储单元的类型为消息中间件,标记所述次级消息中间件不存在数据异步落地要求。
2.根据权利要求1所述的基于消息中间件的数据迁移方法,其特征在于,所述从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件,包括:
获取所述源数据库的访问权限和预设的数据迁移任务清单,所述数据迁移任务清单中记录所述待迁移数据;
基于所述第一级消息中间件生成用于连接所述源数据库的源端数据连接器,根据所述源数据库的访问权限建立所述源端数据连接器与所述源数据库的连接;
根据所述数据迁移任务清单,通过所述源端数据连接器从所述源数据库抽取所述待迁移数据;
将所述待迁移数据写入所述第一级消息中间件。
3.根据权利要求1所述的基于消息中间件的数据迁移方法,其特征在于,所述将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件,包括:
建立所述第一级消息中间件与预设的流式处理引擎的连接;
从所述第一级消息中间件中提取所述待迁移数据,通过所述流式处理引擎对所述待迁移数据进行处理;
建立所述流式处理引擎和所述次级消息中间件之间的连接,将经过流式计算处理后的所述待迁移数据写入所述次级消息中间件。
4.根据权利要求1所述的基于消息中间件的数据迁移方法,其特征在于,所述当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,包括通过ETL方式将所述待迁移数据经由所述中间数据库落库于所述目标数据库,具体包括:
当存在后续级联的中间数据库时,通过ETL方式将所述待迁移数据传输给所述后续级联的中间数据库,直至通过最后一级所述中间数据库将所述待迁移数据落库于所述目标数据库;
当不存在后续级联的中间数据库时,直接通过ETL方式将所述待迁移数据经由所述中间数据库落库至所述目标数据库。
5.根据权利要求1所述的基于消息中间件的数据迁移方法,其特征在于,所述当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库,包括:
当存在后续级联的消息中间件时,将所述待迁移数据进行流式计算处理后向后续级联的消息中间件逐级传递,直至通过最后一级所述消息中间件将所述待迁移数据落库于所述目标数据库;
当不存在后续级联的消息中间件时,在当前的所述消息中间件和所述目标数据库之间建立目的地端数据连接器,通过所述目的地端数据连接器将所述待迁移数据落库至所述目标数据库。
6.根据权利要求2所述的基于消息中间件的数据迁移方法,其特征在于,所述根据所述数据迁移任务清单,通过所述源端数据连接器从所述源数据库抽取所述待迁移数据之后,包括:
对所述数据迁移任务清单中的每一项数据迁移任务所对应的待迁移的数据X,通过密码散列函数计算后得到与所述数据X对应的校验码A;
将所述校验码A和所述数据X通过所述源端数据连接器写入所述第一级消息中间件,使所述校验码A随所述数据X落库至所述目标数据库;
所述将所述待迁移数据落库至所述目标数据库之后,包括:
根据所述密码散列函数计算落库后的所述数据X的校验码B,将所述校验码B与所述校验码A进行比较,若一致,则标记此次数据迁移任务执行成功,否则标记为执行失败后记录至失败列表;
当完成所述数据迁移任务清单中的所有数据迁移任务后,根据所述失败列表进行失败任务的再执行,在预设的重试阈值范围内重复执行所述失败列表中记录的数据迁移任务,每次重试执行后刷新所述失败列表;
将执行完所述重试阈值后获得的失败列表发送至数据运维方。
7.一种基于消息中间件的数据迁移装置,其特征在于,包括:
数据抽取模块,设置为从源数据库抽取待迁移数据后写入消息中间件集群的第一级消息中间件,所述消息中间件集群包括级联的至少两个消息中间件;
数据传输模块,设置为将所述第一级消息中间件中的所述待迁移数据进行流式计算处理后传输至次级消息中间件;
数据落库模块,设置为根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,当存在数据异步落地要求时,通过与所述次级消息中间件连接的中间数据库将所述待迁移数据落库至目标数据库,当不存在数据异步落地要求时,通过与所述次级消息中间件连接的后续级联的消息中间件将所述待迁移数据落库至所述目标数据库;
其中,所述根据所述次级消息中间件连接的下一级中间存储单元的类型,判断所述次级消息中间件是否存在数据异步落地要求,包括:读取所述次级消息中间件的连接配置信息,所述连接配置信息用于定义所述次级消息中间件与和其连接的下一级中间存储单元之间的连接配置,包括所述下一级中间存储单元的数据驱动配置命令、访问地址、数据端口、用户名和密码;遍历所述连接配置信息的定义文本,当存在数据驱动配置命令时,确定所述次级消息中间件连接的下一级中间存储单元的类型为中间数据库,标记所述次级消息中间件存在数据异步落地要求,当不存在数据驱动配置命令时,则确定所述次级消息中间件连接的下一级中间存储单元的类型为消息中间件,标记所述次级消息中间件不存在数据异步落地要求。
8.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述计算机可读指令被所述处理器执行时,实现如权利要求1至6中任意一项所述的基于消息中间件的数据迁移方法。
9.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被一个或多个处理器执行时,实现如权利要求1至6中任意一项所述的基于消息中间件的数据迁移方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910268533.0A CN110334075B (zh) | 2019-04-04 | 2019-04-04 | 基于消息中间件的数据迁移方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910268533.0A CN110334075B (zh) | 2019-04-04 | 2019-04-04 | 基于消息中间件的数据迁移方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110334075A CN110334075A (zh) | 2019-10-15 |
CN110334075B true CN110334075B (zh) | 2023-06-20 |
Family
ID=68139209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910268533.0A Active CN110334075B (zh) | 2019-04-04 | 2019-04-04 | 基于消息中间件的数据迁移方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110334075B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324596B (zh) * | 2020-03-06 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 数据库集群的数据迁移方法、装置及电子设备 |
CN112051968B (zh) * | 2020-08-07 | 2021-10-22 | 东北大学 | 基于Kafka的分布式数据流分级缓存自动迁移方法 |
CN111949721A (zh) * | 2020-08-25 | 2020-11-17 | 深圳市广通软件有限公司 | 实现Web数据库快速访问的方法、系统和存储介质 |
CN112463762A (zh) * | 2020-11-06 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 跨集群实时数据迁移与同步的方法、系统、设备及介质 |
CN112269788A (zh) * | 2020-11-13 | 2021-01-26 | 中盈优创资讯科技有限公司 | 提升ClickHouse数据入库性能的方法及装置 |
CN112597371A (zh) * | 2020-12-25 | 2021-04-02 | 牧原食品股份有限公司 | 一种基于消息中间件的数据采集系统、方法及装置 |
CN112749354B (zh) * | 2020-12-29 | 2024-04-02 | 深圳赛安特技术服务有限公司 | 基于人工智能的数据扫描方法、装置、计算机设备及介质 |
CN112597234A (zh) * | 2020-12-29 | 2021-04-02 | 拉卡拉支付股份有限公司 | 数据传输方法、装置、电子设备、存储介质及程序产品 |
CN113347028B (zh) * | 2021-05-25 | 2022-08-09 | 吉递(中国)能源科技有限公司 | 基于MQTT和RocketMQ开发的物联网平台管理系统 |
CN114218188A (zh) * | 2021-11-19 | 2022-03-22 | 建信金融科技有限责任公司 | 数据迁移方法、装置、设备及存储介质 |
CN114489686B (zh) * | 2021-12-08 | 2023-06-20 | 浙江大学 | 多云部署下的中间件解耦方法、装置和设备 |
CN117033952B (zh) * | 2023-10-10 | 2023-12-19 | 厦门惟尔拓科技有限公司 | 一种基于分布式的多数据源采集实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970920A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种用于数据库数据迁移的方法与设备 |
CN107016128A (zh) * | 2017-05-16 | 2017-08-04 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN108388615A (zh) * | 2018-02-09 | 2018-08-10 | 杭州数梦工场科技有限公司 | 一种数据交换方法、系统以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10754833B2 (en) * | 2017-01-26 | 2020-08-25 | Sap Se | Combined database migration and structure conversion within maintenance procedures |
-
2019
- 2019-04-04 CN CN201910268533.0A patent/CN110334075B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106970920A (zh) * | 2016-01-14 | 2017-07-21 | 阿里巴巴集团控股有限公司 | 一种用于数据库数据迁移的方法与设备 |
CN107016128A (zh) * | 2017-05-16 | 2017-08-04 | 郑州云海信息技术有限公司 | 一种数据处理方法及装置 |
CN108388615A (zh) * | 2018-02-09 | 2018-08-10 | 杭州数梦工场科技有限公司 | 一种数据交换方法、系统以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110334075A (zh) | 2019-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110334075B (zh) | 基于消息中间件的数据迁移方法及相关设备 | |
US11281644B2 (en) | Blockchain logging of data from multiple systems | |
JP5744898B2 (ja) | 情報システムにおける変換データの高スループット・高信頼性の複製 | |
US11347589B2 (en) | Evaluation for rebuilding performance of redundant arrays of independent disks | |
US11210003B2 (en) | Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier | |
US11599385B2 (en) | System and method for distribution of dependent builds across orchestration job scheduler slaves | |
US9547456B2 (en) | Method and apparatus for efficient data copying and data migration | |
CN110750592A (zh) | 数据同步的方法、装置和终端设备 | |
US10048880B1 (en) | Efficient scrubbing of mirrored memory | |
CN113835870A (zh) | 数据处理方法及系统 | |
CN110121694B (zh) | 一种日志管理方法、服务器和数据库系统 | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN114741449A (zh) | 一种基于分布式数据库的对象存储方法及装置 | |
CN110765069A (zh) | 一种数据迁移方法、装置及系统 | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库系统 | |
US11561859B2 (en) | Method, device and computer program product for managing data | |
US11740827B2 (en) | Method, electronic device, and computer program product for recovering data | |
CN107220342A (zh) | 一种分布式数据库的控制方法及系统 | |
US9715477B2 (en) | Shared-bandwidth multiple target remote copy | |
US10509593B2 (en) | Data services scheduling in heterogeneous storage environments | |
US10095427B2 (en) | Dynamic resilience in flash acceleration tiers | |
US11656950B2 (en) | Method, electronic device and computer program product for storage management | |
US11526490B1 (en) | Database log performance | |
CN111709513B (zh) | 长短期记忆网络lstm的训练系统、方法及电子设备 | |
US20210271993A1 (en) | Observed event determination apparatus, observed event determination method, and computer readable recording medium |
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 |