CN108388615B - 一种数据交换方法、系统以及电子设备 - Google Patents
一种数据交换方法、系统以及电子设备 Download PDFInfo
- Publication number
- CN108388615B CN108388615B CN201810134348.8A CN201810134348A CN108388615B CN 108388615 B CN108388615 B CN 108388615B CN 201810134348 A CN201810134348 A CN 201810134348A CN 108388615 B CN108388615 B CN 108388615B
- Authority
- CN
- China
- Prior art keywords
- data
- incremental
- full dose
- platform
- database
- 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
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/25—Integrating or interfacing systems involving database management systems
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据交换方法,应用于数据交换系统,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接,包括:确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;确定所述数据使用方发起的数据使用请求是否审批通过;如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
Description
技术领域
本说明书涉及计算机应用领域,尤其涉及一种数据交换方法、系统以及电子设备。
背景技术
在实际应用中,当不同的数据库之间需要进行数据交换时,由于数据库之间无法直接进行数据传输,因而目前的解决方案通常是将需要进行数据交换的数据库作为前置数据库,分别与数据交换系统(比如,数据交换中心)进行对接,将需要交换的数据导入到数据交换系统的中心数据库,然后依托于数据交换系统的数据交换能力,来完成不同的数据库之间的数据交换和共享。然而,如果数据库之间需要交换的数据量非常大时,海量的存储数据可能会对中心数据库的性能造成影响,使得中心数据库无法支撑数据交换共享时的实时性要求。
发明内容
本申请提出一种数据交换方法,应用于数据交换系统,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;其中,所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接,所述方法包括:
确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
本申请还提出一种数据交换系统,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;其中,所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接,所述系统包括:
确定模块,确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;
导入模块,如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
本申请还提出一种电子设备,应用于数据交换系统,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定源数据库中的数据是否已编目到中心数据库的数据目录;所述中心数据库为数据交换系统中基于分布式数据平台以及消息中间件搭建的中心数据库;所述中心数据库分别与数据提供方的所述源数据库,以及数据使用方的目标数据库对接;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
本申请还提出一种计算机程序产品,包括计算机程序指令,其中所述计算机程序指令使计算机实现:
确定源数据库中的数据是否已编目到中心数据库的数据目录;所述中心数据库为数据交换系统中基于分布式数据平台以及消息中间件搭建的中心数据库;所述中心数据库分别与数据提供方的所述源数据库,以及数据使用方的目标数据库对接;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
本说明书实施例所提供的技术方案,通过对数据交换系统的中心数据库进行改造,不再使用传统的关系型数据库作为中心数据库,而是基于分布式数据平台以及消息中间件来搭建中心数据库,从而使得对中心库进行改造后的数据交换系统,不仅能够满足海量的数据存储要求,而且可以实现源数据库和目标数据库之间实时的数据交换。
附图说明
图1是本申请一实施例示出的一种数据交换方法的流程图;
图2本申请一实施例示出的一种数据交换系统的架构图;
图3是本说明书一实施例提供的承载一种数据交换系统的电子设备所涉及的硬件结构图;
图4是本说明书一实施例提供的一种数据交换系统的逻辑框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在相关技术中,当数据提供方需要与数据使用方进行数据交换时,可以将数据提供方的源数据库,以及数据使用方的目标数据库分别与数据交换系统(比如数据交换中心)进行对接,然后将数据提供方的源数据库中需要交换的数据,导入到数据交换系统的中心数据库,再依托于数据交换系统的数据交换能力,将中心数据库中导入的数据,进一步写入到数据使用方的目标数据库。
目前,作为数据交换中心的数据交换系统,通常采用传统的关系型数据库来作为中心数据库;例如,通常采用诸如oracle、mysql等关系型数据库。
然而,由于传统的关系型数据库,通常会存在一个存储性能的极限;比如,大多数关系型数据库都会存在一个可存储的数据记录的最大条目数;因此,当数据提供方与数据使用方之间的需要交换的数据量非常大时,海量的存储数据则会对中心数据库的性能造成影响,导致无法完成数据交换,或者导致数据交换的处理延时较大,使得中心数据库无法支撑数据交换共享时的实时性要求。
有鉴于此,本申请提出一种对数据交换系统的中心数据库进行改造,不再使用传统的关系型数据库作为数据交换系统的中心数据库,而是基于分布式数据平台以及消息中间件来为数据交换系统搭建中心数据库的技术方案;
在实现时,数据提供方可以对其源数据库中的数据进行数据编目,将源数据库中的数据编目到上述中心数据库的数据目录。而数据交换系统在确定源数据库中的数据已经在本地的数据目录中编目完成后,可以立即触发将上述源数据库中的全量数据导入至所述分部式数据平台,将所述源数据库中的增量数据导入所述消息中间件。
当源数据库中的数据全部导入中心数据库中,数据使用方可以向数据交换系统发起对上述源数据库中的数据的数据使用请求,并由数据交换系统将该数据使用请求提交给相关的审批用户进行数据审批。
当数据交换系统确定上述数据使用方发起的数据使用请求审批通过时,可以立即触发将上述分布式数据平台中存储的全量数据,以及上述消息中间件中存储的增量数据,进一步写入到数据使用方的目标数据库,完成数据提供方和数据使用方的数据交换。
在本申请中,一方面,通过分布式数据平台承载源数据库中的全量数据,可以充分利用分布式数据平台的存储性能,能够满足海量的数据存储要求;另一方面,利用消息中间件来承载源数据库中对实时性要求较高的增量数据,可以充分利用消息中间件快速高效的数据传递机制,能够满足源数据库和目标数据库之间的数据交换的实时性要求。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图1,图1是本说明书一实施例提供的一种数据交换方法,应用于数据交换系统,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;其中,所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接,执行以下步骤:
步骤101,确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;
步骤102,如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;
步骤103,确定所述数据使用方发起的数据使用请求是否审批通过;
步骤104,如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
上述分布式数据平台,具体可以包括任意形式的采用分布式架构,可以对海量数据进行存储、处理、计算以及分析的分布式数据处理平台;例如,在实际应用中,上述分布式数据平台可以是基于服务器集群搭建的,采用分布式架构的大数据引擎,或者其它形式的大数据平台。
上述消息中间件,包括任意形式的可以面向分布式系统提高可靠和高效的数据传送服务的组件,或者其它形式的软件工具。
上述全量数据,具体可以包括在将源数据库的数据表中存储的数据记录导入中心数据库时,该数据表中存储的所有数据记录。
上述增量数据,具体可以包括在将源数据库中存储的数据记录导入中心数据库时,距离上一次将源数据库中的数据记录导入中心数据库的时间段内,源数据库新增的数据记录。
在本申请中,为了应对数据交换系统采用传统的关系型数据库作为中心数据库,而造成的数据交换性能瓶颈,以及无法支撑数据交换共享时的实时性要求的问题,可以对数据交换系统的中心数据库进行改造,不再采用传统的关系型数据来作为数据交换系统的中心数据库,而是基于分布式数据平台和消息中间件来为数据交换系统搭建中心数据库。
请参见图2,图2为本申请示出的一种数据交换系统的架构图。
如图2所示,上述数据交换系统,具体可以包括以下节点:
中心数据库,由分布式数据平台和消息中间件搭建,用于承载数据提供方和数据使用方在进行数据交换时的交换数据。上述分布式数据平台,用于承载源数据库中的全量数据;上述消息中间件,用于承载源数据库中的增量数据。
上述中心数据库,可以通过上述数据交换系统搭载的第一ETL(ExtractTransformLoad,抽取转换加载)工具,与数据提供方的源数据库对接,并通过上述数据交换系统搭载的第二ETL工具,与数据使用方的目标数据库对接。
上述第一ETL工具和第二ETL工具,用于从前置数据库中抽取数据导入中心数据库,以及从中心数据库中读取数据,写入前置数据库;其中,上述第一ETL和第二ETL工具,可以与构成上述中心数据库的分布式数据平台和消息中间件,保持两条独立的数据通道;例如,如图2所示,上述第一ETL和第二ETL工具可以与上述分布式数据平台保持一条全量数据的数据通道,与消息中间件保持一条增量数据的数据通道。
除此之外,上述数据交换系统,还可以搭载数据目录工具、和交换控制平台。
上述交换控制平台,用于基于上述数据目录工具下发的异步任务,对上述第一ETL工具和第二ETL工具进行启动控制;例如,可以基于上述数据目录工具下发的异步任务,启动上述第一ETL工具从前置数据库中抽取数据导入中心数据库;或者,基于上述数据目录工具下发的异步任务,启动第二ETL工具从中心数据库中读取数据,写入前置数据库。
上述数据目录工具,可以与上述分布式数据平台和上述交换控制平台对接;一方面,上述数据目录工具,可以面向数据提供方、数据使用方提供在中心数据库中的数据编目、源数据库中的数据使用审批等服务。
另一方面,上述数据目录工具,可以通过调用分布式数据平台以及交换控制平台提供的接口,向上述分布式数据平台以及上述交换控制平台下发可执行的异步任务。其中,上述数据目录工具向上述分布式数据平台以及上述交换控制平台下发的任务,具体可以包括由上述数据交换系统的管理员手动创建的任务,也可以是由系统自主触发的任务(比如定时任务)。
例如,在实际应用中,上述数据目录工具下发的任务具体可以包括,向分布式数据平台下发的数据融合任务、向交换控制平台下发的数据抽取任务以及数据写入任务,等等。
以下将结合图2示出的系统架构对本申请的技术方案进行详细描述。
在本实施例中,上述数据目录工具可以面向用户提供可视化的用户界面,并在用户界面中提供与数据编目、数据融合、以及任务创建等功能对应的功能入口,用户可以日常的使用过程中,可以通过触发这些功能入口,来通过数据目录工具完成相应的功能。
在初始状态下,数据提供方的管理员,可以通过触发上述数据目录工具提供的用户界面中与数据编目对应的功能入口,启动数据编目流程,并通过编辑相应的数据编目指令,将源数据库中的数据记录编目到中心数据库的数据目录中。
一方面,数据目录工具在接收到数据提供方的管理员编辑的数据编目指令后,可以响应并执行这些数据编目指令,完成将源数据库中的数据记录编目到中心数据库的数据目录中的操作。
另一方面,上述目录工具还可以在后台实时的检测中心数据库的数据目录中,是否存在新增的数据目录,来确定源数据库中的数据是否已编目到中心数据库的数据目录。
如图2所示,如果在中心数据库的数据目录中检测到与源数据库中的数据对应的数据目录,此时认为针对源数据库的编目已经完成,数据目录工具可以立即向上述交换控制平台下发数据抽取任务。
其中,上述数据抽取任务,具体是指抽取源数据库中的数据记录导入中心数据库的异步任务。在下发上述数据抽取任务时传递的信息中,具体可以包括源数据库中的数据记录所在的数据库的名称、以及所在的数据表的名称等参数。
当上述交换控制平台收到上述数据抽取任务时,可以触发执行该数据抽取任务,将源数据库中的全量数据导入至上述分布式数据平台,将上述源数据库中的增量数据导入至上述消息中间件。
在示出的一种实施方式中,为了保证导入数据的一致性,可以为抽取的数据记录分别添加时间戳,并采用先抽取全量数据,再抽取增量数据的方式,来完成将源数据库中的数据记录导入至中心数据库的过程。
在这种情况下,上述交换控制平台在收到上述数据抽取任务后,可以立即启动上述第一ETL工具,并将源数据库中的数据记录所在的数据库的名称、以及所在的数据表的名称等参数传递给第一ETL工具。此时,第一ETL工具可以基于这些参数,先从源数据库中抽取全量数据,为抽取的全量数据中的数据记录分别添加处理标签,并为抽取的全量数据中的数据记录分别添加时间戳,然后通过第一ETL工具与上述分布式数据平台之间的数据通道,将抽取的全量数据导入至上述分布式数据平台进行存储。
当将抽取的全量数据导入分布式数据平台后,上述第一ETL工具可以自动识别源数据库中的增量数据;比如,可以通过将本次导出的数据,与记录上一次导出的数据进行匹配,来识别出增量数据;再从上述源数据库中抽取增量数据,为抽取的增量数据中的数据记录分别添加处理标签,并为抽取的全量数据中的数据记录分别添加时间戳,然后通过第一ETL工具与上述消息中间件之间的数据通道,将抽取的增量数据导入至上述消息中间件进行存储。
其中,需要说明的是,为全量数据添加的处理标签,通常为I标签(insert标签),表示全量数据中的数据记录只能进行插入操作;而为增量数据添加的处理标签,通常为I/D/U标签(insert/update/delete标签),表示增量数据中的数据记录可以进行插入、删除以及更新等操作。
另外,为全量数据以及增量数据中的数据记录添加的时间戳,具体可以是抽取该数据记录时的流水号或者系统时间等。
其中,需要强调的是,在本申请中,为全量数据中的数据记录添加的时间戳,和为增量数据中的数据记录添加的时间戳,需要保持连续;并且,为增量数据中的数据记录添加的时间戳要大于为全量数据中的数据记录添加的时间戳。
例如,在一种实施方式中,假设为全量数据中的数据记录添加的时间戳为从1~X,X为全量数据中的最大时间戳,那么在为增量数据中的数据记录添加时间戳时,可以从X+1开始来为增量数据中的数据记录连续的添加时间戳。
在本实施例中,当第一ETL工具,将源数据库中的数据记录全部导入了中心数据库后,上述数据使用方的管理员,可以通过触发上述数据目录工具提供的用户界面中与数据使用审批对应的功能入口,来发起对上述源数据库中的数据记录的数据使用请求。
一方面,数据目录工具在接收到数据使用方的管理员发起的数据使用请求后,可以将该数据使用请求提交至对应的审批用户进行数据审批。
另一方面,数据目录工具可以在后台实时监测上述数据使用请求对应的审批状态,来确定上述数据使用请求对应的数据审批流程是否完成。
如图2所示,如果上述数据使用请求对应的数据审批流程完成,数据目录工具可以立即向上述交换控制平台下发数据写入任务。
其中,上述数据写入任务,具体是指将中心数据库中存储的源数据库中的数据记录导入数据使用方的目标数据库的异步任务。在下发上述数据导入任务时传递的信息中,具体可以包括源数据库中的数据记录需要导入的数据库的名称、以及所在的数据表的名称等参数。
当上述交换控制平台收到上述数据写入任务时,可以触发执行该数据写入任务,将上述分布式数据平台中存储的全量数据,以及上述消息中间件中存储的增量数据导入至数据提供方的目标数据库。
在示出的一种实施方式中,在从中心数据库中读取源数据库中的数据记录时,仍然可以采用先读取全量数据,再读取增量数据的顺序。
在这种情况下,上述交换控制平台在收到上述数据写入任务后,可以立即启动上述第二ETL工具,并将源数据库中的数据记录需要导入的数据库的名称、以及所在的数据表的名称等参数传递给第二ETL工具。此时,第二ETL工具可以基于这些参数,先从分布式数据平台中读取全量数据,通过第二ETL工具与上述分布式数据平台之间的数据通道,将读取到的全量数据写入至诗句提供方的目标数据库;例如,由于全量数据中的数据记录仅携带I标签,因此对于全量数据中的数据记录,可以直接插入到数据使用方的目标数据库中即可。同时,在从分布式数据平台中读取全量数据的过程中,第二ETL工具还可以记录读取到的全量数据的最大时间戳。
当将读取到的全量数据写入数据使用方的目标数据库台后,上述第二ETL工具可以再从上述消息中间件中读取增量数据,通过第二ETL工具与上述消息中间件之间的数据通道,将读取的增量数据写入至上述消息中间件进行存储。
具体地,为了避免将增量数据中混入的全量数据,写入至上述目标数据库,在将读取到的增量数据接入上述目标数据库的过程中,上述第二ETL工具还可以确定读取到的增量数据中的数据记录的时间戳,是否大于记录的全量数据中的最大时间戳;如果读取到的增量数据中的任一数据记录的时间戳小于或者等于上述最大时间戳,表明该数据记录为重复数据,对于这类数据可以直接进行丢弃;相反,如果读取到的增量数据中的任一数据记录的时间戳大于上述最大时间戳,表明该数据记录为增量数据,此时可以直接将该数据记录接入上述目标数据库;例如,由于增量数据中的数据记录同时携带I/D/U标签,因此对于增量数据中的数据记录,可以基于携带的标签类型,来确定写入方式;比如,如果携带的标签为I标签,则将该数据记录直接插入至上述目标数据库;如果携带的标签为D标签,则直接删除上述目标数据库中与该数据记录对应的数据记录;如果携带的标签为U标签,则可以利用该数据记录对上述目标数据库中与该数据记录对应的原有数据记录进行更新。
在示出的另一种实施方式中,由于本申请中采用先写入全量数据,再写入增量数据的方式,因此为了确保写入的增量数据不发生偏移,可以在消息中间件中存储的增量数据中,添加少量时间戳小于增量数据的全量数据的数据记录。
在这种情况下,上述第二ETL工具还可以记录从消息中间件中读取到的增量数据的最小时间戳,然后确定该最小时间戳,是否大于记录的从分布式数据平台中读取到的全量数据的最大时间戳;如果上述最小时间戳大于上述最大时间戳,此时表明读取到的增量数据,相对于读取到的全量数据可能发生了数据偏移;比如,假设全量数据中的最大时间戳为X,增量数据中的最小时间戳为X+2,那么时间戳为X+1的增量数据可能由于时间戳发生偏移造成了遗漏。
在这种情况下,如果上述最小时间戳大于上述最大时间戳,可以直接终止上述数据写入任务,通过上述数据目录工具提供的用户界面,向上述数据交换系统的管理员输出上述增量数据发生数据偏移的告警提示,以提示上述管理员对上述分布式数据平台中存储的全量数据,以及上述消息中间件中存储的增量数据进行数据融合。
当然,如果上述最小时间戳小于或者等于上述最大时间戳,上述第二ETL工具仍然采用以上示出的方式,将时间戳小于或者等于上述最大时间戳的增量数据丢弃掉,将大于上述最大时间戳的增量数据,正常写入上述目标数据库。
在本实施例中,数据提供方在将源数据库中的数据记录在中心数据库的数据目录中编目完成后,源数据库中的数据记录会源源不断的导入至上述分布式数据平台,然而由于全量数据中的数据记录通常只携带I标签,只能进行插入新增,并不能进行删除和修改,因此当上述分布式数据平台中积累了一定量的数据记录后,积累的这些数据中可能会处在大量的冗余数据。
因此,为了提高上述分布式数据平台的存储效率,上述数据目录工具还可以调用上述分布式数据平台提供的接口,向上述分布式数据平台下发数据融合任务,来触发上述分布式数据平台执行上述数据融合任务,对分布式数据平台中存储的全量数据,和上述消息中间件中存储的增量数据进行数据融合,对其中的冗余数据进行合并。在下发上述数据融合任务时传递的信息中,具体可以包括需要进行数据融合数据表所在的数据库的名称,以及需要进行数据融合的数据表的名称等参数。
其中,在示出的一种实施方式中,上述数据目录工具向上述分布式数据平台下发的数据融合任务,具体可以是由上述数据交换系统的管理员手动创建的数据融合任务。
在这种情况下,上述数据交换系统的管理员可以通过触发上述数据目录工具提供的用户界面中与任务创建对应的功能入口,来创建上述数据融合任务,并由上述数据目录工具将管理员创建的数据融合任务,下发至上述分布式数据平台进行执行。
例如,在一种场景下,如前所述,上述第二ETL工具在将中心数据库中数据记录写入上述目标数据库的过程中,如果上述数据目录工具通过提供的用户界面,向上述数据交换系统的管理员输出了上述增量数据发生数据偏移的告警提示后,此时该管理员可以在该告警提示的提示下,通过以上示出的方式,来手动创建数据融合任务。
在另一种场景下,上述数据目录工具中也可以预配置一个数据融合任务的任务周期;其中,该任务周期的具体时长大小,在本申请中不进行特别限定,在实际应用中,可以基于数据表中存储的数据记录的特点,或者结合具体的业务需求进行自定义设置。在这种情况下,上述数据目录工具,可以基于配置的上述任务周期,周期性的触发上述数据融合任务,并通过上述用户界面向上述数据交换系统的管理员发出提示,提示上述管理员来手动创建数据融合任务。
而上述分布式数据平台在收到上述数据目录工具下发的数据融合任务后,可以在本地的运行环境中,执行该数据融合任务,完成对分布式数据平台中存储的全量数据,和上述消息中间件中存储的增量数据的数据融合。
在示出的一种实施方式中,在上述分布式数据平台中,可以预配置用于存储全量数据的全量数据表,以及用于存储增量数据的增量数据表。其中,上述全量数据表和上述增量数据表,具体可以由上述数据目录工具进行管理。
上述分布式数据平台在触发执行上述数据融合任务时,可以将上述消息中间件中存储的全量数据写入上述增量数据表,然后针对上述全量数据表以及上述增量数据表中的数据记录进行数据融合计算得到融合数据表;其中,对上述全量数据表和上述增量数据表中的数据记录进行数据融合计算的具体方式,在本申请中不进行特别限定;
例如,在一种实现方式中,可以先对上述全量数据表和上述增量数据表中的数据记录进行简单的合并,生成一个临时数据表,然后再通过上述分布式数据平台支持的拉链算法,对上述临时数据表中的数据记录进行拉链处理,合并重复的数据记录,在拉链处理完成后,此时可以将该临时数据表修改为完成数据融合计算的融合数据表。
当完成数据融合计算得到融合数据表后,可以删除原有的全量数据表,将上述融合数据表修改为全量数据表;以及,重新创建一个增量数据表,将上述消息中间件中存储的增量数据重新导入到重建创建的该增量数据表。此时,上述数据融合任务执行完毕,可以向上述数据目录工具返回一个数据融合完成的执行结果。
当上述数据目录工具收到上述数据融合完成的执行结果后,一方面,可以通过上述用户界面向上述数据交换系统的管理员输出一个数据融合完成的提示信息;另一方面,如果之前下发的数据写入任务被强制终止尚未执行完毕,此时数据目录工具可以调用上述交换控制平台提供的接口,向上述交换控制平台下发重新启动上述数据写入任务的指令,以触发上述交换控制平台重新启动被强制终止的数据写入任务。
当然,当上述数据目录工具收到上述数据融合完成的执行结果后,如果执行下发的数据写入任务已经执行完毕,当前并没有被强制终止的数据接入任务,那么上述数据目录工具只需要通过上述用户界面向上述数据交换系统的管理员输出一个数据融合完成的提示信息即可。
在本实施例中,需要补充说明的是,当上述数据目录工具在向上述交换控制平台下发以上示出的数据导入任务或者数据写入任务时,如果当前上述分布式数据平台中存在正在执行、且尚未执行完毕的数据融合任务,此时可以通过上述用户界面向上述数据交换系统的管理员发出提示消息;例如,上述提示消息具体可以是一个建议管理员强制停止数据融合任务的提示消息,如果管理员选择强行停止数据融合任务,那么上述数据目录工具可以向上述分布式数据平台下发强制停止上述数据融合任务的指令;如果管理员未选择强行停止数据融合任务,此时上述数据目录工具可以在上述数据融合任务执行完毕时(比如收到执行结果时),再向上述交换控制平台下发上述数据导入任务或者数据写入任务。
当然,当上述数据目录工具在向上述分布式数据平台下发数据融合任务时,如果当前上述交换控制平台中存在正在执行、且尚未执行完毕的数据导入任务或者数据写入任务时,此时也可以通过上述用户界面向上述数据交换系统的管理员发出提示消息;例如,上述提示消息具体可以是一个建议管理员终止上述数据导入任务或者数据写入任务的提示消息。
通过以上实施例可知,在本申请中,通过对数据交换系统的中心数据库进行改造,利用分布式数据平台和消息中间件来搭建中心数据库:
一方面,通过分布式数据平台承载源数据库中的全量数据,可以充分利用分布式数据平台的存储性能,能够满足海量的数据存储要求;
另一方面,利用消息中间件来承载源数据库中对实时性要求较高的增量数据,可以充分利用消息中间件快速高效的数据传递机制,能够满足源数据库和目标数据库之间的数据交换的实时性要求。
与上述方法实施例相对应,本说明书还提供了一种数据交换系统的实施例。其中,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;其中,所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接。
本说明书的数据交换系统的实施例可以应用在电子设备上。系统实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书的数据交换系统所在电子设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图4是本说明书一示例性实施例示出的一种数据交换系统的框图。
请参考图4,所述数据交换系统40可以应用在前述图3所示的电子设备中,包括有:确定模块401和导入模块402;
确定模块401,确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;
导入模块402,如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
在本实施例中,所述确定模块402进一步:
确定所述数据使用方发起的数据使用请求是否审批通过;
请继续参见图4,所述系统40还包括:
写入模块403,如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
请继续参见图4,在本实施例中,所述系统40还包括:
数据目录模块404,接收数据提供方发起的针对所述源数据库的数据编目指令;响应于所述数据编目指令,将所述源数据库中的数据编目到所述中心数据库的数据目录。
在本实施例中,所述数据目录模块404接收数据使用方发起的针对所述源数据库的数据使用请求;将所述数据使用请求提交至对应的审批用户进行数据审批。
在本实施例中,当所述源数据库中的数据已编目到所述数据目录时,所述确定模块401向所述导入模块402下发数据抽取任务;所述导入模块402启动所述数据目录模块404下发的数据抽取任务,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;
当所述数据使用方发起的数据使用请求审批通过时,所述确定模块401向所述写入模块403下发数据写入任务;所述写入模块403启动所述数据目录模块404下发的数据写入任务,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据导入至所述目标数据库。
在本实施例中,所述导入模块402:
从所述源数据库中抽取全量数据;
为抽取出的全量数据中的数据记录分别添加时间戳后导入至所述分布式数据平台;以及,
将所述全量数据导入所述分布式数据平台后,所述导入模块402再从所述源数据库中抽取增量数据,为抽取出的增量数据中的数据记录分别添加时间戳后导入所述消息中间件;
其中,为所述全量数据中的数据记录添加的时间戳与为所述增量数据中的数据记录添加的时间戳保持连续,并且为所述增量数据中的数据记录添加的时间戳大于为所述全量数据中的数据记录添加的时间戳。
在本实施例中,所述写入模块403:
读取所述分布式数据平台中存储的所述全量数据,将读取到的所述全量数据中的数据记录分别写入到所述目标数据库,并记录从所述分布式数据平台中读取到的所述全量数据中的最大时间戳;
当将所述全量数据写入所述目标数据库后,所述写入模块403再读取所述消息中间件中存储的增量数据;
确定读取到的增量数据中的数据记录的时间戳是否大于所述最大时间戳;
如果读取到的所述增量数据中的任一数据记录的时间戳大于所述最大时间戳,则将该数据记录写入所述目标数据库;以及,如果抽取出的增量数据中的任一数据记录的时间戳小于或者等于所述最大时间戳,则丢弃该数据记录;
在本实施例中,所述写入模块403进一步:
记录从消息中间件中读取到的增量数据的最小时间戳;
确定读取到的增量数据中的最小时间戳是否大于所述最大时间戳;
如果所述最小时间戳大于所述最大时间戳,终止所述数据写入任务,向管理员输出所述增量数据发生数据偏移的告警提示;其中,所述告警提示用于提示管理员对所述全量数据和所述增量数据进行数据融合。
请继续参见图4,在本实施例中,所述系统还包括融合模块405;
所述数据目录模块404基于预设的合并周期,向所述融合模块405周期性下发数据融合任务;或者,向所述融合模块405下发由管理员创建的数据融合任务;
所述融合模块405,启动所述数据融合任务,对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据进行数据融合。
在本实施例中,所述分布式数据平台预配置了用于存储所述全量数据的全量数据表,用于存储所述增量数据的增量数据表;
所述融合模块405:
将消息中间件中存储的增量数据写入所述增量数据表;
针对所述全量数据表以及所述增量数据表中的数据记录进行数据融合计算得到融合数据表;
删除原有的全量数据表,将所述融合数据表修改为全量数据表;以及,重新创建增量数据表,将所述消息中间件中存储的增量数据导入到重建创建的增量数据表。
其中,需要说明的是,以上图3和图4以以上示出的所有模块位于同一台电子设备为例进行示意性说明,在实际应用中,如果上述数据交换系统为由设备集群搭建的分布式系统,在这种情况下,以上实施例中示出的各个模块,可以位于一台物理设备,也可以分别位于不同的物理设备中。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定源数据库中的数据是否已编目到中心数据库的数据目录;所述中心数据库为数据交换系统中基于分布式数据平台以及消息中间件搭建的中心数据库;所述中心数据库分别与数据提供方的所述源数据库,以及数据使用方的目标数据库对接;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:确定所述数据使用方发起的数据使用请求是否审批通过;
如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
接收数据提供方发起的针对所述源数据库的数据编目指令;响应于所述数据编目指令,将所述源数据库中的数据编目到所述中心数据库的数据目录。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
接收数据使用方发起的针对所述源数据库的数据使用请求;将所述数据使用请求提交至对应的审批用户进行数据审批。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
当所述源数据库中的数据已编目到所述数据目录时,下发数据抽取任务,以触发所述交换控制平台启动所述数据抽取任务;启动下发的数据抽取任务,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;
当所述数据使用方发起的数据使用请求审批通过时,下发数据写入任务;启动下发的数据写入任务,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据导入至所述目标数据库。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
从所述源数据库中抽取全量数据;
为抽取出的全量数据中的数据记录分别添加时间戳后导入至所述分布式数据平台;以及,
将所述全量数据导入所述分布式数据平台后,再从所述源数据库中抽取增量数据,为抽取出的增量数据中的数据记录分别添加时间戳后导入所述消息中间件;
其中,为所述全量数据中的数据记录添加的时间戳与为所述增量数据中的数据记录添加的时间戳保持连续,并且为所述增量数据中的数据记录添加的时间戳大于为所述全量数据中的数据记录添加的时间戳。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
读取所述分布式数据平台中存储的所述全量数据,将读取到的所述全量数据中的数据记录分别写入到所述目标数据库,并记录从所述分布式数据平台中读取到的所述全量数据中的最大时间戳;
当将所述全量数据写入所述目标数据库后,再读取所述消息中间件中存储的增量数据;
确定读取到的增量数据中的数据记录的时间戳是否大于所述最大时间戳;
如果读取到的所述增量数据中的任一数据记录的时间戳大于所述最大时间戳,则将该数据记录写入所述目标数据库;以及,如果抽取出的增量数据中的任一数据记录的时间戳小于或者等于所述最大时间戳,则丢弃该数据记录;
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
记录从消息中间件中读取到的增量数据的最小时间戳;
确定读取到的增量数据中的最小时间戳是否大于所述最大时间戳;
如果所述最小时间戳大于所述最大时间戳,终止所述数据写入任务,通过所述数据目录工具向管理员输出所述增量数据发生数据偏移的告警提示;其中,所述告警提示用于提示管理员对所述全量数据和所述增量数据进行数据融合。
在本实施例中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
基于预设的合并周期,周期性下发数据融合任务;或者,下发由管理员创建的数据融合任务;启动所述数据融合任务,对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据进行数据融合。
在本实施例中,所述分布式数据平台预配置了用于存储所述全量数据的全量数据表,用于存储所述增量数据的增量数据表;
通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器还被促使:
将消息中间件中存储的增量数据写入所述增量数据表;
针对所述全量数据表以及所述增量数据表中的数据记录进行数据融合计算得到融合数据表;
删除原有的全量数据表,将所述融合数据表修改为全量数据表;以及,重新创建增量数据表,将所述消息中间件中存储的增量数据导入到重建创建的增量数据表。
与上述方法实施例相对应,本说明书还提供了一种计算机程序产品,包括计算机程序指令,其中所述计算机程序指令使计算机实现:
确定源数据库中的数据是否已编目到中心数据库的数据目录;所述中心数据库为数据交换系统中基于分布式数据平台以及消息中间件搭建的中心数据库;所述中心数据库分别与数据提供方的所述源数据库,以及数据使用方的目标数据库对接;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
在本实施例中,所述计算机程序指令使计算机还可以实现:
确定所述数据使用方发起的数据使用请求是否审批通过;
如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
在本实施例中,所述计算机程序指令使计算机还可以实现:
接收数据提供方发起的针对所述源数据库的数据编目指令;响应于所述数据编目指令,将所述源数据库中的数据编目到所述中心数据库的数据目录。
在本实施例中,所述计算机程序指令使计算机还可以实现:
接收数据使用方发起的针对所述源数据库的数据使用请求;将所述数据使用请求提交至对应的审批用户进行数据审批。
在本实施例中,所述计算机程序指令使计算机还可以实现:
当所述源数据库中的数据已编目到所述数据目录时,下发数据抽取任务,以触发所述交换控制平台启动所述数据抽取任务;启动下发的数据抽取任务,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;
当所述数据使用方发起的数据使用请求审批通过时,下发数据写入任务;启动下发的数据写入任务,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据导入至所述目标数据库。
在本实施例中,所述计算机程序指令使计算机还可以实现:
从所述源数据库中抽取全量数据;
为抽取出的全量数据中的数据记录分别添加时间戳后导入至所述分布式数据平台;以及,
将所述全量数据导入所述分布式数据平台后,再从所述源数据库中抽取增量数据,为抽取出的增量数据中的数据记录分别添加时间戳后导入所述消息中间件;
其中,为所述全量数据中的数据记录添加的时间戳与为所述增量数据中的数据记录添加的时间戳保持连续,并且为所述增量数据中的数据记录添加的时间戳大于为所述全量数据中的数据记录添加的时间戳。
在本实施例中,所述计算机程序指令使计算机还可以实现:
读取所述分布式数据平台中存储的所述全量数据,将读取到的所述全量数据中的数据记录分别写入到所述目标数据库,并记录从所述分布式数据平台中读取到的所述全量数据中的最大时间戳;
当将所述全量数据写入所述目标数据库后,再读取所述消息中间件中存储的增量数据;
确定读取到的增量数据中的数据记录的时间戳是否大于所述最大时间戳;
如果读取到的所述增量数据中的任一数据记录的时间戳大于所述最大时间戳,则将该数据记录写入所述目标数据库;以及,如果抽取出的增量数据中的任一数据记录的时间戳小于或者等于所述最大时间戳,则丢弃该数据记录;
在本实施例中,所述计算机程序指令使计算机还可以实现:
记录从消息中间件中读取到的增量数据的最小时间戳;
确定读取到的增量数据中的最小时间戳是否大于所述最大时间戳;
如果所述最小时间戳大于所述最大时间戳,终止所述数据写入任务,通过所述数据目录工具向管理员输出所述增量数据发生数据偏移的告警提示;其中,所述告警提示用于提示管理员对所述全量数据和所述增量数据进行数据融合。
在本实施例中,所述计算机程序指令使计算机还可以实现:
基于预设的合并周期,周期性下发数据融合任务;或者,由管理员创建的数据融合任务;启动所述数据融合任务,对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据进行数据融合。
在本实施例中,所述计算机程序指令使计算机还可以实现:
当完成对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据的数据融合后,重新启动终止的数据写入任务。
在本实施例中,所述分布式数据平台预配置了用于存储所述全量数据的全量数据表,用于存储所述增量数据的增量数据表;
所述计算机程序指令使计算机还可以实现:
将消息中间件中存储的增量数据写入所述增量数据表;
针对所述全量数据表以及所述增量数据表中的数据记录进行数据融合计算得到融合数据表;
删除原有的全量数据表,将所述融合数据表修改为全量数据表;以及,重新创建增量数据表,将所述消息中间件中存储的增量数据导入到重建创建的增量数据表。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (22)
1.一种数据交换方法,其特征在于,应用于数据交换系统,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;其中,所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接,所述方法包括:
确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述数据使用方发起的数据使用请求是否审批通过;
如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
3.根据权利要求2所述的方法,其特征在于,所述数据交换系统还搭载了数据目录工具;
所述方法还包括:
通过所述数据目录工具接收数据提供方发起的针对所述源数据库的数据编目指令;响应于所述数据编目指令,将所述源数据库中的数据编目到所述中心数据库的数据目录。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
通过所述数据目录工具接收数据使用方发起的针对所述源数据库的数据使用请求;将所述数据使用请求提交至对应的审批用户进行数据审批。
5.根据权利要求4所述的方法,其特征在于,所述数据交换系统还搭载了交换控制平台,所述方法包括:
如果所述源数据库中的数据已编目到所述数据目录,通过所述数据目录工具向所述交换控制平台下发数据抽取任务,以触发所述交换控制平台启动所述数据抽取任务,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;
如果所述数据使用方发起的数据使用请求审批通过,通过所述数据目录工具向所述交换控制平台下发数据写入任务,以触发所述交换控制平台启动所述数据写入任务,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据导入至所述目标数据库。
6.根据权利要求5所述的方法,其特征在于,所述数据交换系统还搭载了与所述源数据库对接的第一ETL工具;
所述将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件,包括:
启动所述第一ETL工具,从所述源数据库中抽取全量数据;
为抽取出的全量数据中的数据记录分别添加时间戳后导入至所述分布式数据平台;以及,
将所述全量数据导入所述分布式数据平台后,再从所述源数据库中抽取增量数据,为抽取出的增量数据中的数据记录分别添加时间戳后导入所述消息中间件;
其中,为所述全量数据中的数据记录添加的时间戳与为所述增量数据中的数据记录添加的时间戳保持连续,并且为所述增量数据中的数据记录添加的时间戳大于为所述全量数据中的数据记录添加的时间戳。
7.根据权利要求5所述的方法,其特征在于,所述数据交换系统还搭载了与所述目标数据库对接的第二ETL工具;
所述将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库,包括:
启动所述第二ETL工具,读取所述分布式数据平台中存储的所述全量数据,将读取到的所述全量数据中的数据记录分别写入到所述目标数据库,并记录从所述分布式数据平台中读取到的所述全量数据中的最大时间戳;
当将所述全量数据写入所述目标数据库后,再读取所述消息中间件中存储的增量数据;
确定读取到的增量数据中的数据记录的时间戳是否大于所述最大时间戳;
如果读取到的所述增量数据中的任一数据记录的时间戳大于所述最大时间戳,则将该数据记录写入所述目标数据库;以及,如果抽取出的增量数据中的任一数据记录的时间戳小于或者等于所述最大时间戳,则丢弃该数据记录。
8.根据权利要求7所述的方法,其特征在于,还包括:
记录从消息中间件中读取到的增量数据的最小时间戳;
确定读取到的增量数据中的最小时间戳是否大于所述最大时间戳;
如果所述最小时间戳大于所述最大时间戳,终止所述数据写入任务,通过所述数据目录工具向管理员输出所述增量数据发生数据偏移的告警提示;其中,所述告警提示用于提示管理员对所述全量数据和所述增量数据进行数据融合。
9.根据权利要求5所述的方法,其特征在于,还包括:
基于预设的合并周期,通过所述数据目录工具向所述分布式数据平台周期性下发数据融合任务;
或者,通过所述数据目录工具向所述分布式数据平台下发由管理员创建的数据融合任务,以触发所述分布式数据平台启动所述数据融合任务,对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据进行数据融合。
10.根据权利要求9所述的方法,其特征在于,所述分布式数据平台预配置了用于存储所述全量数据的全量数据表,用于存储所述增量数据的增量数据表;
所述对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据进行数据融合,包括:
将消息中间件中存储的增量数据写入所述增量数据表;
针对所述全量数据表以及所述增量数据表中的数据记录进行数据融合计算得到融合数据表;
删除原有的全量数据表,将所述融合数据表修改为全量数据表;以及,重新创建增量数据表,将所述消息中间件中存储的增量数据导入到重建创建的增量数据表。
11.一种数据交换系统,其特征在于,所述数据交换系统包括基于分布式数据平台以及消息中间件搭建的中心数据库;其中,所述中心数据库分别与数据提供方的源数据库,以及数据使用方的目标数据库对接,所述系统包括:
确定模块,确定所述源数据库中的数据是否已编目到所述中心数据库的数据目录;
导入模块,如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件。
12.根据权利要求11所述的系统,其特征在于,所述确定模块进一步:
确定所述数据使用方发起的数据使用请求是否审批通过;
所述系统还包括:
写入模块,如果所述数据使用方发起的数据使用请求审批通过,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据写入至所述目标数据库。
13.根据权利要求12所述的系统,其特征在于,
所述系统还包括:
数据目录模块,接收数据提供方发起的针对所述源数据库的数据编目指令;响应于所述数据编目指令,将所述源数据库中的数据编目到所述中心数据库的数据目录。
14.根据权利要求13所述的系统,其特征在于,
所述数据目录模块接收数据使用方发起的针对所述源数据库的数据使用请求;将所述数据使用请求提交至对应的审批用户进行数据审批。
15.根据权利要求14所述的系统,其特征在于,
当所述源数据库中的数据已编目到所述数据目录时,所述确定模块向所述导入模块下发数据抽取任务;所述导入模块启动所述数据目录模块下发的数据抽取任务,将所述源数据库中的全量数据导入至所述分布式数据平台,将所述源数据库中的增量数据导入至所述消息中间件;
当所述数据使用方发起的数据使用请求审批通过时,所述确定模块向所述写入模块下发数据写入任务;所述写入模块启动所述数据目录模块下发的数据写入任务,将所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据导入至所述目标数据库。
16.根据权利要求15所述的系统,其特征在于,
所述导入模块:
从所述源数据库中抽取全量数据;
为抽取出的全量数据中的数据记录分别添加时间戳后导入至所述分布式数据平台;以及,
将所述全量数据导入所述分布式数据平台后,所述导入模块再从所述源数据库中抽取增量数据,为抽取出的增量数据中的数据记录分别添加时间戳后导入所述消息中间件;
其中,为所述全量数据中的数据记录添加的时间戳与为所述增量数据中的数据记录添加的时间戳保持连续,并且为所述增量数据中的数据记录添加的时间戳大于为所述全量数据中的数据记录添加的时间戳。
17.根据权利要求15所述的系统,其特征在于,
所述写入模块:
读取所述分布式数据平台中存储的所述全量数据,将读取到的所述全量数据中的数据记录分别写入到所述目标数据库,并记录从所述分布式数据平台中读取到的所述全量数据中的最大时间戳;
当将所述全量数据写入所述目标数据库后,所述写入模块再读取所述消息中间件中存储的增量数据;
确定读取到的增量数据中的数据记录的时间戳是否大于所述最大时间戳;
如果读取到的所述增量数据中的任一数据记录的时间戳大于所述最大时间戳,则将该数据记录写入所述目标数据库;以及,如果抽取出的增量数据中的任一数据记录的时间戳小于或者等于所述最大时间戳,则丢弃该数据记录。
18.根据权利要求17所述的系统,其特征在于,所述写入模块进一步:
记录从消息中间件中读取到的增量数据的最小时间戳;
确定读取到的增量数据中的最小时间戳是否大于所述最大时间戳;
如果所述最小时间戳大于所述最大时间戳,终止所述数据写入任务,向管理员输出所述增量数据发生数据偏移的告警提示;其中,所述告警提示用于提示管理员对所述全量数据和所述增量数据进行数据融合。
19.根据权利要求15所述的系统,其特征在于,所述系统还包括融合模块;
所述数据目录模块基于预设的合并周期,向所述融合模块周期性下发数据融合任务;或者,向所述融合模块下发由管理员创建的数据融合任务;
所述融合模块,启动所述数据融合任务,对所述分布式数据平台中存储的全量数据,以及所述消息中间件中存储的增量数据进行数据融合。
20.根据权利要求18所述的系统,其特征在于,所述分布式数据平台预配置了用于存储所述全量数据的全量数据表,用于存储所述增量数据的增量数据表;
所述融合模块:
将消息中间件中存储的增量数据写入所述增量数据表;
针对所述全量数据表以及所述增量数据表中的数据记录进行数据融合计算得到融合数据表;
删除原有的全量数据表,将所述融合数据表修改为全量数据表;以及,重新创建增量数据表,将所述消息中间件中存储的增量数据导入到重建创建的增量数据表。
21.一种电子设备,应用于数据交换系统,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与数据交换的控制逻辑对应的机器可执行指令,所述处理器被促使:
确定源数据库中的数据是否已编目到中心数据库的数据目录;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至分布式数据平台,将所述源数据库中的增量数据导入至消息中间件。
22.一种机器可读存储介质,包括计算机程序指令,其中所述计算机程序指令使计算机实现:
确定源数据库中的数据是否已编目到中心数据库的数据目录;
如果所述源数据库中的数据已编目到所述数据目录,将所述源数据库中的全量数据导入至分布式数据平台,将所述源数据库中的增量数据导入至消息中间件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910539424.8A CN110309218B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换系统和数据写入方法 |
CN201810134348.8A CN108388615B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换方法、系统以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810134348.8A CN108388615B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换方法、系统以及电子设备 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910539424.8A Division CN110309218B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换系统和数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108388615A CN108388615A (zh) | 2018-08-10 |
CN108388615B true CN108388615B (zh) | 2019-07-23 |
Family
ID=63075534
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810134348.8A Active CN108388615B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换方法、系统以及电子设备 |
CN201910539424.8A Active CN110309218B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换系统和数据写入方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910539424.8A Active CN110309218B (zh) | 2018-02-09 | 2018-02-09 | 一种数据交换系统和数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108388615B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109376188B (zh) * | 2018-09-13 | 2021-10-29 | 智恒科技股份有限公司 | 一种基于主题域的智慧水务大数据融合方法及系统 |
CN109446262B (zh) * | 2018-10-31 | 2021-10-08 | 成都四方伟业软件股份有限公司 | 一种数据汇聚方法及装置 |
CN109669977A (zh) * | 2018-11-30 | 2019-04-23 | 金蝶软件(中国)有限公司 | 跨数据库的数据接入方法、装置、计算机设备及存储介质 |
CN109800262A (zh) * | 2018-12-18 | 2019-05-24 | 北京市天元网络技术股份有限公司 | 数据共享交换方法及系统 |
CN110334075B (zh) * | 2019-04-04 | 2023-06-20 | 平安科技(深圳)有限公司 | 基于消息中间件的数据迁移方法及相关设备 |
CN110096541B (zh) * | 2019-04-28 | 2021-06-15 | 新华三大数据技术有限公司 | 一种数据库间的数据交换方法及装置 |
CN110471977B (zh) * | 2019-08-22 | 2022-04-22 | 杭州数梦工场科技有限公司 | 一种数据交换方法、装置、设备、介质 |
CN110909079B (zh) * | 2019-11-20 | 2020-09-01 | 南方电网数字电网研究院有限公司 | 数据交换同步方法、系统、装置、服务器和存储介质 |
CN111125231B (zh) * | 2019-12-31 | 2024-02-23 | 中电科华云信息技术有限公司 | 一种关系型数据库数据交换系统 |
CN111538772B (zh) * | 2020-04-14 | 2023-07-04 | 北京宝兰德软件股份有限公司 | 数据的交换处理方法、装置、电子设备及存储介质 |
CN113052543B (zh) * | 2021-05-31 | 2022-05-03 | 广州宸祺出行科技有限公司 | 一种区域订单和司机热力的统计储存方法、装置及应用 |
CN117688014A (zh) * | 2022-09-09 | 2024-03-12 | 顺丰科技有限公司 | 数据写入方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508908A (zh) * | 2011-11-11 | 2012-06-20 | 北京用友政务软件有限公司 | 一种下级财政业务数据的采集方法和系统 |
CN104090897A (zh) * | 2013-12-19 | 2014-10-08 | 深圳市腾讯计算机系统有限公司 | 访问元数据的方法、服务器及系统 |
CN105335170A (zh) * | 2014-06-05 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 分布式系统及数据增量更新方法 |
CN106776780A (zh) * | 2016-11-23 | 2017-05-31 | 中国科学院软件研究所 | 一种云环境中数据交换与共享方法及系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070011183A1 (en) * | 2005-07-05 | 2007-01-11 | Justin Langseth | Analysis and transformation tools for structured and unstructured data |
US8219518B2 (en) * | 2007-01-09 | 2012-07-10 | International Business Machines Corporation | Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process |
CN101086782A (zh) * | 2007-07-13 | 2007-12-12 | 南京财经大学 | 面向业务服务的协同电子商务系统公共平台 |
CN101908163A (zh) * | 2009-06-05 | 2010-12-08 | 深圳市脑库计算机系统有限公司 | 用于政务商务决策的专家支持应用系统平台及其建构方法 |
CN101610190A (zh) * | 2009-07-22 | 2009-12-23 | 刘文祥 | 数据网络和系统 |
CN103581250B (zh) * | 2012-07-31 | 2018-12-07 | 盛趣信息技术(上海)有限公司 | 数据处理、发布、获取方法及系统 |
CN103605698A (zh) * | 2013-11-06 | 2014-02-26 | 广东电子工业研究院有限公司 | 一种用于分布异构数据资源整合的云数据库系统 |
US10078556B2 (en) * | 2015-08-31 | 2018-09-18 | Paypal, Inc. | Data replication between databases with heterogenious data platforms |
CN105224445B (zh) * | 2015-10-28 | 2017-02-15 | 北京汇商融通信息技术有限公司 | 分布式跟踪系统 |
CN105843936A (zh) * | 2016-03-31 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种业务数据报表方法与系统 |
CN107357791B (zh) * | 2016-05-10 | 2021-10-15 | 中兴通讯股份有限公司 | 一种数据共享方法及装置 |
CN106161620A (zh) * | 2016-06-29 | 2016-11-23 | 浙江理工大学 | 一种云计算资源物联监管与服务平台 |
CN106649449A (zh) * | 2016-09-22 | 2017-05-10 | 济南浪潮高新科技投资发展有限公司 | 一种基于SQLite的内外网数据交换方法 |
CN106874389B (zh) * | 2017-01-11 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
-
2018
- 2018-02-09 CN CN201810134348.8A patent/CN108388615B/zh active Active
- 2018-02-09 CN CN201910539424.8A patent/CN110309218B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508908A (zh) * | 2011-11-11 | 2012-06-20 | 北京用友政务软件有限公司 | 一种下级财政业务数据的采集方法和系统 |
CN104090897A (zh) * | 2013-12-19 | 2014-10-08 | 深圳市腾讯计算机系统有限公司 | 访问元数据的方法、服务器及系统 |
CN105335170A (zh) * | 2014-06-05 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 分布式系统及数据增量更新方法 |
CN106776780A (zh) * | 2016-11-23 | 2017-05-31 | 中国科学院软件研究所 | 一种云环境中数据交换与共享方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108388615A (zh) | 2018-08-10 |
CN110309218B (zh) | 2021-07-30 |
CN110309218A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108388615B (zh) | 一种数据交换方法、系统以及电子设备 | |
CN104809202B (zh) | 一种数据库同步的方法和装置 | |
CN108733713B (zh) | 数据仓库中的数据查询方法及装置 | |
CN104809200B (zh) | 一种数据库同步的方法和装置 | |
CN101620609B (zh) | 多租户数据存储和访问方法和装置 | |
CN104317843A (zh) | 一种数据同步etl系统 | |
CN105938457B (zh) | 数据的过滤方法、装置及数据读取系统 | |
CN105956176A (zh) | 数据库管理系统 | |
CN110413690A (zh) | 数据库的数据同步方法、服务器、电子设备、存储介质 | |
CN108536752A (zh) | 一种数据同步方法、装置和设备 | |
CN104809201A (zh) | 一种数据库同步的方法和装置 | |
CN104035786B (zh) | 一种软件定时器的优化方法及系统 | |
CN106649870A (zh) | 一种搜索引擎分布式实现方法 | |
CN109634970A (zh) | 表数据同步方法、设备、存储介质及装置 | |
CN116663050A (zh) | 一种基于数据库的智能合约数据快速查询方法 | |
CN108427728A (zh) | 元数据的管理方法、设备及计算机可读介质 | |
CN105608126A (zh) | 一种建立海量数据库二级索引的方法和装置 | |
CN105955845A (zh) | 一种数据恢复方法及装置 | |
CN104765792B (zh) | 一种维度数据存储的方法、装置及系统 | |
CN106802928B (zh) | 电网历史数据管理方法及其系统 | |
CN106874343B (zh) | 一种时序数据库的数据删除方法及系统 | |
CN110866065A (zh) | 一种数据交换系统、交换方法及存储介质 | |
CN110209736A (zh) | 区块链数据处理的装置、方法及存储介质 | |
CN112035466B (zh) | 一种区块链查询外置索引开发框架 | |
CN106649000A (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 |