CN109582723A - 分布式etl数据采集方法及装置 - Google Patents

分布式etl数据采集方法及装置 Download PDF

Info

Publication number
CN109582723A
CN109582723A CN201811454518.7A CN201811454518A CN109582723A CN 109582723 A CN109582723 A CN 109582723A CN 201811454518 A CN201811454518 A CN 201811454518A CN 109582723 A CN109582723 A CN 109582723A
Authority
CN
China
Prior art keywords
etl
task
data
unit
acquisition
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
Application number
CN201811454518.7A
Other languages
English (en)
Other versions
CN109582723B (zh
Inventor
王杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Di Di Information Technology Ltd By Share Ltd
Original Assignee
Shenzhen Di Di Information Technology Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Di Di Information Technology Ltd By Share Ltd filed Critical Shenzhen Di Di Information Technology Ltd By Share Ltd
Priority to CN201811454518.7A priority Critical patent/CN109582723B/zh
Publication of CN109582723A publication Critical patent/CN109582723A/zh
Application granted granted Critical
Publication of CN109582723B publication Critical patent/CN109582723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种分布式ETL数据采集方法及装置,通过将ETL采集任务集中在ETL数据服务器配置、加入任务列表,而后分配给分布设置的多个ETL执行服务器,多台ETL执行服务器根据ETL数据服务器的待执行任务表里面的数据来获取任务,从而使得原本单台机器单独执行ETL数据采集变为支持多台、分工实现数据采集,大大提高了采集的效率。

Description

分布式ETL数据采集方法及装置
技术领域
本发明涉及一种数据采集方法,尤其是指一种分布式ETL数据采集方法及装置。
背景技术
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。
而信息是现代企业的重要资源,是企业运用科学管理、决策分析的基础。目前,大多数企业花费大量的资金和时间来构建联机事务处理OLTP的业务系统和办公自动化系统,用来记录事务处理的各种相关数据。因此,企业是否最大化地利用已存在的数据资源转换为信息、知识,已经成了提高其核心竞争力的主要瓶颈。而ETL则是主要的一个技术手段。
但是,现有企业内部通常并行多个内部系统,而现有ETL数据采集是通过单一ETL采集服务器进行数据采集,因此在进行数据统一处理和分析时,往往需要耗费大量的时间和精力做数据采集的工作,特别是在多采集任务及数据量比较大的情况下,采集的效率及进度无法保证。
发明内容
本发明所要解决的技术问题是:提供一种分布式ETL数据采集方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:一种分布式ETL数据采集方法,包括采集任务准备分发流程以及采集任务执行流程;
其中,采集任务准备分发流程包括步骤:
S11)ETL数据服务器根据触发规则生成当前采集任务;
S12)ETL数据服务器判断当前采集任务在任务列表中是否存在,否则继续步骤;
S13)ETL数据服务器将当前采集任务加入任务列表;
S14)分布设置的多个ETL执行服务器发送任务请求指令;
S15)ETL数据服务器接收来自ETL执行服务器的任务请求指令;
S16)ETL数据服务器判断是否存在并发任务请求指令,否则继续步骤;
S17)ETL数据服务器依次将任务列表中当前采集任务按接收到ETL执行服务器的任务请求指令按时间先后进行匹配并反馈至ETL执行服务器;
S18)匹配成功的ETL执行服务器请求获取采集任务的基本信息;
S19)ETL数据服务器根据任务列表中采集任务对应信息查询其基本信息并发送至对应匹配成功的ETL执行服务器;
所述采集任务执行流程包括步骤:
S21)匹配成功的ETL执行服务器根据接收到的采集任务的基本信息执行数据采集。
上述中,所述步骤S16),若是则转到并发处理子流程;
所述并发处理子流程包括步骤,
S161)ETL数据服务器从任务列表中取出一个任务;
S162)ETL数据服务器调用ORACLE数据库的行锁机制,筛选其中一个ETL执行服务器的任务请求指令与该任务匹配,并将该任务记录上锁,而后修改任务状态为执行中,最后对该任务记录进行解锁;
S163)ETL数据服务器向匹配成功的ETL执行服务器返回配对成功信息,向其余ETL执行服务器配对失败信息;
所述采集任务执行流程的S21后包括步骤:
S22)ETL执行服务器向ETL数据服务器反馈采集任务完成信息;
S23)将该任务执行状态更新为执行完成。
上述中,所述步骤S12中,是则ETL数据服务器判断任务列表中的当前采集任务对应的历史采集任务的执行状态,若为执行完成则转到步骤S13,若为执行中则不将当前任务加入任务列表中返回步骤S11,若为待执行则不将当前任务加入任务列表中返回步骤S11。
上述中,所述步骤S13中,ETL数据服务器对日期替换标志表进行初始化。
上述中,还包括初始化设置流程,初始化设置流程包括,
创建目标表的步骤;所述目标表与源表字段为一一对应关系,目标表的字段长度不小于源表字段长度;
配置ETL基本信息的步骤;所述ETL基本信息包括ETL所属项目、任务名称、任务执行失败告警方式、告警人员、配置告警有效时间段及任务描述;
配置ETL采集数据源信息的步骤,步骤通过选择配置的数据源确认数据来源库类型及库中所有表信息,并且选择对应要采集的表,默认情况下,自动生成对应表的源数据查询语句;
ETL采集类型配置的步骤;所述ETL采集类型包括全量采集及增量采集;
配置ETL目标数据源信息的步骤,步骤选择数据库源及表,而后对数据来源表字段类型与目标源表进行检查,确保采集的数据不会因为数据超长或者类型不匹配影响数据落地,最终自动生成目标数据表的insert语句;
配置ETL任务执行周期的步骤;所述周期为按分钟、按小时、按日、按周、按月为单位的一个或多个。
本发明还提供了一种分布式ETL数据采集装置,包括采集任务准备分发模块以及采集任务执行模块;
其中,采集任务准备分发模块包括:
触发单元,用于ETL数据服务器根据触发规则生成当前采集任务,而后转到任务判断单元;
任务判断单元,用于ETL数据服务器判断当前采集任务在任务列表中是否存在,否则转到任务添加单元;
任务添加单元,用于ETL数据服务器将当前采集任务加入任务列表,而后转到任务请求单元;
任务请求单元,用于分布设置的多个ETL执行服务器发送任务请求指令,而后转到请求接收单元;
请求接收单元,用于ETL数据服务器接收来自ETL执行服务器的任务请求指令,而后转到并发判断单元;
并发判断单元,用于ETL数据服务器判断是否存在并发任务请求指令,否则转到匹配单元,而后转到匹配单元;
匹配单元,用于ETL数据服务器依次将任务列表中当前采集任务按接收到ETL执行服务器的任务请求指令按时间先后进行匹配并反馈至ETL执行服务器,而后转到信息请求单元;
信息请求单元,用于匹配成功的ETL执行服务器请求获取采集任务的基本信息,而后转到任务反馈单元;
任务反馈单元,用于ETL数据服务器根据任务列表中采集任务对应信息查询其基本信息并发送至对应匹配成功的ETL执行服务器;
所述采集任务执行模块包括:
采集执行单元,用于匹配成功的ETL执行服务器根据接收到的采集任务的基本信息执行数据采集。
上述中,所述并发判断单元中,若是存在并发任务请求指令,则转到并发处理单元;
所述并发处理单元包括,
取出子单元,用于ETL数据服务器从任务列表中取出一个任务,而后转到选取上锁子单元;
选取上锁子单元,用于ETL数据服务器调用ORACLE数据库的行锁机制,筛选其中一个ETL执行服务器的任务请求指令与该任务匹配,并将该任务记录上锁,而后修改任务状态为执行中,最后对该任务记录进行解锁,而后转到匹配结果返回子单元;
匹配结果返回子单元,用于ETL数据服务器向匹配成功的ETL执行服务器返回配对成功信息,向其余ETL执行服务器配对失败信息,而后转到匹配单元;
所述采集任务执行模块的采集执行单元转到完成反馈单元:
完成反馈单元,用于ETL执行服务器向ETL数据服务器反馈采集任务完成信息,而后转到状态更新单元;
状态更新单元,用于将该任务执行状态更新为执行完成。
上述中,所述任务判断单元中,当前采集任务在任务列表中存在则ETL数据服务器判断任务列表中当前采集任务对应的历史采集任务的执行状态,若为执行完成则转到任务添加单元,若为执行中则不将当前任务加入任务列表中返回触发单元,若为待执行则不将当前任务加入任务列表中返回触发单元。
上述中,所述任务添加单元,还用于ETL数据服务器对日期替换标志表进行初始化。
上述中,还包括初始化设置模块,初始化设置模块包括,
创建目标表单元;所述目标表与源表字段为一一对应关系,目标表的字段长度不小于源表字段长度;
配置ETL基本信息单元;所述ETL基本信息包括ETL所属项目、任务名称、任务执行失败告警方式、告警人员、配置告警有效时间段及任务描述;
配置ETL采集数据源信息单元,用于通过选择配置的数据源确认数据来源库类型及库中所有表信息,并且选择对应要采集的表,默认情况下,自动生成对应表的源数据查询语句;
ETL采集类型配置单元;所述ETL采集类型包括全量采集及增量采集;
配置ETL目标数据源信息单元,用于选择数据库源及表,而后对数据来源表字段类型与目标源表进行检查,确保采集的数据不会因为数据超长或者类型不匹配影响数据落地,最终自动生成目标数据表的insert语句;
配置ETL任务执行周期单元;所述周期为按分钟、按小时、按日、按周、按月为单位的一个或多个。
本发明的有益效果在于:通过将ETL采集任务集中在ETL数据服务器配置、加入任务列表,而后分配给分布设置的多个ETL执行服务器,多台ETL执行服务器根据ETL数据服务器的待执行任务表里面的数据来获取任务,从而使得原本单台机器单独执行ETL数据采集变为支持多台、分工实现数据采集,大大提高了采集的效率。
附图说明
下面结合附图详述本发明的具体结构
图1为本发明方法的总流程示意图;
图2为本发明方法的并发处理子流程的流程示意图;
图3为本发明方法的采集任务执行流程的流程示意图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,本发明提供了一种分布式ETL数据采集方法,包括采集任务准备分发 流程以及采集任务执行流程
其中,采集任务准备分发流程包括步骤:
S11)ETL数据服务器根据触发规则生成当前采集任务;
此处“触发”既可以是人工点击“立即执行”,又或者Oracle里面job任务扫描调度表比较时间触发到待执行任务表里面。
S12)ETL数据服务器判断当前采集任务在任务列表中是否存在,否则继续步骤;
S13)ETL数据服务器将当前采集任务加入任务列表;
S14)分布设置的多个ETL执行服务器发送任务请求指令;
S15)ETL数据服务器接收来自ETL执行服务器的任务请求指令;
S16)ETL数据服务器判断是否存在并发任务请求指令,否则继续步骤;
S17)ETL数据服务器依次将任务列表中当前采集任务按接收到ETL执行服务器的任务请求指令按时间先后进行匹配并反馈至ETL执行服务器;
S18)匹配成功的ETL执行服务器请求获取采集任务的基本信息;
S19)ETL数据服务器根据任务列表中采集任务对应信息查询其基本信息并发送至对应匹配成功的ETL执行服务器;
举例:获得执行权限的机器根据待执行任务表里面的jobid来查询这个任务的一些基本信息(预处理,正处理,后处理)最后根据这些基本信息,用来根据配置的数据源的信息来连接数据库执行,预处理,用来做一些正处理之前的操作(比如清空目标表数据),启动logstash用来执行正处理(执行logstash语法命令来完成数据的导入导出工作),用来根据配置的数据源的信息来连接数据库执行后处理(比如删除数据)。
所述采集任务执行流程包括步骤:
S21)匹配成功的ETL执行服务器根据接收到的采集任务的基本信息执行数据采集。
从上述描述可知,本发明的有益效果在于:通过将ETL采集任务集中在ETL数据服务器配置、加入任务列表,而后分配给分布设置的多个ETL执行服务器,多台ETL执行服务器根据ETL数据服务器的待执行任务表里面的数据来获取任务,从而使得原本单台机器单独执行ETL数据采集变为支持多台、分工实现数据采集,大大提高了采集的效率。
实施例1
上述中,所述步骤S16),若是则转到并发处理子流程;
参见图2,所述并发处理子流程包括步骤,
S161)ETL数据服务器从任务列表中取出一个任务;
S162)ETL数据服务器调用ORACLE数据库的行锁机制,筛选其中一个ETL执行服务器的任务请求指令与该任务匹配,并将该任务记录上锁,而后修改任务状态为执行中,最后对该任务记录进行解锁;
S163)ETL数据服务器向匹配成功的ETL执行服务器返回配对成功信息,向其余ETL执行服务器配对失败信息。
所述采集任务执行流程的S21后包括步骤:
S22)ETL执行服务器向ETL数据服务器反馈采集任务完成信息;
S23)将该任务执行状态更新为执行完成。
本实施例中提供了一种当有多个ETL执行服务器并发争抢ETL数据服务器上同一个任务情况的处理机制。该机制充分利用ORACLE数据库的行锁机制,当发生多台ETL执行服务器同一时刻并发争抢任务时,ORACLE数据库的行锁机制将匹配第一条指令更新任务执行状态为执行中并对数据上锁,完成更新后,释放锁,并返回更新成功1条的结果。当第二指令更新时,由于任务状态已经成为执行中,因此下一个ETL执行服务器的第二条指令更新失败(其余ETL执行服务器的指令更新相同),均返回影响0行的结果。因此ETL执行服务器获取更新状态为1的情况下表示由该ETL执行服务器获取到当前采集任务,如果更新状态为0则表示本服务器没有争抢到当前采集任务。
实施例2
上述中,所述步骤S12中,是则ETL数据服务器判断任务列表中当前采集任务对应的历史采集任务的执行状态,若为执行完成则转到步骤S13,若为执行中则不将当前任务加入任务列表中返回步骤S11,若为待执行则不将当前任务加入任务列表中返回步骤S11。
本实施例中,通过对任务列表中与当前采集任务相同的任务是否已经存在。因为数据采集通常会根据一定执行周期反复检测采集(增量采集),因此只需要设定一个采集任务,根据设定的周期反复启用即可。但为了避免短时间内重复采集,又或者是相同采集任务前后重叠,因此增加当前采集任务与任务列表的比对过程,进一步结合判断执行状态加以优化。
同时,采用该方法后,任务列表可对执行过、执行中以及待执行的所有任务予以保留,以便核查任务的执行状况。
实施例3
上述中,所述步骤S13中,ETL数据服务器对日期替换标志表进行初始化。
本实施例中,ETL数据服务器对日期替换标志表进行初始化是为了拼接输入语句的时候,在通常情况下来替换条件的具体值。例如替换数据来源sql里面的宏字串,从而将原来宏所表示的字串替换为有真实含义的数据。
实施例4
上述中,还包括初始化设置流程,初始化设置流程包括,
创建目标表的步骤;所述目标表与源表字段为一一对应关系,目标表的字段长度不小于源表字段长度;
配置ETL基本信息的步骤;所述ETL基本信息包括ETL所属项目、任务名称、任务执行失败告警方式、告警人员、配置告警有效时间段及任务描述;
配置ETL采集数据源信息的步骤,步骤通过选择配置的数据源确认数据来源库类型及库中所有表信息,并且选择对应要采集的表,默认情况下,自动生成对应表的源数据查询语句;
ETL采集类型配置的步骤;所述ETL采集类型包括全量采集及增量采集;
配置ETL目标数据源信息的步骤,步骤选择数据库源及表,而后对数据来源表字段类型与目标源表进行检查,确保采集的数据不会因为数据超长或者类型不匹配影响数据落地,最终自动生成目标数据表的insert语句;
配置ETL任务执行周期的步骤;所述周期为按分钟、按小时、按日、按周、按月为单位的一个或多个。
本实施例提供了整个方法初始化可配置的信息类型,包括ETL基本信息、ETL采集数据源信息、ETL采集类型以及ETL任务执行周期。从而满足ETL数据采集的各种应用需求。
实施例5
如图3所示,ETL执行服务器根据接收到的采集任务的基本信息执行数据采集的步骤S21可具体包括:
S211)判断是否获取到采集任务,是则继续步骤,否则继续等待;
S212)判断是否有空闲线程,是则继续,否则继续等待有空闲线程;
S213)根据接收到的采集任务的基本信息判断输入、输出的数据类型,并对应完成数据采集输入、输出的配置;
S214)执行预处理,若预处理顺利,则继续步骤,异常则转到步骤S217;
S215)拼接配置文件,对接收到的采集任务的基本信息对应的配置文件进行拼接,若拼接顺利则继续步骤,异常则转到步骤S217;
拼接输入语句的时候,一般是用做条件的具体值来替换
S216)执行总处理,根据接收到的采集任务的基本信息执行数据采集。
S217)形成告警信息反馈,而后返回步骤S211。
本发明还提供了一种分布式ETL数据采集装置,包括采集任务准备分发模块以及采集任务执行模块;
其中,采集任务准备分发模块包括:
触发单元,用于ETL数据服务器根据触发规则生成当前采集任务,而后转到任务判断单元;
任务判断单元,用于ETL数据服务器判断当前采集任务在任务列表中是否存在,否则转到任务添加单元;
任务添加单元,用于ETL数据服务器将当前采集任务加入任务列表,而后转到任务请求单元;
任务请求单元,用于分布设置的多个ETL执行服务器发送任务请求指令,而后转到请求接收单元;
请求接收单元,用于ETL数据服务器接收来自ETL执行服务器的任务请求指令,而后转到并发判断单元;
并发判断单元,用于ETL数据服务器判断是否存在并发任务请求指令,否则转到匹配单元,而后转到匹配单元;
匹配单元,用于ETL数据服务器依次将任务列表中当前采集任务按接收到ETL执行服务器的任务请求指令按时间先后进行匹配并反馈至ETL执行服务器,而后转到信息请求单元;
信息请求单元,用于匹配成功的ETL执行服务器请求获取采集任务的基本信息,而后转到任务反馈单元;
任务反馈单元,用于ETL数据服务器根据任务列表中采集任务对应信息查询其基本信息并发送至对应匹配成功的ETL执行服务器;
所述采集任务执行模块包括:
采集执行单元,用于匹配成功的ETL执行服务器根据接收到的采集任务的基本信息执行数据采集。
从上述描述可知,本发明的有益效果在于:通过将ETL采集任务集中在ETL数据服务器配置、加入任务列表,而后分配给分布设置的多个ETL执行服务器,多台ETL执行服务器根据ETL数据服务器的待执行任务表里面的数据来获取任务,从而使得原本单台机器单独执行ETL数据采集变为支持多台、分工实现数据采集,大大提高了采集的效率。
实施例6
上述中,所述并发判断单元中,若是存在并发任务请求指令,则转到并发处理单元;
所述并发处理单元包括,
取出子单元,用于ETL数据服务器从任务列表中取出一个任务,而后转到选取上锁子单元;
选取上锁子单元,用于ETL数据服务器调用ORACLE数据库的行锁机制,筛选其中一个ETL执行服务器的任务请求指令与该任务匹配,并将该任务记录上锁,而后修改任务状态为执行中,最后对该任务记录进行解锁,而后转到匹配结果返回子单元;
匹配结果返回子单元,用于ETL数据服务器向匹配成功的ETL执行服务器返回配对成功信息,向其余ETL执行服务器配对失败信息,而后转到匹配单元;
所述采集任务执行模块的采集执行单元转到完成反馈单元:
完成反馈单元,用于ETL执行服务器向ETL数据服务器反馈采集任务完成信息,而后转到状态更新单元;
状态更新单元,用于将该任务执行状态更新为执行完成。
本实施例中提供了一种当有多个ETL执行服务器并发争抢ETL数据服务器上同一个任务情况的处理机制。该机制充分利用ORACLE数据库的行锁机制,当发生多台ETL执行服务器同一时刻并发争抢任务时,ORACLE数据库的行锁机制将匹配第一条指令更新任务执行状态为执行中并对数据上锁,完成更新后,释放锁,并返回更新成功1条的结果。当第二指令更新时,由于任务状态已经成为执行中,因此下一个ETL执行服务器的第二条指令更新失败(其余ETL执行服务器的指令更新相同),均返回影响0行的结果。因此ETL执行服务器获取更新状态为1的情况下表示由该ETL执行服务器获取到当前采集任务,如果更新状态为0则表示本服务器没有争抢到当前采集任务。
实施例7
上述中,所述任务判断单元中,当前采集任务在任务列表中存在则ETL数据服务器判断任务列表中当前采集任务对应的历史采集任务的执行状态,若为执行完成则转到任务添加单元,若为执行中则不将当前任务加入任务列表中返回触发单元,若为待执行则不将当前任务加入任务列表中返回触发单元。
本实施例中,通过对任务列表中与当前采集任务相同的任务是否已经存在。因为数据采集通常会根据一定执行周期反复检测采集(增量采集),因此只需要设定一个采集任务,根据设定的周期反复启用即可。但为了避免短时间内重复采集,又或者是相同采集任务前后重叠,因此增加当前采集任务与任务列表的比对过程,进一步结合判断执行状态加以优化。
同时,采用该方法后,任务列表可对执行过、执行中以及待执行的所有任务予以保留,以便核查任务的执行状况。
实施例8
上述中,所述任务添加单元,还用于ETL数据服务器对日期替换标志表进行初始化。
本实施例中,ETL数据服务器对日期替换标志表进行初始化是为了拼接输入语句的时候,在通常情况下来替换条件的具体值。例如替换数据来源sql里面的宏字串,从而将原来宏所表示的字串替换为有真实含义的数据。
实施例9
上述中,还包括初始化设置模块,初始化设置模块包括,
创建目标表单元;所述目标表与源表字段为一一对应关系,目标表的字段长度不小于源表字段长度;
配置ETL基本信息单元;所述ETL基本信息包括ETL所属项目、任务名称、任务执行失败告警方式、告警人员、配置告警有效时间段及任务描述;
配置ETL采集数据源信息单元,用于通过选择配置的数据源确认数据来源库类型及库中所有表信息,并且选择对应要采集的表,默认情况下,自动生成对应表的源数据查询语句;
ETL采集类型配置单元;所述ETL采集类型包括全量采集及增量采集;
配置ETL目标数据源信息单元,用于选择数据库源及表,而后对数据来源表字段类型与目标源表进行检查,确保采集的数据不会因为数据超长或者类型不匹配影响数据落地,最终自动生成目标数据表的insert语句;
配置ETL任务执行周期单元;所述周期为按分钟、按小时、按日、按周、按月为单位的一个或多个。
本实施例提供了整个方法初始化可配置的信息类型,包括ETL基本信息、ETL采集数据源信息、ETL采集类型以及ETL任务执行周期。从而满足ETL数据采集的各种应用需求。
实施例10
ETL执行服务器根据接收到的采集任务的基本信息执行数据采集的采集执行单元可具体包括:
获取判断子单元,用于判断是否获取到采集任务,是则转到现成判断子单元,否则继续等待;
现成判断子单元,用于判断是否有空闲线程,是则转到类型判断子单元,否则继续等待有空闲线程;
类型判断子单元,用于根据接收到的采集任务的基本信息判断输入、输出的数据类型,并对应完成数据采集输入、输出的配置,而后转到预处理子单元;
预处理子单元,用于执行预处理,若预处理顺利,则转到拼接配置子单元,异常则转到告警子单元;
拼接配置子单元,用于对接收到的采集任务的基本信息对应的配置文件进行拼接,若拼接顺利则转到总处理子单元,异常则转到告警子单元;
总处理子单元,用于根据接收到的采集任务的基本信息执行数据采集,而后转到完成反馈单元。
告警子单元,用于形成告警信息反馈,而后返回获取判断子单元。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种分布式ETL数据采集方法,其特征在于:包括采集任务准备分发流程以及采集任务执行流程;
其中,采集任务准备分发流程包括步骤:
S11)ETL数据服务器根据触发规则生成当前采集任务;
S12)ETL数据服务器判断当前采集任务在任务列表中是否存在,否则继续步骤;
S13)ETL数据服务器将当前采集任务加入任务列表;
S14)分布设置的多个ETL执行服务器发送任务请求指令;
S15)ETL数据服务器接收来自ETL执行服务器的任务请求指令;
S16)ETL数据服务器判断是否存在并发任务请求指令,否则继续步骤;
S17)ETL数据服务器依次将任务列表中当前采集任务按接收到ETL执行服务器的任务请求指令按时间先后进行匹配并反馈至ETL执行服务器;
S18)匹配成功的ETL执行服务器请求获取采集任务的基本信息;
S19)ETL数据服务器根据任务列表中采集任务对应信息查询其基本信息并发送至对应匹配成功的ETL执行服务器;
所述采集任务执行流程包括步骤:
S21)匹配成功的ETL执行服务器根据接收到的采集任务的基本信息执行数据采集。
2.如权利要求1所述的分布式ETL数据采集方法,其特征在于:所述步骤S16),若是则转到并发处理子流程;
所述并发处理子流程包括步骤,
S161)ETL数据服务器从任务列表中取出一个任务;
S162)ETL数据服务器调用ORACLE数据库的行锁机制,筛选其中一个ETL执行服务器的任务请求指令与该任务匹配,并将该任务记录上锁,而后修改任务状态为执行中,最后对该任务记录进行解锁;
S163)ETL数据服务器向匹配成功的ETL执行服务器返回配对成功信息,向其余ETL执行服务器配对失败信息;
所述采集任务执行流程的S21后包括步骤:
S22)ETL执行服务器向ETL数据服务器反馈采集任务完成信息;
S23)将该任务执行状态更新为执行完成。
3.如权利要求1所述的分布式ETL数据采集方法,其特征在于:所述步骤S12中,是则ETL数据服务器判断任务列表中当前采集任务对应的历史采集任务的执行状态,若为执行完成则转到步骤S13,若为执行中则不将当前任务加入任务列表中返回步骤S11,若为待执行则不将当前任务加入任务列表中返回步骤S11。
4.如权利要求1所述的分布式ETL数据采集方法,其特征在于:所述步骤S13中,ETL数据服务器对日期替换标志表进行初始化。
5.如权利要求1所述的分布式ETL数据采集方法,其特征在于:还包括初始化设置流程,初始化设置流程包括,
创建目标表的步骤;所述目标表与源表字段为一一对应关系,目标表的字段长度不小于源表字段长度;
配置ETL基本信息的步骤;所述ETL基本信息包括ETL所属项目、任务名称、任务执行失败告警方式、告警人员、配置告警有效时间段及任务描述;
配置ETL采集数据源信息的步骤,步骤通过选择配置的数据源确认数据来源库类型及库中所有表信息,并且选择对应要采集的表,默认情况下,自动生成对应表的源数据查询语句;
ETL采集类型配置的步骤;所述ETL采集类型包括全量采集及增量采集;
配置ETL目标数据源信息的步骤,步骤选择数据库源及表,而后对数据来源表字段类型与目标源表进行检查,确保采集的数据不会因为数据超长或者类型不匹配影响数据落地,最终自动生成目标数据表的insert语句;
配置ETL任务执行周期的步骤;所述周期为按分钟、按小时、按日、按周、按月为单位的一个或多个。
6.一种分布式ETL数据采集装置,其特征在于:包括采集任务准备分发模块以及采集任务执行模块;
其中,采集任务准备分发模块包括:
触发单元,用于ETL数据服务器根据触发规则生成当前采集任务,而后转到任务判断单元;
任务判断单元,用于ETL数据服务器判断当前采集任务在任务列表中是否存在,否则转到任务添加单元;
任务添加单元,用于ETL数据服务器将当前采集任务加入任务列表,而后转到任务请求单元;
任务请求单元,用于分布设置的多个ETL执行服务器发送任务请求指令,而后转到请求接收单元;
请求接收单元,用于ETL数据服务器接收来自ETL执行服务器的任务请求指令,而后转到并发判断单元;
并发判断单元,用于ETL数据服务器判断是否存在并发任务请求指令,否则转到匹配单元,而后转到匹配单元;
匹配单元,用于ETL数据服务器依次将任务列表中当前采集任务按接收到ETL执行服务器的任务请求指令按时间先后进行匹配并反馈至ETL执行服务器,而后转到信息请求单元;
信息请求单元,用于匹配成功的ETL执行服务器请求获取采集任务的基本信息,而后转到任务反馈单元;
任务反馈单元,用于ETL数据服务器根据任务列表中采集任务对应信息查询其基本信息并发送至对应匹配成功的ETL执行服务器;
所述采集任务执行模块包括:
采集执行单元,用于匹配成功的ETL执行服务器根据接收到的采集任务的基本信息执行数据采集。
7.如权利要求6所述的分布式ETL数据采集装置,其特征在于:所述并发判断单元中,若是存在并发任务请求指令,则转到并发处理单元;
所述并发处理单元包括,
取出子单元,用于ETL数据服务器从任务列表中取出一个任务,而后转到选取上锁子单元;
选取上锁子单元,用于ETL数据服务器调用ORACLE数据库的行锁机制,筛选其中一个ETL执行服务器的任务请求指令与该任务匹配,并将该任务记录上锁,而后修改任务状态为执行中,最后对该任务记录进行解锁;
匹配结果返回子单元,用于ETL数据服务器向匹配成功的ETL执行服务器返回配对成功信息,向其余ETL执行服务器配对失败信息,而后转到匹配单元;
所述采集任务执行模块的采集执行单元转到完成反馈单元:
完成反馈单元,用于ETL执行服务器向ETL数据服务器反馈采集任务完成信息,而后转到状态更新单元;
状态更新单元,用于将该任务执行状态更新为执行完成。
8.如权利要求6所述的分布式ETL数据采集装置,其特征在于:所述任务判断单元中,当前采集任务在任务列表中存在则ETL数据服务器判断任务列表中当前采集任务对应的历史采集任务的执行状态,若为执行完成则转到任务添加单元,若为执行中则不将当前任务加入任务列表中返回触发单元,若为待执行则不将当前任务加入任务列表中返回触发单元。
9.如权利要求6所述的分布式ETL数据采集装置,其特征在于:所述任务添加单元,还用于ETL数据服务器对日期替换标志表进行初始化。
10.如权利要求6所述的分布式ETL数据采集装置,其特征在于:还包括初始化设置模块,初始化设置模块包括,
创建目标表单元;所述目标表与源表字段为一一对应关系,目标表的字段长度不小于源表字段长度;
配置ETL基本信息单元;所述ETL基本信息包括ETL所属项目、任务名称、任务执行失败告警方式、告警人员、配置告警有效时间段及任务描述;
配置ETL采集数据源信息单元,用于通过选择配置的数据源确认数据来源库类型及库中所有表信息,并且选择对应要采集的表,默认情况下,自动生成对应表的源数据查询语句;
ETL采集类型配置单元;所述ETL采集类型包括全量采集及增量采集;
配置ETL目标数据源信息单元,用于选择数据库源及表,而后对数据来源表字段类型与目标源表进行检查,确保采集的数据不会因为数据超长或者类型不匹配影响数据落地,最终自动生成目标数据表的insert语句;
配置ETL任务执行周期单元;所述周期为按分钟、按小时、按日、按周、按月为单位的一个或多个。
CN201811454518.7A 2018-11-30 2018-11-30 分布式etl数据采集方法及装置 Active CN109582723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811454518.7A CN109582723B (zh) 2018-11-30 2018-11-30 分布式etl数据采集方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811454518.7A CN109582723B (zh) 2018-11-30 2018-11-30 分布式etl数据采集方法及装置

