Etl调度方法及装置的制造方法_2

文档序号:9922029阅读:来源:国知局
楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021] 图1为本发明一实施例提供的一种ETL调度方法的流程图,该方法适用于包括多 个数据仓库的应用场景,其中该方法的执行主体为:ETL调度装置,该调度装置可以为ETL 工具,一种ETL调度方法具体包括如下流程:
[0022] S101 :确定每个阶段的任务执行规则所对应的第一数据仓库,第一数据仓库为每 个阶段的数据仓库中的源数据仓库或目的数据仓库。
[0023] 具体地,通常在大规模并行处理MPP等系统中包括有多个数据仓库,在数据流流 经的每个阶段中都包括有源数据仓库和目的数据仓库,每个数据仓库对应有自己的任务执 行规则,这里的任务执行规则包括:执行时间、执行方式等,ETL装置可以确定将在源数据 仓库和目的数据仓库中选择一个作为第一数据仓库,在该阶段任务是按照第一数据仓库所 对应的任务执行规则进行的。本实施例中并不限定ETL装置如何确定第一数据仓库的方 法。
[0024] S102 :根据源数据仓库和目的数据仓库之间的逻辑关系和第一数据仓库建立任务 复制表。
[0025] 其中,所述任务复制表包括:所述源数据仓库的表项和所述目的数据仓库的表项。 所述任务复制表还包括:第一参数和第二参数;所述第一参数用于表示所述第一数据仓库 为该阶段的所述源数据仓库;所述第二参数用于表示所述第一数据仓库为该阶段的所述目 的数据仓库。
[0026] 可选地,所述根据每个阶段中数据仓库之间的逻辑关系和所述第一数据仓库建立 任务复制表,具体包括:根据所述源数据仓库和所述目的数据仓库之间的逻辑关系确定所 述源数据仓库的表项和所述目的数据仓库的表项;根据所述第一数据仓库确定所述第一参 数和所述第二参数;根据所述源数据仓库的表项、所述目的数据仓库的表项、所述第一参数 和所述第二参数建立所述任务复制表。
[0027] 举个例子,图2为本发明一实施例提供的MPP系统的结构示意图,假设MPP系 统中包括如下数据仓库:数据源(Data Source)201、详单库202、分析数据库(Analysis Database) 203和用户特征数据库204,它们分别对应在文件服务器、Hive服务器、Sybase IQ服务器和RTANA服务器上,其中文件服务器、Sybase IQ服务器和RTANA服务器的个数都 是三个,Hive集群依托Hadoop集群实现了分布式内部调度,提供了一个统一入口,即可以 理解为仅存在一个Hive服务器提供给ETL装置,如图2所示,每个阶段中数据仓库之间的 逻辑关系包括:第一阶段的源数据仓库为数据源201,详单库202 ;第二阶段的源数据仓库 为详单库202,目的数据仓库为分析数据库203 ;第三阶段的源数据仓库为分析数据库203, 目的数据仓库为用户特征数据库204。
[0028] 任务复制表包括:源数据仓库表项和目的数据仓库表项。所述任务复制表还包括: 第一参数和第二参数;所述第一参数用于表示所述第一数据仓库为该阶段的所述源数据仓 库;所述第二参数用于表示所述第一数据仓库为该阶段的所述目的数据仓库。假设第一参 数为1,第二参数为2。比如:假设S101步骤中确定第一阶段的任务执行规则所对应的第一 数据仓库是数据源,即任务执行规则按照数据源的执行规则,则设表格的第一行第一列处 为第一参数1,同样第二行第二列处为第一参数1,第三行第三列处为第二参数2。通过上述 方法则可以建立任务复制表。
[0029] 本实施例提供的任务复制表,具体如下:
[0030]
[0031] S103 :根据第二数据仓库对应服务器采用的分布式方式建立任务分配表。
[0032] 具体地,所述第二数据仓库为所述每个阶段的数据仓库中的源数据仓库或目的数 据仓库,所述任务分配表包括:每个所述第二数据仓库对应服务器所采用的分布式方式。 所述分布式方式包括:无共享分布方式和共享磁盘分布方式。本发明中服务器之间的部署 方式还可以为主备方式等,不限于此分布式方式,在任务分配表包括每个阶段的第二数据 仓库对应服务器,假设无共享分布方式用3代表,共享磁盘分布方式用4代表,本实施例中 的第二数据仓库恰好均是目的数据仓库,则任务分配表的第一行从左至右依次为文件服务 器,Sybase IQ服务器和RTANA服务器,他们分别采用的分布方式为:共享磁盘分布方式、共 享磁盘分布方式和无共享分布方式。
[0033] 本实施例提供的任务分配表,具体如下:
[0034]
[0035] S104 :根据任务复制表和任务分配表对每个阶段的任务进行调度。
[0036] 可选地,所述根据所述任务复制表和所述任务分配表对所述每个阶段的任务进行 调度,具体包括:在每个阶段中的所述源数据仓库和所述目的数据仓库之间按照确定的所 述分布式方式调度所述每个阶段的任务。
[0037] 接着上述举的例子,假设三个阶段的任务分别为:
[0038] 任务一:从文件服务器下载原始详单,数据直接加载到Hive服务器的详单库中。
[0039] 任务二:从Hive服务器的详单库导出原始详单,数据经过清洗和汇聚后加载到 Sybase IQ服务器。
[0040] 任务三:从Sybase IQ服务器导出用户属性,加载到RTANA服务器,在RTANA服务 器计算用户特征。
[0041] 根据三个阶段的任务即数据仓库之间的逻辑关系确定:第一阶段的源数据仓库为 数据源,目的数据仓库为详单库;第二阶段的源数据仓库为详单库,目的数据仓库为分析数 据库;第三阶段的源数据仓库为分析数据库,目的数据仓库为用户特征数据库。最后根据每 个阶段中数据仓库之间的逻辑关系和第一数据仓库建立任务复制表。
[0042] 由于建立的任务分配表的第一行从左至右依次为数据源对应的Hive服务器, Sybase IQ服务器和RTANA服务器,他们分别采用的分布方式为:共享磁盘分布方式、共享 磁盘分布方式和无共享分布方式。则三个任务的具体调度步骤包括:
[0043] 1、根据任务复制表,将根据文件服务器的个数复制三个任务一,再根据任务分配 表,所有任务在Hive服务器上执行。
[0044] 2、根据任务复制表,将根据Hive服务器复制一个任务二,再根据任务分配表,该 任务二会被某台空闲的Sybase IQ服务器调度。
[0045] 3、根据任务复制表,将根据RTANA服务器的个数复制三个任务三,再根据任务分 配表,每个RTANA服务器调度一个任务三。
[0046] 本实施例提供了一种ETL调度方法,包括:首先,确定每个阶段的任务执行规则所 对应的第一数据仓库,其中第一数据仓库为每个阶段的数据仓库中的源数据仓库或目的数 据仓库;其次,根据源数据仓库和目的数据仓库之间的逻辑关系和第一数据仓库建立任务 复制表,根据所述第二数据仓库对应服务器采用的分布式方式建立任务分配表,最后,根据 任务复制表和任务分配表对所述每个阶段的任务进行
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1