CN106888264B - 一种数据交换方法和装置 - Google Patents
一种数据交换方法和装置 Download PDFInfo
- Publication number
- CN106888264B CN106888264B CN201710121280.5A CN201710121280A CN106888264B CN 106888264 B CN106888264 B CN 106888264B CN 201710121280 A CN201710121280 A CN 201710121280A CN 106888264 B CN106888264 B CN 106888264B
- Authority
- CN
- China
- Prior art keywords
- kettle
- client
- data
- information
- subdata base
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供一种数据交换方法和装置,该方法包括:向第一Kettle客户端发送第一类参数,第一Kettle客户端根据第一类参数创建针对第一子数据库的第一数据源;向第二Kettle客户端发送第二类参数,第二Kettle客户端根据第二类参数创建针对第二子数据库的第二数据源;向第一Kettle客户端发送第一控制消息,第一Kettle客户端根据第一数据源从第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;向第二Kettle客户端发送第二控制消息,第二Kettle客户端从中心数据库中抽取数据,并根据所述第二数据源将抽取的数据存储到所述第二子数据库。通过本申请的技术方案,简化用户操作,便于客户端的维护管理,减轻用户的工作量,减少用户操作导致的出错率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据交换方法和装置。
背景技术
Kettle是一款开源的ETL(Extract Transform Load,抽取转换加载)工具,可以在Window、Linux、Unix等操作系统上运行,对数据处理采用可视化编程的方式,方便易操作,并且数据抽取高效稳定,是建立数据仓库的必备工具。
如图1所示,为部署Kettle客户端的组网示意图,Kettle客户端1安装在设备1上,Kettle客户端2安装在设备2上。为了将子数据库1的数据交换到子数据库3,则相应的处理流程为:用户登录到Kettle客户端1,为Kettle客户端1进行相关配置。然后,用户登录到Kettle客户端2,为Kettle客户端2进行相关配置。然后,用户重新登录到Kettle客户端1,触发Kettle客户端1抽取子数据库1的数据,并将数据存储到中心数据库。在所有数据成功存储到中心数据库后,用户重新登录到Kettle客户端2,触发Kettle客户端2抽取中心数据库的数据,并将数据存储到子数据库3,一直到所有数据成功存储到子数据库3。
在上述方式下,用户需要登录到Kettle客户端才能够进行操作和管理,如在数据交换过程中,用户需要频繁登录各个Kettle客户端,操作非常复杂,增加用户的工作量,而且用户的操作难度增大,还增加了用户操作的出错率。
发明内容
本申请提供一种数据交换方法,应用于数据交换系统中的服务端,所述数据交换系统还包括至少两个Kettle客户端,所述Kettle客户端运行在指定模式,且在指定模式下,所述Kettle客户端具有超文本传输协议HTTP服务功能,并通过监听所述服务端的请求来运行与所述请求匹配的任务,所述方法包括:
向至少两个Kettle客户端中的第一Kettle客户端发送第一类参数,以使所述第一Kettle客户端根据所述第一类参数创建针对第一子数据库的第一数据源;向所述至少两个Kettle客户端中的第二Kettle客户端发送第二类参数,以使所述第二Kettle客户端根据所述第二类参数创建针对第二子数据库的第二数据源;
向第一Kettle客户端发送第一控制消息,以使第一Kettle客户端根据所述第一数据源从所述第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;
向第二Kettle客户端发送第二控制消息,以使第二Kettle客户端从中心数据库中抽取数据,并根据所述第二数据源将抽取的数据存储到所述第二子数据库。
所述向第一Kettle客户端发送第一控制消息之后,所述向第二Kettle客户端发送第二控制消息之前,所述方法还包括:
接收所述第一Kettle客户端发送的统计信息,所述统计信息包括抽取状态;若所述抽取状态为未完成,则禁止向第二Kettle客户端发送第二控制消息;若所述抽取状态为已完成,则执行向第二Kettle客户端发送第二控制消息的过程。
所述第一类参数包括以下内容之一或者任意组合:所述第一子数据库对应的统一资源定位符URL信息、认证信息、端口信息、schema信息、数据表信息;
所述第二类参数包括以下内容之一或者任意组合:所述第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息;
所述统计信息还包括以下内容之一或者任意组合:抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、当前已抽取的数据速率。
所述向至少两个Kettle客户端中的第一Kettle客户端发送第一类参数之前,所述方法还包括:通过WEB页面接收用户请求消息,所述用户请求消息携带所述第一Kettle客户端的地址信息以及所述第二Kettle客户端的地址信息。
所述接收所述第一Kettle客户端发送的统计信息之后,所述方法还包括:
通过所述WEB页面展示所述统计信息。
本申请提供一种数据交换装置,应用于数据交换系统中的服务端,所述数据交换系统还包括至少两个Kettle客户端,所述Kettle客户端运行在指定模式,且在指定模式下,所述Kettle客户端具有超文本传输协议HTTP服务功能,并通过监听所述服务端的请求来运行与所述请求匹配的任务,所述装置包括:
第一发送模块,用于向所述至少两个Kettle客户端中的第一Kettle客户端发送第一类参数,以使所述第一Kettle客户端根据所述第一类参数创建针对第一子数据库的第一数据源;
第二发送模块,用于向所述至少两个Kettle客户端中的第二Kettle客户端发送第二类参数,以使所述第二Kettle客户端根据所述第二类参数创建针对第二子数据库的第二数据源;
第三发送模块,用于向所述第一Kettle客户端发送第一控制消息,以使所述第一Kettle客户端根据所述第一数据源从所述第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;
第四发送模块,用于向所述第二Kettle客户端发送第二控制消息,以使所述第二Kettle客户端从所述中心数据库中抽取数据,并根据所述第二数据源将抽取的数据存储到所述第二子数据库。
所述装置还包括:
接收模块,用于在所述第三发送模块向第一Kettle客户端发送第一控制消息之后,在所述第四发送模块向第二Kettle客户端发送第二控制消息之前,接收所述第一Kettle客户端发送的统计信息,其中,所述统计信息包括抽取状态;
所述第四发送模块,具体用于在向第二Kettle客户端发送第二控制消息的过程,若所述抽取状态为未完成,禁止向所述第二Kettle客户端发送第二控制消息;若所述抽取状态为已完成,向所述第二Kettle客户端发送第二控制消息。
所述第一类参数包括以下内容之一或者任意组合:所述第一子数据库对应的统一资源定位符URL信息、认证信息、端口信息、schema信息、数据表信息;
所述第二类参数包括以下内容之一或者任意组合:所述第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息;
所述统计信息还包括以下内容之一或者任意组合:抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、当前已抽取的数据速率。
所述接收模块,还用于在所述第一发送模块向所述至少两个Kettle客户端中的第一Kettle客户端发送第一类参数之前,通过WEB页面接收用户请求消息,其中,所述用户请求消息携带所述第一Kettle客户端的地址信息以及所述第二Kettle客户端的地址信息。
所述装置还包括:展示模块,用于在所述接收模块接收所述第一Kettle客户端发送的统计信息之后,通过所述WEB页面展示所述统计信息。
基于上述技术方案,本申请实施例中,服务端通过向第一Kettle客户端发送第一类参数,以使第一Kettle客户端根据第一类参数创建第一数据源,通过向第一Kettle客户端发送第一控制消息,以使第一Kettle客户端根据第一数据源从第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;服务端通过向第二Kettle客户端发送第二类参数,以使第二Kettle客户端根据第二类参数创建第二数据源,通过向第二Kettle客户端发送第二控制消息,以使第二Kettle客户端从中心数据库中抽取数据,根据第二数据源将抽取的数据存储到第二子数据库。基于上述方式,不需要用户登录到客户端,就可以由服务端管理多个客户端,远程控制多个客户端的功能,简化用户操作,便于客户端的维护管理,减轻用户的工作量,减少用户操作导致的出错率。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是部署Kettle客户端的组网示意图;
图2是本申请一种实施方式中的数据交换方法的流程图;
图3是本申请一种实施方式中的应用场景示意图;
图4是本申请一种实施方式中的服务端的硬件结构图;
图5是本申请一种实施方式中的数据交换装置的结构图。
具体实施方式
在本申请使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出了一种数据交换方法,该方法可以应用于数据交换系统,该数据交换系统可以包括服务端和至少两个Kettle客户端,Kettle客户端运行在指定模式,且在指定模式下,Kettle客户端具有HTTP(Hyper Text Transfer Protocol,超文本传输协议)服务功能,并通过监听服务端的请求来运行与该请求匹配的任务。至少两个Kettle客户端中包括第一Kettle客户端和第二Kettle客户端,第一Kettle客户端和第二Kettle客户端的数量可以为一个,也可以为多个,为了方便描述,后续以一个第一Kettle客户端,一个第二Kettle客户端为例。
综上所述,数据交换系统可以包括服务端、第一Kettle客户端、第二Kettle客户端、第一子数据库、第二子数据库、中心数据库,该方法用于将第一子数据库的数据交换到第二子数据库。其中,第一Kettle客户端用于管理第一子数据库,第二Kettle客户端用于管理第二子数据库,且服务端用于管理第一Kettle客户端和第二Kettle客户端。在上述应用场景下,参见图2所示,为该数据交换方法的流程图,该方法可以应用于服务端,该方法可以包括以下步骤:
步骤201,向第一Kettle客户端发送第一类参数,以使第一Kettle客户端根据该第一类参数创建针对第一子数据库的第一数据源;向第二Kettle客户端发送第二类参数,以使第二Kettle客户端根据该第二类参数创建针对第二子数据库的第二数据源。
在一个例子中,第一类参数可以包括但不限于以下内容之一或者任意组合:第一子数据库对应的URL(Uniform Resource Locator,统一资源定位符)信息、认证信息(如用户名、密码)、端口信息、schema信息、数据表信息(如数据表的表名、列名)。第二类参数包括但不限于以下内容之一或者任意组合:第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息。
在一个例子中,第一数据源存储有第一Kettle客户端与第一子数据库建立连接时使用的信息,如上述第一子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息等。基于第一子数据库对应的URL信息,第一Kettle客户端可以知道应该与哪个子数据库建立连接。基于第一子数据库对应的认证信息、端口信息,第一Kettle客户端可以访问该第一子数据库,并与该第一子数据库建立连接。基于第一子数据库对应的schema信息、数据表信息,第一Kettle客户端可以知道从第一子数据库的哪个数据表抽取数据。例如,假设schema信息为schema1、数据表信息为数据表1和数据表1的列20,由于第一子数据库下可以创建一个或者多个schema,且每个schema下可以包括一个或者多个数据表,因此,第一Kettle客户端可以从第一子数据库的所有schema中选取出schema1,并从schema1的所有数据表中选取出数据表1,第一Kettle客户端需要抽取该数据表1的第20列的所有数据。
在一个例子中,第二数据源存储有第二Kettle客户端与第二子数据库建立连接时使用的信息,如上述第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息等。基于第二子数据库对应的URL信息,第二Kettle客户端可以知道应该与哪个子数据库建立连接。基于第二子数据库对应的认证信息、端口信息,第二Kettle客户端可以访问该第二子数据库,并与该第二子数据库建立连接。基于第二子数据库对应的schema信息、数据表信息,第二Kettle客户端可以知道在第二子数据库的哪个schema下建立数据表。例如,假设schema信息为schema2、数据表信息为数据表2,则第二Kettle客户端可以在第二子数据库的schema2下建立一个数据表2,而且,针对从中心数据库抽取的数据,可以存储到数据表2中。
步骤202,向第一Kettle客户端发送第一控制消息,以使第一Kettle客户端根据该第一数据源从第一子数据库中抽取数据,并将抽取的数据存储到中心数据库。
在一个例子中,第一控制消息用于指示开始抽取数据,第一Kettle客户端在接收到该第一控制消息之后,获知可以开始抽取数据。第一Kettle客户端可以基于该第一数据源与第一子数据库建立连接,并基于该第一数据源从第一子数据库的指定数据表中抽取数据,如抽取数据表1的第20列的所有数据。而且,第一Kettle客户端在抽取到数据之后,还可以将抽取的数据存储到中心数据库。
步骤203,向第二Kettle客户端发送第二控制消息,以使第二Kettle客户端从中心数据库中抽取数据,并根据该第二数据源将抽取的数据存储到第二子数据库。
在一个例子中,第二控制消息用于指示开始抽取数据,第二Kettle客户端在接收到该第二控制消息之后,获知可以开始抽取数据。第二Kettle客户端可以基于该第二数据源与第二子数据库建立连接,从中心数据库中抽取数据,并基于该第二数据源将抽取的数据存储到第二子数据库的指定数据表中,如在第二子数据库的schema2下建立一个数据表2,并将抽取的数据存储到数据表2中。
在一个例子中,第一控制消息和第二控制消息还可以携带数据表信息,如数据表3,数据表3是中心数据库的数据表。第一Kettle客户端可以将抽取的数据存储到中心数据库的数据表3,第二Kettle客户端可以从中心数据库的数据表3抽取数据。
在一个例子中,在向第一Kettle客户端发送第一控制消息之后,在向第二Kettle客户端发送第二控制消息之前,服务端还可以接收第一Kettle客户端发送的统计信息(例如,服务端可以周期性的向第一Kettle客户端发送查询消息,第一Kettle客户端在每次接收到该查询消息时,均向服务端返回第一Kettle客户端当前的统计信息),该统计信息可以包括但不限于抽取状态,该抽取状态为未完成或者已完成。
在一个例子中,若抽取状态为未完成,则表示第一Kettle客户端还没有将所有待抽取数据均抽取完成,因此,服务端禁止向第二Kettle客户端发送第二控制消息。若抽取状态为已完成,则表示第一Kettle客户端已经将所有待抽取数据均抽取完成,因此,服务端可以向第二Kettle客户端发送第二控制消息。在另一个例子中,服务端还可以向用户显示抽取状态,由用户基于该抽取状态决定是否向第二Kettle客户端发送第二控制消息;若服务端接收到需要向第二Kettle客户端发送第二控制消息的命令,则服务端向第二Kettle客户端发送第二控制消息;若服务端接收到不需要向第二Kettle客户端发送第二控制消息的命令,则服务端禁止向第二Kettle客户端发送第二控制消息。
在一个例子中,在向第一Kettle客户端发送第一类参数之前,服务端还可以通过WEB页面接收用户请求消息,该用户请求消息可以携带第一Kettle客户端的地址信息(如IP地址)以及第二Kettle客户端的地址信息。基于此,服务器可以基于第一Kettle客户端的地址信息,向第一Kettle客户端发送第一类参数和第一控制消息;服务器可以基于第二Kettle客户端的地址信息,向第二Kettle客户端发送第二类参数和第二控制消息。
在一个例子中,在接收第一Kettle客户端发送的统计信息之后,服务端还可以通过WEB页面展示该统计信息,以使用户查看该统计信息。进一步的,该统计信息除了包括抽取状态之外,还可以包括但不限于以下内容之一或者任意组合:抽取结果(如抽取成功或者抽取失败)、日志信息、历史信息、执行时间、当前已抽取的数据数量、抽取错误的数据数量、当前已抽取的数据速率等。
在一个例子中,第一Kettle客户端和第二Kettle客户端为Kettle类型客户端,Kettle是一款开源的ETL工具,可以在Window、Linux、Unix等操作系统上运行,对数据处理采用可视化编程的方式,方便易操作,并且数据抽取高效稳定。
在传统方式中,Kettle客户端运行在Spoon模式,Spoon模式是一个IDE(Integrated Development Environment,集成开发环境),用户需要登录到Kettle客户端,才可以执行创建/编辑作业或转换,执行/调试作业或转换等功能。
而本申请实施例中,Kettle客户端运行在指定模式(如Carte模式)。针对运行在Carte模式的Kettle客户端,用户不需要登录到Kettle客户端,就可以通过服务端触发Kettle客户端执行创建/编辑作业或转换,执行/调试作业或转换等功能。其中,该Kettle客户端具有HTTP服务功能,并通过监听服务端的请求来运行任务,基于此,服务端可以通过向Kettle客户端发送HTTP类型的请求消息(如携带第一类参数的消息、携带第二类参数的消息、第一控制消息、第二控制消息等)。Kettle客户端在监听到HTTP类型的请求消息后,可以运行相关任务,例如,在监听到HTTP类型的第一控制消息后,执行任务“根据第一数据源从第一子数据库中抽取数据,将抽取的数据存储到中心数据库”。
基于上述技术方案,本申请实施例中,服务端通过向第一Kettle客户端发送第一类参数,以使第一Kettle客户端根据第一类参数创建第一数据源,通过向第一Kettle客户端发送第一控制消息,以使第一Kettle客户端根据第一数据源从第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;服务端通过向第二Kettle客户端发送第二类参数,以使第二Kettle客户端根据第二类参数创建第二数据源,通过向第二Kettle客户端发送第二控制消息,以使第二Kettle客户端从中心数据库中抽取数据,根据第二数据源将抽取的数据存储到第二子数据库。基于上述方式,不需要用户登录到客户端,就可以由服务端管理多个客户端,远程控制多个客户端的功能,简化用户操作,便于客户端的维护管理,减轻用户的工作量,减少用户操作导致的出错率。
以下结合图3所示的应用场景,对本申请实施例的技术方案进行说明。Kettle客户端1安装在设备1上,Kettle客户端2安装在设备2上。假设需要将子数据库1的数据交换到子数据库3,则子数据库1为第一子数据库,子数据库3为第二子数据库,Kettle客户端1为第一Kettle客户端,Kettle客户端2为第二Kettle客户端。
如图3所示,服务端作为Kettle客户端1、Kettle客户端2的控制中心,具有WEB页面功能,用户可以通过WEB页面对服务端进行管理和控制,继而触发服务端对Kettle客户端1、Kettle客户端2进行管理和控制。其中,服务端可以提供一个WEB处理框架(如基于Spring和Hibernate的WEB处理框架等),以此来处理WEB页面请求。而且,服务端还可以通过向Kettle客户端1、Kettle客户端2发送HTTP类型的请求消息,以控制Kettle客户端1、Kettle客户端2完成数据源的创建、数据转换和作业等操作。而且,服务端还可以通过WEB页面展示抽取状态、抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、抽取错误的数据数量、当前已抽取的数据速率等统计信息。
如图3所示,Kettle客户端1、Kettle客户端2运行在Carte模式,即运行后台的轻量级服务(如HTTP服务),针对运行在Carte模式的Kettle客户端,用户不需要登录到Kettle客户端,就可以通过服务端触发Kettle客户端执行创建/编辑作业或转换,执行/调试作业或转换等功能。而且,Kettle客户端具有HTTP服务功能,可以通过监听服务端的请求来运行任务。服务端通过向Kettle客户端发送HTTP类型的请求消息,实现Kettle客户端的管理和控制。而且,Kettle客户端在监听到HTTP类型的请求消息后,可以运行相关任务。
为了使Kettle客户端1、Kettle客户端2运行在Carte模式,可以为Kettle客户端1、Kettle客户端2增加Jetty的RESTful(Representational State Transfer,表述性状态转移)API(Application Programming Interface,应用程序编程接口)请求服务。例如添加一个ConnectionResource(连接资源)类,用来处理数据源相关的请求,包括数据源的创建、更新和删除等操作。针对其它功能,也可以通过添加ConnectionResource类的方式实现,对此不再赘述。最终,可以使Kettle客户端1、Kettle客户端2能够处理数据源、转换和作业等相关功能。
在上述应用场景下,本申请实施例提出的数据交换方法可以包括以下步骤:
步骤1、用户打开服务端的WEB界面,对各种配置项进行操作。
步骤2、服务端通过WEB页面接收用户请求消息,其中,该用户请求消息可以携带Kettle客户端1的IP地址1、Kettle客户端2的IP地址2。
在用户对各种配置项进行操作的过程中,用户会输入Kettle客户端1的IP地址1、Kettle客户端2的IP地址2,这样,服务端可以通过WEB页面接收到携带IP地址1、IP地址2的用户请求消息,并保存IP地址1、IP地址2。
步骤3、服务端确定需要将子数据库1中的数据交换到子数据库3。例如,需要将子数据库1的数据表1中的数据交换到子数据库3的数据表2中。
步骤4、基于Kettle客户端1的IP地址1,服务端向Kettle客户端1发送携带第一类参数的请求消息,第一类参数可以包括子数据库1的URL信息、认证信息(如用户名、密码)、端口信息、schema信息、数据表信息(如数据表1)。
步骤5、Kettle客户端1在接收到第一类参数之后,根据该第一类参数创建针对子数据库1的第一数据源。其中,该第一数据源存储有Kettle客户端1与子数据库1建立连接时使用的信息,如子数据库1的URL信息、认证信息、端口信息、schema信息(如schema1)、数据表信息(如数据表1)等。
基于子数据库1对应的URL信息,Kettle客户端1可以知道与子数据库1建立连接。基于子数据库1对应的认证信息、端口信息,Kettle客户端1可以访问子数据库1,并与子数据库1建立连接。基于子数据库1对应的schema1、数据表1,Kettle客户端1可以知道从子数据库1的schema1的数据表1抽取数据。
步骤6、基于Kettle客户端2的IP地址2,服务端向Kettle客户端2发送携带第二类参数的请求消息,第二类参数可以包括子数据库3的URL信息、认证信息(如用户名、密码)、端口信息、schema信息、数据表信息(如数据表2)。
步骤7、Kettle客户端2在接收到第二类参数之后,根据该第二类参数创建针对子数据库3的第二数据源。其中,该第二数据源存储有Kettle客户端2与子数据库3建立连接时使用的信息,如子数据库3的URL信息、认证信息、端口信息、schema信息(如schema2)、数据表信息(如数据表2)等。
基于子数据库3对应的URL信息,Kettle客户端2可以知道与子数据库3建立连接。基于子数据库3对应的认证信息、端口信息,Kettle客户端2可以访问子数据库3,并与子数据库3建立连接。基于子数据库3对应的schema2、数据表2,Kettle客户端2可以知道在子数据库3的schema2下建立一个数据表2,并将从中心数据库抽取的数据(该抽取过程在后续说明)存储到数据表2中。
步骤8、服务端确定开始将子数据库1中的数据交换到子数据库3中。
步骤9、服务端向Kettle客户端1发送第一控制消息,其中携带数据表3。
步骤10、Kettle客户端1收到第一控制消息后,根据第一数据源,从子数据库1的数据表1中抽取数据,并将抽取的数据存储到中心数据库的数据表3。
步骤11、在数据抽取过程中,服务端周期性的向Kettle客户端1发送查询消息,Kettle客户端1每次接收到该查询消息时,均向服务端返回当前的统计信息。其中,该统计信息可以包括但不限于以下内容之一或者任意组合:抽取状态(如未完成或者已完成)、抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、抽取错误的数据数量、当前已抽取的数据速率等。
步骤12、服务端在接收到该统计信息后,通过WEB页面展示该统计信息。
在通过WEB页面展示该统计信息之后,用户可以方便的查看该统计信息,可以了解整个数据交换的状态,以便判断如何进行之后的数据交换。
步骤13、服务端判断当前的抽取状态是否为已完成。如果是,执行步骤14,如果否,继续获取Kettle客户端1的统计信息,然后执行步骤13。
在一个例子中,服务端在通过WEB页面展示抽取状态后,若接收到需要向Kettle客户端2发送第二控制消息的命令,也可以执行步骤14。
步骤14、服务端向Kettle客户端2发送第二控制消息,其中携带数据表3。
服务端基于Kettle客户端1的IP地址1向Kettle客户端1发送第一控制消息,基于Kettle客户端2的IP地址2向Kettle客户端2发送第二控制消息。
步骤15、Kettle客户端2收到第二控制消息后,根据第二数据源,从中心数据库的数据表3中抽取数据,并将抽取的数据存储到子数据库3的数据表2。
步骤16、在数据抽取过程中,服务端周期性的向Kettle客户端2发送查询消息,Kettle客户端2每次接收到该查询消息时,均向服务端返回当前的统计信息。其中,该统计信息可以包括但不限于以下内容之一或者任意组合:抽取状态(如未完成或者已完成)、抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、抽取错误的数据数量、当前已抽取的数据速率等。
步骤17、服务端在接收到该统计信息后,通过WEB页面展示该统计信息。
在通过WEB页面展示该统计信息之后,用户可以方便的查看该统计信息,可以了解整个数据交换的状态,以便判断如何进行之后的数据交换。
步骤18、服务端判断当前的抽取状态是否为已完成。如果是,则结束流程,如果否,继续获取Kettle客户端2的统计信息,然后执行步骤18。
基于上述技术方案,本申请实施例中,不需要用户登录到Kettle客户端,就可以由服务端管理多个Kettle客户端,远程控制多个Kettle客户端的功能,简化用户操作,便于Kettle客户端的维护管理,减轻用户的工作量,减少用户操作导致的出错率。而且,各Kettle客户端的信息都可以在服务端的WEB页面上展现出来,用户可以查询各Kettle客户端的运行状态和结果,极大地简化了管理人员的维护操作,并支持实时动态扩展Kettle客户端。而且,终端设备可以登录到服务端的WEB界面,在WEB界面配置和管理所有的Kettle客户端。
基于与上述方法同样的申请构思,本申请实施例中还提供了一种数据交换装置,该数据交换装置可以应用在服务端上。其中,该数据交换装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的服务端的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图4所示,为本申请提出的数据交换装置所在的服务端的一种硬件结构图,除了图4所示的处理器、非易失性存储器外,服务端还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该服务端还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
如图5所示,为本申请提出的数据交换装置的结构图,所述数据交换装置应用于数据交换系统中的服务端,所述数据交换系统还包括至少两个Kettle客户端,所述Kettle客户端运行在指定模式,且在指定模式下,所述Kettle客户端具有超文本传输协议HTTP服务功能,并通过监听所述服务端的请求来运行与所述请求匹配的任务,所述装置包括:
第一发送模块11,用于向所述至少两个Kettle客户端中的第一Kettle客户端发送第一类参数,以使所述第一Kettle客户端根据所述第一类参数创建针对第一子数据库的第一数据源;
第二发送模块12,用于向所述至少两个Kettle客户端中的第二Kettle客户端发送第二类参数,以使所述第二Kettle客户端根据所述第二类参数创建针对第二子数据库的第二数据源;
第三发送模块13,用于向所述第一Kettle客户端发送第一控制消息,以使所述第一Kettle客户端根据所述第一数据源从所述第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;
第四发送模块14,用于向所述第二Kettle客户端发送第二控制消息,以使所述第二Kettle客户端从所述中心数据库中抽取数据,并根据所述第二数据源将抽取的数据存储到所述第二子数据库。
在一个例子中,所述数据交换装置还包括(在图中未体现):接收模块;用于在所述第三发送模块向第一Kettle客户端发送第一控制消息之后,在所述第四发送模块向第二Kettle客户端发送第二控制消息之前,接收所述第一Kettle客户端发送的统计信息,其中,所述统计信息包括抽取状态;所述第四发送模块14,具体用于在向第二Kettle客户端发送第二控制消息的过程,若所述抽取状态为未完成,禁止向所述第二Kettle客户端发送第二控制消息;若所述抽取状态为已完成,向所述第二Kettle客户端发送第二控制消息。
在一个例子中,所述第一类参数包括以下内容之一或者任意组合:所述第一子数据库对应的统一资源定位符URL信息、认证信息、端口信息、schema信息、数据表信息;所述第二类参数包括以下内容之一或者任意组合:所述第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息;所述统计信息还包括以下内容之一或者任意组合:抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、当前已抽取的数据速率。
在一个例子中,所述接收模块,还用于在所述第一发送模块向所述至少两个Kettle客户端中的第一Kettle客户端发送第一类参数之前,通过WEB页面接收用户请求消息,其中,所述用户请求消息携带所述第一Kettle客户端的地址信息以及所述第二Kettle客户端的地址信息。
在一个例子中,所述数据交换装置还包括(在图中未体现):展示模块;
所述展示模块,用于在所述接收模块接收所述第一Kettle客户端发送的统计信息之后,通过所述WEB页面展示所述统计信息。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可以采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本申请可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据交换方法,应用于数据交换系统中的服务端,其特征在于,所述数据交换系统还包括至少两个Kettle客户端,所述Kettle客户端运行在指定模式,且在指定模式下,所述Kettle客户端具有超文本传输协议HTTP服务功能,并通过监听所述服务端的请求来运行与所述请求匹配的任务,所述方法包括:
向至少两个Kettle客户端中的第一Kettle客户端发送第一类参数,以使所述第一Kettle客户端根据所述第一类参数创建针对第一子数据库的第一数据源;向所述至少两个Kettle客户端中的第二Kettle客户端发送第二类参数,以使所述第二Kettle客户端根据所述第二类参数创建针对第二子数据库的第二数据源;
向第一Kettle客户端发送第一控制消息,以使第一Kettle客户端根据所述第一数据源从所述第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;
向第二Kettle客户端发送第二控制消息,以使第二Kettle客户端从中心数据库中抽取数据,并根据所述第二数据源将抽取的数据存储到所述第二子数据库。
2.根据权利要求1所述的方法,其特征在于,
所述向第一Kettle客户端发送第一控制消息之后,所述向第二Kettle客户端发送第二控制消息之前,所述方法还包括:
接收所述第一Kettle客户端发送的统计信息,所述统计信息包括抽取状态;若所述抽取状态为未完成,则禁止向第二Kettle客户端发送第二控制消息;若所述抽取状态为已完成,则执行向第二Kettle客户端发送第二控制消息的过程。
3.根据权利要求2所述的方法,其特征在于,
所述第一类参数包括以下内容之一或者任意组合:所述第一子数据库对应的统一资源定位符URL信息、认证信息、端口信息、schema信息、数据表信息;
所述第二类参数包括以下内容之一或者任意组合:所述第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息;
所述统计信息还包括以下内容之一或者任意组合:抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、当前已抽取的数据速率。
4.根据权利要求1或2所述的方法,其特征在于,
所述向至少两个Kettle客户端中的第一Kettle客户端发送第一类参数之前,所述方法还包括:通过WEB页面接收用户请求消息,所述用户请求消息携带所述第一Kettle客户端的地址信息以及所述第二Kettle客户端的地址信息。
5.根据权利要求2所述的方法,其特征在于,
所述接收所述第一Kettle客户端发送的统计信息之后,所述方法还包括:
通过WEB页面展示所述统计信息。
6.一种数据交换装置,应用于数据交换系统中的服务端,其特征在于,所述数据交换系统还包括至少两个Kettle客户端,所述Kettle客户端运行在指定模式,且在指定模式下,所述Kettle客户端具有超文本传输协议HTTP服务功能,并通过监听所述服务端的请求来运行与所述请求匹配的任务,所述装置包括:
第一发送模块,用于向所述至少两个Kettle客户端中的第一Kettle客户端发送第一类参数,以使所述第一Kettle客户端根据所述第一类参数创建针对第一子数据库的第一数据源;
第二发送模块,用于向所述至少两个Kettle客户端中的第二Kettle客户端发送第二类参数,以使所述第二Kettle客户端根据所述第二类参数创建针对第二子数据库的第二数据源;
第三发送模块,用于向所述第一Kettle客户端发送第一控制消息,以使所述第一Kettle客户端根据所述第一数据源从所述第一子数据库中抽取数据,并将抽取的数据存储到中心数据库;
第四发送模块,用于向所述第二Kettle客户端发送第二控制消息,以使所述第二Kettle客户端从所述中心数据库中抽取数据,并根据所述第二数据源将抽取的数据存储到所述第二子数据库。
7.根据权利要求6所述的装置,其特征在于,还包括:
接收模块,用于在所述第三发送模块向第一Kettle客户端发送第一控制消息之后,在所述第四发送模块向第二Kettle客户端发送第二控制消息之前,接收所述第一Kettle客户端发送的统计信息,其中,所述统计信息包括抽取状态;
所述第四发送模块,具体用于在向第二Kettle客户端发送第二控制消息的过程,若所述抽取状态为未完成,禁止向所述第二Kettle客户端发送第二控制消息;若所述抽取状态为已完成,向所述第二Kettle客户端发送第二控制消息。
8.根据权利要求7所述的装置,其特征在于,
所述第一类参数包括以下内容之一或者任意组合:所述第一子数据库对应的统一资源定位符URL信息、认证信息、端口信息、schema信息、数据表信息;
所述第二类参数包括以下内容之一或者任意组合:所述第二子数据库对应的URL信息、认证信息、端口信息、schema信息、数据表信息;
所述统计信息还包括以下内容之一或者任意组合:抽取结果、日志信息、历史信息、执行时间、当前已抽取的数据数量、当前已抽取的数据速率。
9.根据权利要求7所述的装置,其特征在于,所述接收模块,还用于在所述第一发送模块向所述至少两个Kettle客户端中的第一Kettle客户端发送第一类参数之前,通过WEB页面接收用户请求消息,其中,所述用户请求消息携带所述第一Kettle客户端的地址信息以及所述第二Kettle客户端的地址信息。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括:
展示模块,用于在所述接收模块接收所述第一Kettle客户端发送的统计信息之后,通过WEB页面展示所述统计信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121280.5A CN106888264B (zh) | 2017-03-02 | 2017-03-02 | 一种数据交换方法和装置 |
CN201910833291.5A CN110661851A (zh) | 2017-03-02 | 2017-03-02 | 数据交换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710121280.5A CN106888264B (zh) | 2017-03-02 | 2017-03-02 | 一种数据交换方法和装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910833291.5A Division CN110661851A (zh) | 2017-03-02 | 2017-03-02 | 数据交换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106888264A CN106888264A (zh) | 2017-06-23 |
CN106888264B true CN106888264B (zh) | 2019-09-17 |
Family
ID=59180308
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910833291.5A Pending CN110661851A (zh) | 2017-03-02 | 2017-03-02 | 数据交换方法和装置 |
CN201710121280.5A Active CN106888264B (zh) | 2017-03-02 | 2017-03-02 | 一种数据交换方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910833291.5A Pending CN110661851A (zh) | 2017-03-02 | 2017-03-02 | 数据交换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN110661851A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102422032B1 (ko) * | 2017-08-16 | 2022-07-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN107563219B (zh) * | 2017-08-28 | 2020-04-24 | 深圳市华傲数据技术有限公司 | 一种数据库管理方法及装置 |
CN110888636A (zh) * | 2019-12-03 | 2020-03-17 | 中电工业互联网有限公司 | 一种基于Kettle的ETL Web应用系统架构方法 |
CN114143043A (zh) * | 2021-11-10 | 2022-03-04 | 杭州数梦工场科技有限公司 | 数据的安全传输方法及装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069142A (zh) * | 2015-08-18 | 2015-11-18 | 山大地纬软件股份有限公司 | 数据增量抽取转换与分发系统及方法 |
CN105389131A (zh) * | 2015-11-23 | 2016-03-09 | 江苏瑞中数据股份有限公司 | 一种流程工业生产系统数据采集方法 |
CN105701094A (zh) * | 2014-11-24 | 2016-06-22 | 北京航管科技有限公司 | 一种etl数据采集方法和装置 |
CN106126753A (zh) * | 2016-08-23 | 2016-11-16 | 易联众信息技术股份有限公司 | 基于大数据的增量抽取的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537B (zh) * | 2011-09-19 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN103455526A (zh) * | 2012-06-05 | 2013-12-18 | 杭州勒卡斯广告策划有限公司 | 一种etl数据处理方法、装置及系统 |
CN103902593B (zh) * | 2012-12-27 | 2018-09-07 | 中国移动通信集团河南有限公司 | 一种数据迁移的方法和装置 |
US10042849B2 (en) * | 2014-09-22 | 2018-08-07 | Oracle Financial Services Software Limited | Simplifying invocation of import procedures to transfer data from data sources to data targets |
CN104933202A (zh) * | 2015-07-15 | 2015-09-23 | 北京京东尚科信息技术有限公司 | 一种数据抽取、转换、加载etl的方法和设备 |
-
2017
- 2017-03-02 CN CN201910833291.5A patent/CN110661851A/zh active Pending
- 2017-03-02 CN CN201710121280.5A patent/CN106888264B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105701094A (zh) * | 2014-11-24 | 2016-06-22 | 北京航管科技有限公司 | 一种etl数据采集方法和装置 |
CN105069142A (zh) * | 2015-08-18 | 2015-11-18 | 山大地纬软件股份有限公司 | 数据增量抽取转换与分发系统及方法 |
CN105389131A (zh) * | 2015-11-23 | 2016-03-09 | 江苏瑞中数据股份有限公司 | 一种流程工业生产系统数据采集方法 |
CN106126753A (zh) * | 2016-08-23 | 2016-11-16 | 易联众信息技术股份有限公司 | 基于大数据的增量抽取的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110661851A (zh) | 2020-01-07 |
CN106888264A (zh) | 2017-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9917805B2 (en) | Collecting messages from a group chat window that mention a specific user | |
CN106888264B (zh) | 一种数据交换方法和装置 | |
CN103460723B (zh) | 用于更新多个动态图标面板的推送通知 | |
CN106209948B (zh) | 一种数据推送方法及装置 | |
US9661064B2 (en) | Systems and methods for deploying legacy software in the cloud | |
CN109155748A (zh) | 互联网云托管的自然语言交互式消息传送系统服务器协作 | |
US9852220B1 (en) | Distributed workflow management system | |
CN106657314A (zh) | 跨数据中心数据同步系统及方法 | |
US20200112606A1 (en) | Synchronizing a device using push notifications | |
CN109076010A (zh) | 互联网云托管的自然语言交互式消息传送系统用户解析器 | |
US20160226973A1 (en) | Enterprise peer-to-peer storage and method of managing peer network storage | |
CN103780627A (zh) | NativeAPP、WebAPP与类微信APP信息同步系统 | |
US11226982B2 (en) | Synchronization of offline instances | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN113626002A (zh) | 一种服务执行方法及装置 | |
CN103414764A (zh) | 一种云平台弹性存储系统及其弹性存储实现方法 | |
CN116325705A (zh) | 边缘计算环境中的管理任务流 | |
CN106302368B (zh) | 事务处理方法及装置 | |
US10841363B2 (en) | Streaming API subscription without loss of events | |
CN104094299A (zh) | 从发布的日历检索可用性信息 | |
US11093527B2 (en) | Framework for continuous processing of a set of documents by multiple software applications | |
CN114466005A (zh) | 物联网设备编排 | |
CN103685485A (zh) | 移动终端VoIP通讯音频管理系统 | |
CN109213955A (zh) | 数据处理方法及相关设备 | |
CN106302125B (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 |