Publications (2)

Publication Number Publication Date
CN109582723A true CN109582723A (zh) 2019-04-05
CN109582723B CN109582723B (zh) 2021-08-17

Family

ID=65925901

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811454518.7A Active CN109582723B (zh) 2018-11-30 2018-11-30 分布式etl数据采集方法及装置

Country Status (1)

Country Link
CN (1) CN109582723B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198914A (zh) * 2019-12-12 2020-05-26 山西云时代技术有限公司 基于oracle数据库归档日志的整库实时数据采集方法
CN113051019A (zh) * 2021-03-31 2021-06-29 北京和信融慧信息科技有限公司 流程任务执行管控方法、装置以及设备
CN113704336A (zh) * 2021-08-17 2021-11-26 内蒙古申科国土技术有限责任公司 基于地理信息大数据的生态环境监测分析方法及系统
CN118093707A (zh) * 2024-04-28 2024-05-28 北方健康医疗大数据科技有限公司 一种多模态数据采集方法、系统、终端及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290588A (zh) * 2008-03-07 2008-10-22 重庆邮电大学 一种微嵌入式实时任务调度器及调度方法
US8200614B2 (en) * 2008-04-30 2012-06-12 SAP France S.A. Apparatus and method to transform an extract transform and load (ETL) task into a delta load task
CN104111983A (zh) * 2014-06-30 2014-10-22 中国科学院信息工程研究所 一种开放式的多源数据采集系统及方法
CN104915341A (zh) * 2014-03-10 2015-09-16 中国科学院沈阳自动化研究所 可视化多数据库etl集成方法和系统
CN105100259A (zh) * 2015-08-18 2015-11-25 北京京东尚科信息技术有限公司 一种分布式定时任务执行方法和系统
CN105701094A (zh) * 2014-11-24 2016-06-22 北京航管科技有限公司 一种etl数据采集方法和装置
CN106407002A (zh) * 2016-08-22 2017-02-15 平安科技(深圳)有限公司 数据处理任务执行方法和装置
CN107766387A (zh) * 2016-08-22 2018-03-06 南京中兴软件有限责任公司 一种分布式数据etl处理方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101290588A (zh) * 2008-03-07 2008-10-22 重庆邮电大学 一种微嵌入式实时任务调度器及调度方法
US8200614B2 (en) * 2008-04-30 2012-06-12 SAP France S.A. Apparatus and method to transform an extract transform and load (ETL) task into a delta load task
CN104915341A (zh) * 2014-03-10 2015-09-16 中国科学院沈阳自动化研究所 可视化多数据库etl集成方法和系统
CN104111983A (zh) * 2014-06-30 2014-10-22 中国科学院信息工程研究所 一种开放式的多源数据采集系统及方法
CN105701094A (zh) * 2014-11-24 2016-06-22 北京航管科技有限公司 一种etl数据采集方法和装置
CN105100259A (zh) * 2015-08-18 2015-11-25 北京京东尚科信息技术有限公司 一种分布式定时任务执行方法和系统
CN106407002A (zh) * 2016-08-22 2017-02-15 平安科技(深圳)有限公司 数据处理任务执行方法和装置
CN107766387A (zh) * 2016-08-22 2018-03-06 南京中兴软件有限责任公司 一种分布式数据etl处理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUMIT SARIN: "《Oracle数据库管理员技术指南》", 31 March 2001, 北京:机械工业出版社 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198914A (zh) * 2019-12-12 2020-05-26 山西云时代技术有限公司 基于oracle数据库归档日志的整库实时数据采集方法
CN113051019A (zh) * 2021-03-31 2021-06-29 北京和信融慧信息科技有限公司 流程任务执行管控方法、装置以及设备
CN113704336A (zh) * 2021-08-17 2021-11-26 内蒙古申科国土技术有限责任公司 基于地理信息大数据的生态环境监测分析方法及系统
CN118093707A (zh) * 2024-04-28 2024-05-28 北方健康医疗大数据科技有限公司 一种多模态数据采集方法、系统、终端及存储介质

