CN111966451A - 一种数据抽取方法、系统、设备以及介质 - Google Patents
一种数据抽取方法、系统、设备以及介质 Download PDFInfo
- Publication number
- CN111966451A CN111966451A CN202010725707.4A CN202010725707A CN111966451A CN 111966451 A CN111966451 A CN 111966451A CN 202010725707 A CN202010725707 A CN 202010725707A CN 111966451 A CN111966451 A CN 111966451A
- Authority
- CN
- China
- Prior art keywords
- project package
- data
- background service
- package
- container corresponding
- 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
- 238000013075 data extraction Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000000977 initiatory effect Effects 0.000 claims abstract description 13
- 238000004806 packaging method and process Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013508 migration Methods 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 230000007613 environmental effect Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 108010026228 mRNA guanylyltransferase Proteins 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据抽取方法,包括以下步骤:将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;收集kubernetes集群所在的环境信息;将环境信息分别写入前端UI项目包和后台服务项目包的配置文件;利用前端UI项目包的配置文件生成前端UI项目包对应的镜像以及利用后台服务项目包的配置文件生成后台服务项目包的镜像,并将镜像分别部署到kubernetes集群的容器中;通过前端UI项目包对应的容器接收数据抽取指令,并向后台服务项目包对应的容器发起访问请求,以实现数据抽取。本发明提出的方案对前端UI和后台服务模块利用微服务架构实现,仅需少量地编辑部分配置文件即可做到多场景下的兼容与运行,保证高可用。
Description
技术领域
本发明涉及数据抽取领域,具体涉及一种数据抽取方法、系统、设备以及存储介质。
背景技术
常规的设计与部署中,系统运行与数据管理之间存在着较大的物理分离,数据具有明显的独立性,对于有些大型系统,在设计上具有非常大的复杂度,解决方案多样化,但是数据的管理方式在设计时往往会趋于一致地遵从业界统一的原则进行标准化实现。通常来说,为获得足够的高可靠性与高可用性,信息系统往往会利用独立的数据库管理系统存储和管理所要处理的数据,数据库管理系统可以通过众多数据操控手段提供非常好的解决方案,信息系统中所有可预见的数据操作流程基本上可以在数据库管理系统中获得满足。
数据作用如此重要,某些场景下将其进行迁移往往存在着比较亟需的特殊需要,如果系统中数据规模非常大,数据复杂度多样化,而且在迁移过程中还有着比较特殊的计算需要,那么处理这种问题时会变得非常棘手,像传统那样的定制化数据功能开发显然不具备通用性而且很难做到复杂场景下的准确处理,所以,如何探寻优良的解决方案同时又可以保证高可用是个很大的难题。
发明内容
有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种数据抽取方法,包括以下步骤:
将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;
收集所述kubernetes集群所在的环境信息;
将所述环境信息分别写入所述前端UI项目包和所述后台服务项目包的配置文件;
利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像分别部署到所述kubernetes集群的容器中;
通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,以实现数据抽取。
在一些实施例中,向所述后台服务项目包对应的容器发起访问请求,进一步包括:
所述kubernetes集群将所述访问请求分发至多个正常状态的副本以实现数据抽取。
在一些实施例中,通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,进一步包括:
响应于所述前端UI项目包对应的容器检测到源数据库对应的对象被拖拽到第一预设位置,向所述后台服务项目包对应的容器发送源数据库的配置信息以及待抽取数据,以建立与所述源数据库的连接;
响应于所述前端UI项目包对应的容器检测到目标数据库对应的对象被拖拽到第二预设位置,向所述后台服务项目包对应的容器发送目标数据库的配置信息,以建立与所述目标数据库的连接;
响应于所述前端UI项目包对应的容器接收到执行数据抽取的指令,向所述后台服务项目包对应的容器发起访问请求以实现所述待抽取数据由所述源数据库迁移到所述目标数据库。
在一些实施例中,还包括:
通过有向箭头将所述第一预设位置与所述第二预设位置进行连接。
在一些实施例中,还包括:
将待抽取的数据从所述源数据库中检索出并封装成数据对象返回所述前端UI项目包对应的容器以进行展示。
在一些实施例中,还包括:
响应于所述前端UI项目包对应的容器接收到数据检索的指令,将待检索的字段和相应的数据值进行封装后发送到所述后台服务项目包对应的容器,以使所述后台服务项目包对应的容器在相应的数据库检索所述待检索的字段并进行反馈。
在一些实施例中,还包括:
响应于所述前端UI项目包对应的容器接收到数据修改指令,将待修改的数据进行封装后发送到所述后台服务项目包对应的容器,以使所述后台服务项目包对应的容器在相应的数据库修改所述待修改的数据并进行反馈。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种数据抽取系统,包括:
迁移模块,所述迁移模块配置为将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;
收集模块,所述收集模块配置为收集所述kubernetes集群所在的环境信息;
写入模块,所述写入模块配置为将所述环境信息分别写入所述前端UI项目包和所述后台服务项目包的配置文件;
部署模块,所述部署模块配置为利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像分别部署到所述kubernetes集群的容器中;
数据抽取模块,所述数据抽取模块配置为通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,以实现数据抽取。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种数据抽取方法的步骤。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种数据抽取方法的步骤。
本发明具有以下有益技术效果之一:本发明提出的方案对前端UI和后台服务模块利用微服务架构实现,保持开放性实现思想,在打包部署到生产环境时因地制宜,巧妙地仅需少量地编辑部分配置文件即可做到多场景下的兼容与运行,充分利用kubernetes内置的负载均衡,保证高可用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明的实施例提供的数据抽取方法的流程示意图;
图2为本发明的实施例提供的数据抽取系统的结构示意图;
图3为本发明的实施例提供的计算机设备的结构示意图;
图4为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
需要说明的是,在本发明的实施例中,ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。Kettle是一个开源的ETL工具,由Java开发,支持Windows、Linux、Unix。
根据本发明的一个方面,本发明的实施例提出一种数据抽取方法,如图1所示,其可以包括步骤:
S1,将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;
S2,收集所述kubernetes集群所在的环境信息;
S3,将所述环境信息分别写入所述前端UI项目包和所述后台服务项目包的配置文件;
S4,利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像分别部署到所述kubernetes集群的容器中;
S5,通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,以实现数据抽取。
本发明提出的方案对前端UI和后台服务模块利用微服务架构实现,保持开放性实现思想,在打包部署到生产环境时因地制宜,巧妙地仅需少量地编辑部分配置文件即可做到多场景下的兼容与运行,充分利用kubernetes内置的负载均衡,保证高可用。
在一些实施例中,在步骤S1,将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群中,具体的,可以利用微服务架构,开发一个前端UI模块和一个提供后台服务的业务模块;为实现可迁移,需要遵循微服务架构的标准,同时应当做到尽可能完整化的封装以最大化降低迁移过程中因环境因素的不同而做出的配置性变更,这些配置包括但不限于配置中心、IP、端口、数据库的地址、用户名、密码以及其他各类项目运行所依赖的各大独立配置项;为保证灵活地制作转换与作业,前端UI可以利用HTML与JavaScript编码实现可拖拽式配置的图形化操作功能,操作方法与数据管理方式尽可能趋于一致,保存时可以将绘制的信息通过接口传递给后台接收;同时,前端UI还可以实现上传与下载转换与作业文件,便于业务数据的共享;提供一些增删改查系统级基础数据的功能。在后台业务模块中,实现处理前端发送的访问请求,并将请求数据对应解析;引入kettle的依赖包,在编码中实现对kettle基本功能的开发,包括系统初始化,针对转换与作业的检索、预览、上传、修改、导出、解析、存储、执行等等,充分利用依赖包中提供的数据处理方法;将模块封装成独立的模块包,做好基于微服务架构下的相关配置,然后将两个模块对应的项目包迁移到Kubernetes集群中。
在一些实施例中,在步骤S4中,利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像部署到所述kubernetes集群的容器中,具体的,针对前端UI项目包可以执行以下操作:确认各个环境信息,并写入前端UI模块的配置文件;利用node命令将前端UI模块打包;若未安装,则需要安装docker,然后配置好nginx.conf文件中各项必要参数,包括server、location等,配置Dockerfile文件,其中,定制的镜像都是基于FROM的镜像,nginx就是定制需要的基础镜像,后续的操作都是基于nginx,COPY复制指令是用来从上下文目录中复制文件或者目录到容器里指定路径,所以这里需要根据打包路径与环境部署路径灵活指定其中的源路径与目标路径;利用docker build命令构建docker镜像,利用docker tag标记镜像,利用docker push推送镜像;配置deployment.yaml,Deploymentcontroller会将Pod和ReplicaSet的实际状态改变到目标状态,其中包括镜像地址、命名空间、副本个数、端口等等各个必要的数据需要写入其中,然后利用kubectl create命令执行创建;配置service.yaml,写入端口等配置信息,然后利用kubectl create命令执行创建;kubernetes创建出pod完成。针对后端服务模块可以执行以下操作:确认各个环境信息,并写入后端服务模块的配置文件;利用mvn clean install docker:build-DskipTests将项目包打包成镜像;利用docker tag标记镜像,利用docker push推送镜像;配置deployment.yaml,Deployment controller会将Pod和ReplicaSet的实际状态改变到目标状态,其中包括镜像地址、命名空间、副本个数、端口等等各个必要的数据需要写入其中,然后利用kubectl create命令执行创建;配置service.yaml,写入端口等配置信息,然后利用kubectl create命令执行创建。kubernetes创建出pod完成。最后变更kubernetes中的configmap,将创建出的新的pod信息写入其中
需要说明的是,在配置Deployment时,会囊括副本个数的配置,将来需要几个pod做负载均衡,spec:replicas的配置项设置为多少即可,之后便无需用户干涉,当前端发过来请求时,会被kubernetes自动分派至多个pod,提供均衡服务。
在一些实施例中,步骤S5,向所述后台服务项目包对应的容器发起访问请求,进一步包括:
所述kubernetes集群将所述访问请求分发至多个正常状态的副本以实现数据抽取。
其中,前端UI向后台服务发起的访问请求,是kubernetes自动均衡分发至多个副本来执行的,如果其中一个或多个副本因异常出现故障,那么kubernetes就不再向这些副本分发请求,而是分派给其他正常状态的副本,在本发明的实施例中,当需要处理多个表数据的抽取工作,就会并发发起多次调用,那么均衡分发至多个副本后,对外表现为多个副本均衡提供数据抽取的执行工作,这里具备的高可用特性,是kubernetes只分发请求给正常可用的副本以达成既定任务来保证的,有效避免了因服务节点异常导致的请求被放弃、找不到服务等等各种异常现象。
在一些实施例中,步骤S5,通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,进一步包括:
响应于所述前端UI项目包对应的容器检测到源数据库对应的对象被拖拽到第一预设位置,向所述后台服务项目包对应的容器发送源数据库的配置信息以及待抽取数据,以建立与所述源数据库的连接;
响应于所述前端UI项目包对应的容器检测到目标数据库对应的对象被拖拽到第二预设位置,向所述后台服务项目包对应的容器发送目标数据库的配置信息,以建立与所述目标数据库的连接;
响应于所述前端UI项目包对应的容器接收到执行数据抽取的指令,向所述后台服务项目包对应的容器发起访问请求以实现所述待抽取数据由所述源数据库迁移到所述目标数据库。
在一些实施例中,还包括:
通过有向箭头将所述第一预设位置与所述第二预设位置进行连接。
具体的,当部署工作全部完成后,用户便可以直接利用其中所开发的各个功能,以将很多个表中的数据从Oracle(源数据库)抽取到MySQL(目标数据库)为例,前期准备为,已经针对环境信息作出预测并且合理配置了副本个数,在目标数据库即MySQL数据库中已经分别创建了一样的表结构。利用UI前端和后台服务开发的功能,点击初始化按钮,录入配置信息,判断系统数据库是否已初始化,如果没有则初始化系统数据库;分别绘制多个转换,每个转换处理一个表的数据抽取工作,就单个转换来说,通过拖拽的方式移入一个表输入节点,并双击后完成源数据库连接的配置与SQL脚本的录入,这个脚本为一个select语句,从源表中检索出待抽取数据;通过拖拽的方式移入一个表输出节点,为其指定目标数据库连接、目标表、字段映射关系等配置项;将两个节点用拖拽的方式建立从表输入节点到表输出节点的有向关联关系,两者之间会有个箭头连接起来,代表数据流会从表输入节点输送至表输出节点;给转换定义好名称、描述等基本信息后点击保存,数据会被封装然后调用有关接口传送至后台解析、存储;点击执行按钮后前端向后台发起请求,后台接收后会拉取转换信息然后执行转换中定义的数据抽取工作,即从源数据库中执行sql脚本检索出数据然后向目标数据库的目标表按照字段映射关系予以保存。
当前端UI向后台发起访问请求时,利用ajax来提供技术支持,不同的操作类型采取不同的策略,后台对不同类型的请求采取对应的接收策略,请求方式针对查询、新增、修改、删除分别对应GET、POST、PUT、DELETE,后台利用springframwork实现接口、函数定义与业务处理,我们的立意下包含多种业务操作,前后台在对接时都需要合理分类。
数据抽取时,用户绘制好转换或作业,点击保存,这个时候前台将组织的数据封装成一个对象,然后,利用JavaScript调用ajax的方法,配置好请求中关于url、type、data等等各个参数,向既定URL发起调用请求,等待结果返回,后台服务接收到访问请求后,解析其中传过来的数据包,然后完成存储,并返回成功的结果,前台接收到结果后向操作用户提示成功信息。
在一些实施例中,在进行初始化系统数据库时,当后台服务接收到前端发送的数据库在ip、端口、用户名、密码等各方面的配置数据后,建立数据库连接,然后实例化数据库连接对象,调用sdk中的初始化方法初始化系统数据库,之后便会自动在数据库中创建系统运行所需要的各种表。
在一些实施例中,还包括:
将待抽取的数据从所述源数据库中检索出并封装成数据对象返回所述前端UI项目包对应的容器以进行展示。
具体的,可以通过定义接口,配置请求访问方式,然后在实现该接口的业务类中,将待获取的数据的标识传给数据库访问方法,这些方法分别将与该数据有关联的所有明细数据从表中一一检索出来,然后封装成一个整体的业务数据对象,完成后将其返回。
在一些实施例中,还包括:
响应于所述前端UI项目包对应的容器接收到数据检索的指令,将待检索的字段和相应的数据值进行封装后发送到所述后台服务项目包对应的容器,以使所述后台服务项目包对应的容器在相应的数据库检索所述待检索的字段并进行反馈。
具体的,可以利用各种查询条件检索数据,并将数据封装为既定数据结构予以返回,供将来前端UI灵活展示之用。例如可以通过定义接口,配置请求访问方式,然后在实现该接口的业务类中,把前端传过来的检索字段与数据值封装至特定的对象参数中,调取数据库的访问方法并传递该参数对象,将检索出的数据集利用有关包中提供的方法导出成对应的转换文件或作业文件,然后将其以数据流的方式返回给请求端。
在一些实施例中,还包括:
响应于所述前端UI项目包对应的容器接收到数据修改指令,将待修改的数据进行封装后发送到所述后台服务项目包对应的容器,以使所述后台服务项目包对应的容器在相应的数据库修改所述待修改的数据并进行反馈。
具体的,可以通过定义接口,配置请求访问方式,然后在实现该接口的业务类中,传递的转换或作业文件通过字节流接收,利用有关包中的方法识别这些文件,并初始化为数据对象,然后从该对象中一一解析各个属性;传递的转换与作业数据通过封装的特定的对象予以接收,转储并构建至数据对象中,然后从该对象中一一解析各个属性。
在一些实施例中,还可以通过定义接口,配置请求访问方式,然后在实现该接口的业务类中,将前台发送的修改后的转换与作业通过封装的特定对象予以接收,转储并构建至数据对象中,然后从该对象中一一解析各个属性,并将这些新数据更新至数据库。在解析封装数据及文件后生成的数据对象对应存储至数据库表时,可以根据引入的与kettle有关的sdk包中提供的对象,定义数据对接流程,然后将自定义解析的数据通过该对象中暴露的方法将对象实例化,然后调用sdk中的数据保存方法,保存到数据库中。或者还可以从数据库中加载待执行的转换或者作业数据,将加载的数据实例化至转化或者作业有关的对象,然后利用依赖包中sdk中提供的start方法启动该转换或者作业。
本发明提出的方案对前端UI和后台服务模块利用微服务架构实现,保持开放性实现思想,在打包部署到生产环境时因地制宜,巧妙地仅需少量地编辑部分配置文件即可做到多场景下的兼容与运行,充分利用kubernetes内置的负载均衡,保证高可用。
基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种基于邮箱的远程控制系统400,如图2所示,包括:
迁移模块401,所述迁移模块配置401为将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;
收集模块402,所述收集模块402配置为收集所述kubernetes集群所在的环境信息;
写入模块403,所述写入模块403配置为将所述环境信息分别写入所述前端UI项目包和所述后台服务项目包的配置文件;
部署模块404,所述部署模块404配置为利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像分别部署到所述kubernetes集群的容器中;
数据抽取模块405,所述数据抽取模块405配置为通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,以实现数据抽取。
基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备501,包括:
至少一个处理器520;以及
存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种数据抽取方法的步骤。
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种数据抽取方法的步骤。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种数据抽取方法,其特征在于,包括以下步骤:
将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;
收集所述kubernetes集群所在的环境信息;
将所述环境信息分别写入所述前端UI项目包和所述后台服务项目包的配置文件;
利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像分别部署到所述kubernetes集群的容器中;
通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,以实现数据抽取。
2.如权利要求1所述的方法,其特征在于,向所述后台服务项目包对应的容器发起访问请求,进一步包括:
所述kubernetes集群将所述访问请求分发至多个正常状态的副本以实现数据抽取。
3.如权利要求1所述的方法,其特征在于,通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,进一步包括:
响应于所述前端UI项目包对应的容器检测到源数据库对应的对象被拖拽到第一预设位置,向所述后台服务项目包对应的容器发送源数据库的配置信息以及待抽取数据,以建立与所述源数据库的连接;
响应于所述前端UI项目包对应的容器检测到目标数据库对应的对象被拖拽到第二预设位置,向所述后台服务项目包对应的容器发送目标数据库的配置信息,以建立与所述目标数据库的连接;
响应于所述前端UI项目包对应的容器接收到执行数据抽取的指令,向所述后台服务项目包对应的容器发起访问请求以实现所述待抽取数据由所述源数据库迁移到所述目标数据库。
4.如权利要求3所述的方法,其特征在于,还包括:
通过有向箭头将所述第一预设位置与所述第二预设位置进行连接。
5.如权利要求3所述的方法,其特征在于,还包括:
将待抽取的数据从所述源数据库中检索出并封装成数据对象返回所述前端UI项目包对应的容器以进行展示。
6.如权利要求1所述的方法,其特征在于,还包括:
响应于所述前端UI项目包对应的容器接收到数据检索的指令,将待检索的字段和相应的数据值进行封装后发送到所述后台服务项目包对应的容器,以使所述后台服务项目包对应的容器在相应的数据库检索所述待检索的字段并进行反馈。
7.如权利要求1所述的方法,其特征在于,还包括:
响应于所述前端UI项目包对应的容器接收到数据修改指令,将待修改的数据进行封装后发送到所述后台服务项目包对应的容器,以使所述后台服务项目包对应的容器在相应的数据库修改所述待修改的数据并进行反馈。
8.一种数据抽取系统,其特征在于,包括:
迁移模块,所述迁移模块配置为将基于微服务架构构建的前端UI项目包和后台服务项目包迁移到kubernetes集群;
收集模块,所述收集模块配置为收集所述kubernetes集群所在的环境信息;
写入模块,所述写入模块配置为将所述环境信息分别写入所述前端UI项目包和所述后台服务项目包的配置文件;
部署模块,所述部署模块配置为利用所述前端UI项目包的配置文件生成所述前端UI项目包对应的镜像以及利用所述后台服务项目包的配置文件生成所述后台服务项目包的镜像,并将所述镜像分别部署到所述kubernetes集群的容器中;
数据抽取模块,所述数据抽取模块配置为通过所述前端UI项目包对应的容器接收数据抽取指令,并向所述后台服务项目包对应的容器发起访问请求,以实现数据抽取。
9.一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-7任意一项所述的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-7任意一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725707.4A CN111966451B (zh) | 2020-07-24 | 2020-07-24 | 一种数据抽取方法、系统、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725707.4A CN111966451B (zh) | 2020-07-24 | 2020-07-24 | 一种数据抽取方法、系统、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111966451A true CN111966451A (zh) | 2020-11-20 |
CN111966451B CN111966451B (zh) | 2023-01-06 |
Family
ID=73362831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010725707.4A Active CN111966451B (zh) | 2020-07-24 | 2020-07-24 | 一种数据抽取方法、系统、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111966451B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783570A (zh) * | 2021-01-19 | 2021-05-11 | 中原银行股份有限公司 | 基于服务网格的应用迁移方法、系统和介质 |
WO2022111267A1 (en) * | 2020-11-25 | 2022-06-02 | International Business Machines Corporation | Anticipated containerized infrastructure used in performing cloud migration |
CN115202711A (zh) * | 2022-06-29 | 2022-10-18 | 易保网络技术(上海)有限公司 | 数据发布方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038051A (zh) * | 2017-11-03 | 2018-05-15 | 深圳市牛鼎丰科技有限公司 | 微服务的发布方法、装置、计算机设备和存储介质 |
CN110134455A (zh) * | 2019-04-12 | 2019-08-16 | 平安医疗健康管理股份有限公司 | 一种应用管理系统及方法 |
CN110543326A (zh) * | 2019-08-27 | 2019-12-06 | 山东浪潮人工智能研究院有限公司 | 一种基于区块链的DevOps智能运维方法 |
US10534674B1 (en) * | 2018-07-11 | 2020-01-14 | EMC IP Holding Company, LLC | Scalable, persistent, high performance and crash resilient metadata microservice |
-
2020
- 2020-07-24 CN CN202010725707.4A patent/CN111966451B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108038051A (zh) * | 2017-11-03 | 2018-05-15 | 深圳市牛鼎丰科技有限公司 | 微服务的发布方法、装置、计算机设备和存储介质 |
US10534674B1 (en) * | 2018-07-11 | 2020-01-14 | EMC IP Holding Company, LLC | Scalable, persistent, high performance and crash resilient metadata microservice |
CN110134455A (zh) * | 2019-04-12 | 2019-08-16 | 平安医疗健康管理股份有限公司 | 一种应用管理系统及方法 |
CN110543326A (zh) * | 2019-08-27 | 2019-12-06 | 山东浪潮人工智能研究院有限公司 | 一种基于区块链的DevOps智能运维方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022111267A1 (en) * | 2020-11-25 | 2022-06-02 | International Business Machines Corporation | Anticipated containerized infrastructure used in performing cloud migration |
US11748153B2 (en) | 2020-11-25 | 2023-09-05 | International Business Machines Corporation | Anticipated containerized infrastructure used in performing cloud migration |
GB2616578A (en) * | 2020-11-25 | 2023-09-13 | Ibm | Anticipated containerized infrastructure used in performing cloud migration |
CN112783570A (zh) * | 2021-01-19 | 2021-05-11 | 中原银行股份有限公司 | 基于服务网格的应用迁移方法、系统和介质 |
CN115202711A (zh) * | 2022-06-29 | 2022-10-18 | 易保网络技术(上海)有限公司 | 数据发布方法及系统 |
CN115202711B (zh) * | 2022-06-29 | 2023-11-14 | 易保网络技术(上海)有限公司 | 数据发布方法及系统 |
WO2024001679A1 (zh) * | 2022-06-29 | 2024-01-04 | 易保网络技术(上海)有限公司 | 数据发布方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111966451B (zh) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966451B (zh) | 一种数据抽取方法、系统、设备以及介质 | |
US11836158B2 (en) | Deployment of container-based computer environments | |
US11861334B2 (en) | Providing communication between a client system and a process-based software application | |
US10831453B2 (en) | Connectors framework | |
US8949364B2 (en) | Apparatus, method and system for rapid delivery of distributed applications | |
US6334158B1 (en) | User-interactive system and method for integrating applications | |
US10084650B2 (en) | Graphical user interface for customizing graphical representations based on registry data | |
US5950011A (en) | System using designer editor and knowledge base for configuring preconfigured software in an open system in a distributed environment | |
US8006224B2 (en) | System and method for unified visualization of two-tiered applications | |
JP2000132521A (ja) | 異なるソ―ス間でのデ―タ項目移動および階層オブジェクト指向表現のための方法および装置 | |
US20030093420A1 (en) | Method and system for retrieving sharable information using a hierarchically dependent directory structure | |
JP2010503905A (ja) | 発見ウェブサービス | |
CA3076778A1 (en) | System and method for automated source code generation for database conversion | |
FR2730327A1 (fr) | Outil de generation et d'execution de commandes a interface graphique | |
CN111800452A (zh) | 在输入/输出设备集群中的服务部署 | |
US20080117808A1 (en) | Automatic configuration of network elements based on service contract definitions | |
US6317743B1 (en) | System for retrieving compiling and loading management information in a digital data network | |
CN116893807A (zh) | 使用浏览器设计机器人流程自动化机器人的系统和方法 | |
US20220094760A1 (en) | Apparatus and method for generating proxy for dockerized artificial intelligence library and ros distributed system based on dockerized artificial intelligence library | |
CN1828596A (zh) | 在数据库内部表示的文件系统 | |
CN113672334A (zh) | 一种容器管理方法及装置 | |
EP1712987A1 (en) | System and Method for Unified Visualization of Two-Tiered Applications | |
WO2024011627A1 (zh) | 大数据集群部署方法以及基于大数据集群的数据处理方法 | |
CN117648198B (zh) | 应用适配方法及装置、设备及存储介质 | |
WO2024011628A1 (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 |