Also Published As

Publication number Publication date
CN109582723B (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
CN109582723A (zh) 分布式etl数据采集方法及装置
EP3477504B1 (en) Data separation and write redirection in multi-tenancy database systems
EP2482192B1 (en) Testing lifecycle
KR20210045299A (ko) 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우
US8689179B2 (en) Transportable refactoring object
US9311064B1 (en) Systems and methods for automated centralized build/merge management
CN107506442B (zh) 一种模型的建模方法及装置
US20070156849A1 (en) Systems and methods for delivering software upgrades in a provider-tenant environment
EP2008229A2 (en) Customer-configurable workflow system
US11651272B2 (en) Machine-learning-facilitated conversion of database systems
US20070156878A1 (en) System and method for managing workflow execution in a distributed system
DE102016208672A1 (de) Verwalten von Redundanzen zwischen Anwendungs-Bundles
US11847437B2 (en) Performing translations on change requests
US10768974B2 (en) Specifying an order of a plurality of resources in a transaction according to distance
EP1701266A1 (de) Testvorrichtung zur Überprüfung einer Stapelverarbeitung
US10795880B2 (en) System and method for inter-program file control communication
JP2016076181A (ja) チーム内構成管理システム
WO2021131435A1 (ja) プログラム開発支援システム及びプログラム開発支援方法
Childers et al. An edge service for managing HPC workflows
JP2022108452A (ja) プログラム管理装置及びプログラム管理方法
Föse et al. SAP NetWeaver AS ABAP System Administration
CN111897794A (zh) 数据库的维护方法、装置、电子设备和存储介质
Kaplan et al. Implementing SAP Enhancement Packages
CN111078666B (zh) 基于跨中心多数据库的自动化卸数供数的方法
Lerm et al. InfoSphere DataStage Parallel Framework Standard Practices

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