CN103294774B - 基于多时区的对数据仓库进行批量加载的装置及方法 - Google Patents
基于多时区的对数据仓库进行批量加载的装置及方法 Download PDFInfo
- Publication number
- CN103294774B CN103294774B CN201310170713.8A CN201310170713A CN103294774B CN 103294774 B CN103294774 B CN 103294774B CN 201310170713 A CN201310170713 A CN 201310170713A CN 103294774 B CN103294774 B CN 103294774B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- district
- scheduling
- basis
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于多时区的对数据仓库进行批量加载的装置和方法。所述装置包括数据存储器,用于存储上游源数据、临时区数据、基础区数据、汇总区数据和调度数据。数据预处理装置,用于对到达数据仓库的上游源数据进行处理,为后续的数据加载做准备。数据加载装置,用于接收数据预处理装置的消息指令,从数据存储器读取源数据和调度数据,按照调度顺序加载处理源数据,并将处理结果保存到数据存储器中,以及在调度过程中更新数据存储器中的调度数据。本发明的装置和方法提高了多时区数据加载的效率,具有较好的可扩展性和可维护性,能很好地满足多时区多批量的数据加载需求。
Description
技术领域
本发明涉及计算机数据处理技术领域,特别涉及一种基于多时区的对数据仓库进行批量加载的装置和方法。
背景技术
目前,国内数据仓库的数据加载方式是每日单批量。上游源数据是同时区的多个地区、或多个时区的某个国家,它们的共同特点是这些数据能够在统一的时间节点前到达数据仓库(如:T日的批量数据在T+1日6点前到达)。随后,数据仓库检查上一天的批量是否加载完成,如果完成,便开始加载新一天的批量,否则,新到的批量将无法开始加载,直到上一日批量完成。另外,在数据存储方面,数据仓库基本采用一套物理环境。
随着数据仓库技术的不断发展,以及业务需求的不断增长,对于一些具有跨国经营战略的大型的企业,上游数据源从原来的单个国家扩展到跨不同时区的多个国家。而不同时区的数据文件到达时间各不相同,出于时效性考虑,当某一时区的数据文件到达时,就需要进行批量加载。由于不同时区同一主题的数据存储在同一个数据表中,假设一个批量作业的加载时间为n小时,而时区间隔为m小时,当m<n时,就会存在数据冲突。目前通常做法是采用数据库本身提供的锁机制来缓解数据冲突问题。随着时区的不断增多,锁等待现象将会更加突出,数据冲突问题将更加显著,甚至可能会影响到正常批量加载的时效性。
发明内容
本发明为了解决数据仓库在多时区下批量加载过程中的数据冲突问题,提出了一种基于多时区的对数据仓库进行批量加载的装置和方法,该方法采用按时区构建存储单元和数据访问单元、PPI(Partitioned Primary Index,是Teradata数据库实现的一种索引机制)分区机制等技术,成功地实现了多时区数据的隔离和多时区的数据仓库批量并行加载的目标,提高了多时区数据加载效率,具有较好的可扩展性和可维护性,能很好地满足企业多时区多批量的数据加载需求,避免多时区批量加载时产生的数据冲突问题,各时区、甚至时区内应用级的独立翻牌,具有良好的可拓展性。
本发明提供的基于多时区的对数据仓库进行批量加载的装置包括:
数据存储器,用于存储上游源数据、临时区数据、基础区数据、汇总区数据和调度数据,数据存储器进一步包括:上游源数据管理单元(101),用于存储上游应用下传给数据仓库的业务数据;临时区数据管理单元(102),用于存储经过初步处理的源数据;基础区数据管理单元(103),用于存储经过分析统计、模型化的数据;汇总区数据管理单元(104),用于存储经过汇总统计的指标数据;调度数据管理单元(105),用于存储调度相关信息。数据预处理装置,用于对到达数据仓库的上游源数据进行处理,为后续的数据加载做准备。数据加载装置,用于接收数据预处理装置的消息指令,从数据存储器读取源数据和调度数据,按照调度顺序加载处理源数据,并将处理结果保存到数据存储器中,以及在调度过程中更新数据存储器中的调度数据。
本发明提供的基于多时区的对数据仓库进行批量加载的方法包括:步骤1,上游源数据通过数据传输装置到达数据存储器;步骤2,数据预处理装置对到达数据仓库的上游源数据进行处理,为后续的数据加载做准备;步骤3,数据加载装置接收数据预处理装置的消息指令,从数据存储器读取源数据和调度数据,按照调度顺序加载处理源数据,并将处理结果保存到数据存储器中,以及在调度过程中更新数据存储器中的调度数据,其中,数据存储器进一步包括:上游源数据管理单元,用于存储上游应用下传给数据仓库的业务数据;临时区数据管理单元,用于存储经过初步处理的源数据;基础区数据管理单元,用于存储经过分析统计、模型化的数据;汇总区数据管理单元,用于存储经过汇总统计的指标数据;调度数据管理单元,用于存储调度相关信息。
本发明提供了基于多时区的对数据仓库进行批量加载的装置和方法,通过对数据仓库的临时区按照时区进行物理划分,对数据仓库的基础区按照时区建立逻辑视图,并在其物理存储结构中建立PPI,同时将加载单元和调度单元按时区分解为多个子单元,从而提高了多时区数据仓库的批量加载效率,并最大程度地避免了数据冲突。
本发明采用了独立的数据存储和数据访问方式。由于多时区作业加工的目标表存在相同的可能性,会存在数据加载冲突,因此,采取了按时区拆分临时区数据存储单元、对于必须采用同一套存储单元的基础区和汇总区,采用单数据存储单元的按时区字段建立PPI等方式来隔离数据;另外,还对基础区、汇总区分别按时区构建数据访问单元,供后续层访问。随着业务需求的新增,本发明可以很好地支持开闭原则,只需要构建新时区的存储单元和访问单元,便完成了扩展。
本发明通过以时区参数表的方式配置在数据管理中的调度数据单元中,来实现作业调度过程中作业及其关系的多时区属性。通过作业时区参照表和时区参数表的维护,可以快速地向当前环境中加入新的时区,结合自动化作业解析工具,可以快速地生成作业及其关系,顺利地在流程中实现调度。
附图说明
图1是本发明提供的基于多时区的对数据仓库进行批量加载的装置的示意图;
图2是本发明提供的基于多时区的对数据仓库进行批量加载的装置中的数据存储器单元的结构图;
图3是数据存储器单元中的临时区数据管理单元的结构图;
图4是数据存储器单元中的基础区数据管理单元的结构图;
图5是本发明提供的基于多时区的对数据仓库进行批量加载的装置中的数据预处理装置的结构图;
图6是本发明提供的基于多时区的对数据仓库进行批量加载的装置中的数据加载装置的单元结构图;
图7是数据加载装置中的临时区数据加载单元的结构图;
图8是本发明提供的基于多时区的对数据仓库进行批量加载的方法流程图;
图9是本发明提供的基于多时区的对数据仓库进行批量加载的方法中临时区数据加载的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
首先对本发明所涉及到的技术术语进行说明:
临时区——是指数据仓库中的一个数据库或物理存储单元,数据仓库根据数据不同的特点将其分成不同的区,包括临时区、基础区、汇总区等。其中,临时区相当于上游源数据的中转站,该区的表结构设计和源数据基本一致,上游的数据文本通过加载装置进入数据仓库临时区。该区为基础区提供数据源,当确保基础区使用完之后即清理,故名临时区。
基础区——是指数据仓库中的一个数据库或物理存储单元,该区数据根据数据仓库的设计,按照一定的模型结构有主题、有组织地存储。该区数据是数据仓库进行后续决策分析的基础,因此称之为基础区。
汇总区——是指数据仓库中的一个数据库或物理存储单元,该区根据业务需求,存储常用的统计汇总指标,该区数据通过对基础区数据进行加工处理得到。
时区——是指标准的格林威治时区,分为东12区和西12区,东12区分别记为1时区、2时区、…、12时区,西12区分别记为13时区、14时区、…、24时区。
PPI——全称Partitioned Primary Index,是Teradata(Teradata是用于世界上最大的商用企业级数据库的关系数据库管理系统)数据库实现的一种索引机制。通过定义该索引,可以避免全表扫描操作(FULL TABLE SCAN),各类数据库DML操作可以只对指定PPI分区的数据进行,以提高效率。
翻牌——指完成本日批量数据加载,允许进行下一日批量的加载。
数据存储器——是指文件系统、数据库,用于存储文件数据或数据库表数据,是数据仓库的组成部分。
图1是本发明提供的基于多时区的对数据仓库进行批量加载的装置的示意图。参照图1,该装置包括:数据存储器1、数据预处理装置2、数据加载装置3、数据传输装置4和微处理器5。
数据存储器1通过微处理器5与数据预处理装置2和数据加载装置3相连接,用于存储上游源数据、临时区数据、基础区数据、汇总区数据和调度数据。
图2是数据存储器1的结构图。参照图2,数据存储器1包括:上游源数据管理单元101、临时区数据管理单元102、基础区数据管理单元103、汇总区数据管理单元104和调度数据管理单元105。
上游源数据管理单元101用于存储上游应用下传给数据仓库的业务数据(以银行业为例:账务数据,交易数据,网银数据,信用卡数据),业务数据通过数据传输装置4,以压缩包的形式传送到该单元的固定目录,各时区的数据按照一定的标识来区分(如:场次),经解压后,最终数据以文本的格式存放在该单元中。
临时区数据管理单元102用于存储经过初步处理的源数据。上游源数据由临时区数据加载单元202处理后,以数据仓库表的形式存储在该单元中。图3是临时区数据管理单元102的单元结构图。参照图3,所述临时区数据管理单元102包括:1时区临时区数据存储单元10201,2时区临时区数据存储单元10202,……N时区临时区数据存储单元1020N。为了解决多时区数据加载的冲突问题,该单元按时区划分为N个数据存储单元(N代表时区个数),不同时区的数据分别存储在对应时区的存储单元中。临时区数据管理单元102采用数据库存储数据,各子单元间是独立的,没有交互关系。
基础区数据管理单元103用于存储经过分析统计、模型化的数据。临时区数据管理单元102中的数据由基础区加载单元203加工处理后,根据数据仓库模型的设计,以数据仓库表的形式存储在该单元中。图4是基础区数据管理单元103的单元结构图。参照图4,所述基础区数据管理单元103包括:基础区数据存储单元10301、1时区基础区数据访问单元10311、2时区基础区数据访问单元10312,……N时区基础区数据访问单元1031N。所述基础区数据存储单元10301按照数据仓库的模型结构存储,采用单个物理存储单元来存储不同时区的基础区数据,按时区字段建立PPI。N个基础区数据访问单元是基于单元10301,以时区为单位建立视图,对外提供基础区数据访问单元(N为时区个数)。在该基础区的数据加载过程中,多时区作业加载数据到同一个表时,需要获取写锁,通过PPI技术的应用,可提高单个作业操作的效率,从而缓解读写锁之间的等待问题;另外通过第二层视图的建立,进一步避免读写锁造成的等待问题。基础区数据管理单元103采用数据库存储数据,各子单元间是独立的,没有交互关系。
汇总区数据管理单元104用于存储经过汇总统计的指标数据。基础区数据管理单元103中的数据由汇总区加载单元204加工处理为统计指标,存储在该单元中。汇总区数据管理单元104的单元结构图类似于基础区数据管理单元,不再赘述。
类似地,在汇总层之后还可以有其他数据层,每个数据仓库可以根据业务需求进行设计。
调度数据管理单元105用于存储调度相关信息,例如:上游源数据包信息、调度顺序、依赖关系、状态信息等。调度数据相关表描述如下:
1、上游源数据包描述
2、作业描述
3、作业依赖关系描述
4、作业触发关系描述
上游源数据管理单元101采用文件系统存储,而其它单元采用数据库存储。上游源数据管理单元101接收上游数据及经数据预处理装置2处理后的文件本数据,读取调度数据管理单元105,触发临时区作业。临时区作业读取上游源数据管理单元101处理后的文本数据,加载到临时区数据管理单元102,待成功后,再读取调度数据管理单元105触发关系,触发基础区作业。基础区作业读取临时区数据管理单元102中的数据,加载到基础区数据管理单元103,待成功后,再读取调度数据管理单元105触发关系,触发汇总区作业。汇总区作业读取基础区数据管理单元103中的数据,加载到汇总区数据管理单元104。加载成功后,作业状态都会被更新到调度数据管理单元105。数据预处理装置2通过微处理器5与数据存储器1和数据加载装置3相连接,用于对到达数据仓库的上游源数据进行处理,为后续的数据加载做准备。图5是的数据预处理装置2的结构图。参照图5,数据预处理装置2包括:数据总控单元201和数据处理单元202。数据总控单元201用于监控上游源数据接收目录,待数据到达后,给数据处理单元202发送指令(数据包名:FPM-20110923-5.zip),开始解压,待处理成功后,读取调度数据中的上游源数据包映射关系表,触发临时区作业,并发送触发消息(数据包名)给数据处理单元202。数据处理单元202用于接收数据总控单元201的指令,对到达数据进行预处理,处理完成后给数据总控单元201返回处理成功消息。
数据加载装置3通过微处理器5与数据存储器1和数据预处理装置2相连接,用于接收数据预处理装置2的消息指令(临时区作业,数据日期),从数据存储器1读取源数据和调度数据,按照调度顺序加载处理源数据,并负责将处理结果保存到数据存储器1,以及在调度过程中更新数据存储器1中的调度数据。图6是数据加载装置3的单元结构图。参照图6,数据加载装置3包括:临时区调度单元301、基础区调度单元302、汇总区调度单元303、临时区数据加载单元311、基础区数据加载单元312和汇总区数据加载单元313。
临时区调度单元301用于接收数据预处理装置2生成的触发消息(数据包名),置作业状态为Pending状态(更新作业描述表),待资源满足后,执行临时区数据加载单元311(更新作业描述表中的作业状态为Running状态),直到加载单元处理完成,接收返回消息,并更新作业运行状态信息(作业状态:Done,批量日期:20110923)到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系表,触发下游作业,发送触发消息(基础区作业名:5_T02_PROD_INSURE,数据日期:20110923)给基础区调度单元302。
基础区调度单元302用于接收临时区调度单元301传递的触发消息,置作业状态为Pending状态(更新作业描述表),待资源满足,且依赖满足(通过读取调度数据中的作业依赖关系和作业描述表,判断依赖作业当日是否已完成),执行基础区数据加载单元312,直到加载单元处理完成,接收返回消息,并更新作业运行状态信息(作业状态:Done,批量日期:20110923)到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系,并触发下游作业,发送触发消息(汇总区作业名:5_C02_PROD_INSURE,数据日期:20110923)给汇总区调度单元303。
汇总区调度单元303用于接收基础区调度单元302传递的触发消息,置作业状态为Pending状态(更新作业描述表),待资源满足,且依赖满足(通过读取调度数据中的作业依赖关系和作业描述表,判断依赖作业当日是否已完成),执行汇总区数据加载单元313,直到加载单元处理完成,接收返回消息,并更新作业运行状态信息(作业状态:Done,批量日期:20110923)到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系,若存在,则继续触发下游作业,发送触发消息给后续调度单元。类似地,还可以根据调度单元的划分增加对应的调度单元。
临时区数据加载单元311,负责接收临时区调度单元301的调度指令(临时区作业名和批量日期),读取上游源数据管理单元101中的文本数据,以数据库表的形式保存到临时区数据管理单元102中。图7是数据加载装置中的临时区数据加载单元311的结构图。参照图7,临时区数据加载单元311按时区分为N个加载单元(N代表时区个数),N个加载单元可以并行地被临时区调度单元301调度,每个加载子单元独立访问对应的数据管理单元,互不干扰。事实上,每个时区的加载单元还可以根据需要再切分成多个作业。以ABC接口中特定加载作业JOBS01为例,假设,当1时区、2时区、3时区等多个时区的上游源数据文件先后到达数据仓库,此时,以上时区分别对应的加载作业1_JOBS01、2_JOBS02、3_JOBS03可以先后并行地被调度执行,将数据加载到各时区的临时区数据存储单元中,无需等待所有数据都到齐,也无需等待一个作业完成再执行下一个作业。
基础区数据加载单元312,用于接收基础区调度单元302的指令,读取临时区数据管理单元102中的数据,按照基础区的模型对其进行加工处理,并保存到基础区数据管理单元103中。同临时区数据加载单元202类似地,基础区数据加载单元203按时区分为N个加载单元(N代表时区个数),N个加载单元可以并行地被基础区调度单元302调度。每个单元分别读取对应时区的临时区数据管理单元,处理完成后存入基础区数据管理单元103。
汇总区数据加载单元313用于接收汇总区调度单元303的指令,读取基础区数据管理单元103中的数据,按照汇总区的指标对其进行加工处理,并保存到汇总区数据管理单元104中。同临时区数据加载单元202类似地,汇总区数据加载单元204按时区分为N个加载单元(N代表时区个数),N个加载单元可以并行地被汇总区调度单元303调度。每个单元分别读取对应时区的基础区数据管理单元逻辑视图,处理完成后存入汇总区数据管理单元104。
类似地,还可以根据数据管理单元的划分增加对应的数据加载单元。
数据传输装置4,用于传输上游文件(如压缩包格式、内容加密等)到数据仓库。
微处理器5,用于指令控制和数据处理。
图8是本发明提供的基于多时区的对数据仓库进行批量加载的方法流程图,该方法包括以下步骤:
在步骤401,上游源数据通过数据传输装置4到达数据存储器1。(保存在某个目录下,如:~/zip/)
数据存储器单元1包括上游源数据管理单元101、临时区数据管理单元102、基础区数据管理单元103、汇总区数据管理单元104和调度数据管理单元105。
上游源数据管理单元101采用文件系统存储,而其它单元采用数据库存储。上游源数据管理单元101接收上游数据及经数据预处理装置2处理后的文件本数据,读取调度数据管理单元105,触发临时区作业。临时区作业读取上游源数据管理单元101处理后的文本数据,加载到临时区数据管理单元102,待成功后,再读取调度数据管理单元105触发关系,触发基础区作业。基础区作业读取临时区数据管理单元102中的数据,加载到基础区数据管理单元103,待成功后,再读取调度数据管理单元105触发关系,触发汇总区作业。汇总区作业读取基础区数据管理单元103中的数据,加载到汇总区数据管理单元104。加载成功后,作业状态都会被更新到调度数据管理单元105。
在步骤402,数据预处理装置2中的数据总控单元201监控到有数据到达,则发送调度指令(指令包含上游源数据包名,如:FPM-20110923-5.zip)给数据处理单元202。
数据预处理装置2中的数据总控单元201用于监控上游源数据接收目录,待数据到达后,给数据处理单元202发送指令(数据包名:FPM-20110923-5.zip),开始解压,待处理成功后,读取调度数据中的上游源数据包映射关系表,触发临时区作业,并发送触发消息(数据包名)给数据处理单元202。数据处理单元202用于接收数据总控单元201的指令,对到达数据进行预处理,处理完成后给数据总控单元201返回处理成功消息。
在步骤403,数据处理单元202接收到调度指令后,对压缩数据包进行解压处理,将解压后的文本文件保存在上游源数据管理单元101,并将处理结果(成功,失败)发送给数据总控单元201,如果失败将退出,并报警。
在步骤404,数据总控单元201更新数据存储器1中的上游源数据包描述,并发送已完成预处理的数据包名给临时区调度单元301。
在步骤405,临时区调度单元301接收数据总控单元201的指令(如:上游源数据包),根据时区的不同,并行地发送调度指令给临时区加载单元311中的N个时区子单元,由它们并行地完成数据加载,只要其中的一个完成加载,临时区调度单元301发送消息给基础区调度单元302。临时区数据加载流程如图9所示。
在步骤406,基础区调度单元302接收临时区调度单元301的指令(如:基础区作业、数据日期),根据各时区临时区数据加载情况分别发送调度指令给基础区加载单元312中的N个时区子单元,由它们并行地完成数据加载,只要其中的一个完成加载,基础区调度单元302发送消息给汇总区调度单元303。详细加载流程类似临时区处理,在此不再赘述。
在步骤407,汇总区调度单元303接收基础区调度单元302的指令(如:汇总区作业、数据日期),根据各时区基础区数据加载情况分别发送调度指令给汇总区加载单元313中的N个时区子单元,由它们并行地完成数据加载。详细加载流程类似临时区处理,在此不再赘述。
图9是本发明提供的基于多时区的对数据仓库进行批量加载的方法中临时区数据加载的流程图,该过程进一步包括:
步骤40401:临时区调度单元301接收数据总控单元201的数据包名,从数据存储器1中读取该数据包对应的临时区加载作业名,更新数据存储器1中作业描述表的作业状态为Pending。步骤40402:临时区调度单元301检查并发数是否满足。若不满足,维持数据存储器1中作业描述表的作业状态为Pending,按固定时间间隔检查资源,直到资源满足;若满足,则继续执行以下步骤。
步骤40403:临时区调度单元301检查作业的依赖关系是否满足。若不满足,则维持数据存储器1中作业描述表的作业状态为Pending,按固定时间间隔检查依赖关系,直到依赖满足;若满足,则判断该作业所在的时区,调度N时区临时区数据加载单元(3110N)进行数据加载,更新数据存储器1中作业描述表的作业状态为Running。步骤40404:临时区调度单元301发送调度指令(如:临时区作业、数据日期)给临时区加载单元。
步骤40405:N时区临时区数据加载单元3110N接收调度指令后,加载文本数据到数据库,将结果保存在临时区数据管理单元102中,待完成数据处理后,同时发送完成消息给临时区调度单元301。
步骤40406:临时区调度单元更新数据存储器1中作业描述表的作业状态为Done,并发送触发消息给基础区调度单元。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种基于多时区的对数据仓库进行批量加载的装置,包括:
数据存储器(1),用于存储上游源数据、临时区数据、基础区数据、汇总区数据和调度数据,其进一步包括:上游源数据管理单元(101),用于存储上游应用下传给数据仓库的业务数据;临时区数据管理单元(102),用于存储经过初步处理的源数据;基础区数据管理单元(103),用于存储经过分析统计、模型化的数据;汇总区数据管理单元(104),用于存储经过汇总统计的指标数据;调度数据管理单元(105),用于存储调度相关信息;
数据预处理装置(2),用于对到达数据仓库的上游源数据进行处理,为后续的数据加载做准备;
数据加载装置(3),用于接收数据预处理装置(2)的消息指令,从数据存储器(1)读取源数据和调度数据,按照调度顺序加载处理源数据,并将处理结果保存到数据存储器(1)中,以及在调度过程中更新数据存储器(1)中的调度数据;
其中,所述临时区数据管理单元(102)包括:1时区临时区数据存储单元(10201),2时区临时区数据存储单元(10202),……N时区临时区数据存储单元(1020N),临时区数据管理单元(102)按时区划分为N个数据存储单元,不同时区的数据分别存储在对应时区的存储单元中,临时区数据管理单元(102)采用数据库存储数据,各子单元间是独立的,没有交互关系;
所述基础区数据管理单元(103)包括:基础区数据存储单元(10301)、1时区基础区数据访问单元(10311)、2时区基础区数据访问单元(10312),……N时区基础区数据访问单元(1031N);
所述基础区数据存储单元(10301)按照数据仓库的模型结构存储,采用单个物理存储单元来存储不同时区的基础区数据,按时区字段建立PPI;1时区基础区数据访问单元(10311)、2时区基础区数据访问单元(10312),……N时区基础区数据访问单元(1031N)基于所述基础区数据存储单元(10301),以时区为单位建立视图,对外提供基础区数据访问单元;
所述汇总区数据管理单元(104)的结构与所述基础区数据管理单元(103)的相同,所述基础区数据管理单元(103)中的数据经过汇总统计处理成统计指标后,存储在所述汇总区数据管理单元(104)中。
2.根据权利要求1所述的装置,其中,上游源数据管理单元(101)采用文件系统存储,而其它单元采用数据库存储,上游源数据管理单元(101)接收上游数据及经数据预处理装置(2)处理后的文本数据,读取调度数据管理单元(105),触发临时区作业,临时区作业读取上游源数据管理单元(101)处理后的文本数据,加载到临时区数据管理单元(102),待成功后,再读取调度数据管理单元(105)触发关系,触发基础区作业,基础区作业读取临时区数据管理单元(102)中的数据,加载到基础区数据管理单元(103),待成功后,再读取调度数据管理单元(105)触发关系,触发汇总区作业,汇总区作业读取基础区数据管理单元(103)中的数据,加载到汇总区数据管理单元(104),加载成功后,作业状态都会被更新到调度数据管理单元(105)。
3.根据权利要求1所述的装置,其中,数据预处理装置(2)进一步包括:
数据总控单元(201),用于监控上游源数据接收目录,待数据到达后,给数据处理单元(202)发送指令;
数据处理单元(202),用于接收数据总控单元(201)的指令,对到达数据进行预处理,处理完成后给数据总控单元(201)返回处理成功消息。
4.根据权利要求1所述的装置,其中,数据加载装置(3)进一步包括:
临时区数据加载单元(311),用于接收临时区调度单元(301)的调度指令,读取上游源数据管理单元(101)中的文本数据,以数据库表的形式保存到临时区数据管理单元(102)中,临时区数据加载单元(311)按时区分为N个加载单元,N代表时区个数,N个加载单元并行地被临时区调度单元(301)调度,每个加载子单元独立访问对应的数据管理单元,互不干扰。
5.根据权利要求4所述的装置,其中,数据加载装置(3)进一步包括:
基础区数据加载单元(312),用于接收基础区调度单元(302)的指令,读取临时区数据管理单元(102)中的数据,按照基础区的模型对其进行加工处理,并保存到基础区数据管理单元(103)中,基础区数据加载单元(312)按时区分为N个加载单元,N个加载单元并行地被基础区调度单元(302)调度,每个加载单元分别读取对应时区的临时区数据管理单元,处理完成后存入基础区数据管理单元(103)。
6.根据权利要求5所述的装置,其中,数据加载装置(3)进一步包括:
汇总区数据加载单元(313),用于接收汇总区调度单元(303)的指令,读取基础区数据管理单元(103)中的数据,按照汇总区的指标对其进行加工处理,并保存到汇总区数据管理单元(104)中,汇总区数据加载单元(313)按时区分为N个加载单元,N个加载单元并行地被汇总区调度单元(303)调度,每个加载单元分别读取对应时区的基础区数据管理单元逻辑视图,处理完成后存入汇总区数据管理单元(104)。
7.根据权利要求6所述的装置,其中,数据加载装置(3)进一步包括:
临时区调度单元(301),用于接收数据预处理装置(2)生成的触发消息,置作业状态为Pending状态,待资源满足后,执行临时区数据加载单元(311),直到临时区数据加载单元(311)处理完成,接收返回消息,并更新作业运行状态信息到调度数据管理单元(105)中的作业描述表,然后再读取调度数据中的作业触发关系表,触发下游作业,发送触发消息给基础区调度单元(302);
基础区调度单元(302),用于接收临时区调度单元(301)传递的触发消息,置作业状态为Pending状态,待资源满足,且依赖满足,执行基础区数据加载单元(312),直到基础区数据加载单元(312)处理完成,接收返回消息,并更新作业运行状态信息到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系,并触发下游作业,发送触发消息给汇总区调度单元(303);
汇总区调度单元(303),用于接收基础区调度单元(302)传递的触发消息,置作业状态为Pending状态,待资源满足,且依赖满足,执行汇总区数据加载单元(313),直到汇总区数据加载单元(313)处理完成,接收返回消息,并更新作业运行状态信息到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系,若存在触发关系,则继续触发下游作业,发送触发消息给下游调度单元。
8.一种基于多时区的对数据仓库进行批量加载的方法,该方法包括:
步骤1,上游源数据通过数据传输装置(4)到达数据存储器(1);
步骤2,数据预处理装置(2)对到达数据仓库的上游源数据进行处理,为后续的数据加载做准备;
步骤3,数据加载装置(3)接收数据预处理装置(2)的消息指令,从数据存储器(1)读取源数据和调度数据,按照调度顺序加载处理源数据,并将处理结果保存到数据存储器(1)中,以及在调度过程中更新数据存储器(1)中的调度数据,
其中,数据存储器(1)进一步包括:上游源数据管理单元(101),用于存储上游应用下传给数据仓库的业务数据;临时区数据管理单元(102),用于存储经过初步处理的源数据;基础区数据管理单元(103),用于存储经过分析统计、模型化的数据;汇总区数据管理单元(104),用于存储经过汇总统计的指标数据;调度数据管理单元(105),用于存储调度相关信息;
其中,所述临时区数据管理单元(102)包括:1时区临时区数据存储单元(10201),2时区临时区数据存储单元(10202),……N时区临时区数据存储单元(1020N),临时区数据管理单元(102)按时区划分为N个数据存储单元,不同时区的数据分别存储在对应时区的存储单元中,临时区数据管理单元(102)采用数据库存储数据,各子单元间是独立的,没有交互关系;
所述基础区数据管理单元(103)包括:基础区数据存储单元(10301)、1时区基础区数据访问单元(10311)、2时区基础区数据访问单元(10312),……N时区基础区数据访问单元(1031N);
所述基础区数据存储单元(10301)按照数据仓库的模型结构存储,采用单个物理存储单元来存储不同时区的基础区数据,按时区字段建立PPI;1时区基础区数据访问单元(10311)、2时区基础区数据访问单元(10312),……N时区基础区数据访问单元(1031N)基于所述基础区数据存储单元(10301),以时区为单位建立视图,对外提供基础区数据访问单元;
所述汇总区数据管理单元(104)的结构与所述基础区数据管理单元(103)的相同,所述基础区数据管理单元(103)中的数据经过汇总统计处理成统计指标后,存储在所述汇总区数据管理单元(104)中。
9.根据权利要求8所述的方法,其中,数据预处理装置(2)进一步包括:数据总控单元(201),用于监控上游源数据接收目录,待数据到达后,给数据处理单元(202)发送指令;数据处理单元(202),用于接收数据总控单元(201)的指令,对到达数据进行预处理,处理完成后给数据总控单元(201)返回处理成功消息。
10.根据权利要求9所述的方法,其中,数据加载装置(3)进一步包括:
临时区数据加载单元(311),用于接收临时区调度单元(301)的调度指令,读取上游源数据管理单元(101)中的文本数据,以数据库表的形式保存到临时区数据管理单元(102)中,临时区数据加载单元(311)按时区分为N个加载单元,N代表时区个数,N个加载单元并行地被临时区调度单元(301)调度,每个加载子单元独立访问对应的数据管理单元,互不干扰;
基础区数据加载单元(312),用于接收基础区调度单元(302)的指令,读取临时区数据管理单元(102)中的数据,按照基础区的模型对其进行加工处理,并保存到基础区数据管理单元(103)中,基础区数据加载单元(312)按时区分为N个加载单元,N个加载单元并行地被基础区调度单元(302)调度,每个加载单元分别读取对应时区的临时区数据管理单元,处理完成后存入基础区数据管理单元(103);
汇总区数据加载单元(313),用于接收汇总区调度单元(303)的指令,读取基础区数据管理单元(103)中的数据,按照汇总区的指标对其进行加工处理,并保存到汇总区数据管理单元(104)中,汇总区数据加载单元(313)按时区分为N个加载单元,N个加载单元并行地被汇总区调度单元(303)调度,每个加载单元分别读取对应时区的基础区数据管理单元逻辑视图,处理完成后存入汇总区数据管理单元(104);
临时区调度单元(301),用于接收数据预处理装置(2)生成的触发消息,置作业状态为Pending状态,待资源满足后,执行临时区数据加载单元(311),直到临时区数据加载单元(311)处理完成,接收返回消息,并更新作业运行状态信息到调度数据管理单元(105)中的作业描述表,然后再读取调度数据中的作业触发关系表,触发下游作业,发送触发消息给基础区调度单元(302);
基础区调度单元(302),用于接收临时区调度单元(301)传递的触发消息,置作业状态为Pending状态,待资源满足,且依赖满足,执行基础区数据加载单元(312),直到基础区数据加载单元(312)处理完成,接收返回消息,并更新作业运行状态信息到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系,并触发下游作业,发送触发消息给汇总区调度单元(303);
汇总区调度单元(303),用于接收基础区调度单元(302)传递的触发消息,置作业状态为Pending状态,待资源满足,且依赖满足,执行汇总区数据加载单元(313),直到汇总区数据加载单元(313)处理完成,接收返回消息,并更新作业运行状态信息到调度数据管理单元中的作业描述表,然后再读取调度数据中的作业触发关系,若存在触发关系,则继续触发下游作业,发送触发消息给下游调度单元。
11.根据权利要求10所述的方法,其中,步骤2进一步包括:
步骤2.1,数据预处理装置(2)中的数据总控单元(201)监控到有数据到达,则发送调度指令给数据处理单元(202);
步骤2.2,数据处理单元(202)接收到调度指令后,对压缩数据包进行解压处理,将解压后的文本文件保存在上游源数据管理单元(101),并将处理结果发送给数据总控单元(201),如果失败将退出,并报警;
步骤2.3,数据总控单元(201)更新数据存储器(1)中的上游源数据包描述,并发送已完成预处理的数据包名给临时区调度单元(301)。
12.根据权利要求11所述的方法,其中,步骤3进一步包括:
步骤3.1:临时区调度单元(301)接收数据总控单元(201)的指令,根据时区的不同,并行地发送调度指令给临时区加载单元(311)中的N个时区子单元,由它们并行地完成数据加载,只要其中的一个完成加载,临时区调度单元(301)发送消息给基础区调度单元(302);
步骤3.2:基础区调度单元(302)接收临时区调度单元(301)的指令,根据各时区临时区数据加载情况分别发送调度指令给基础区加载单元(312)中的N个时区子单元,由它们并行地完成数据加载,只要其中的一个完成加载,基础区调度单元(302)发送消息给汇总区调度单元(303);
步骤3.3:汇总区调度单元(303)接收基础区调度单元(302)的指令,根据各时区基础区数据加载情况分别发送调度指令给汇总区加载单元(313)中的N个时区子单元,由它们并行地完成数据加载。
13.根据权利要求12所述的方法,其中,步骤3.1进一步包括:
步骤3.11:临时区调度单元(301)接收数据总控单元(201)的数据包名,从数据存储器(1)中读取该数据包对应的临时区加载作业名,更新数据存储器(1)中作业描述表的作业状态为Pending;
步骤3.12:临时区调度单元(301)检查并发数是否满足,若不满足,维持数据存储器(1)中作业描述表的作业状态为Pending,按固定时间间隔检查资源,直到资源满足;若满足,则继续执行以下步骤;
步骤3.13:临时区调度单元(301)检查作业的依赖关系是否满足;若不满足,则维持数据存储器(1)中作业描述表的作业状态为Pending,按固定时间间隔检查依赖关系,直到依赖满足;若满足,则判断该作业所在的时区,调度N时区临时区数据加载单元(3110N)进行数据加载,更新数据存储器(1)中作业描述表的作业状态为Running;
步骤3.14:临时区调度单元(301)发送调度指令给临时区加载单元;
步骤3.15:N时区临时区数据加载单元(3110N)接收调度指令后,加载文本数据到数据库,将结果保存在临时区数据管理单元(102)中,待完成数据处理后,同时发送完成消息给临时区调度单元(301);
步骤3.16:临时区调度单元更新数据存储器(1)中作业描述表的作业状态为Done,并发送触发消息给基础区调度单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310170713.8A CN103294774B (zh) | 2013-05-10 | 2013-05-10 | 基于多时区的对数据仓库进行批量加载的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310170713.8A CN103294774B (zh) | 2013-05-10 | 2013-05-10 | 基于多时区的对数据仓库进行批量加载的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103294774A CN103294774A (zh) | 2013-09-11 |
CN103294774B true CN103294774B (zh) | 2016-08-24 |
Family
ID=49095636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310170713.8A Active CN103294774B (zh) | 2013-05-10 | 2013-05-10 | 基于多时区的对数据仓库进行批量加载的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103294774B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557469B (zh) * | 2015-09-24 | 2020-11-20 | 创新先进技术有限公司 | 一种处理数据仓库中数据的方法及装置 |
CN115017171A (zh) * | 2022-08-08 | 2022-09-06 | 北京世纪好未来教育科技有限公司 | 多时区场景下的数据处理方法、装置、电子设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764981A (en) * | 1993-12-22 | 1998-06-09 | The Sabre Group, Inc. | System for batch scheduling of travel-related transactions and batch tasks distribution by partitioning batch tasks among processing resources |
CN1811838A (zh) * | 2005-12-23 | 2006-08-02 | 中国工商银行股份有限公司 | 一种实现连续服务的数据处理方法和系统 |
CN101256662A (zh) * | 2008-03-11 | 2008-09-03 | 中国工商银行股份有限公司 | 一种实现多时区连续服务的处理系统和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0525741D0 (en) * | 2005-12-19 | 2006-01-25 | Misys Plc | Method for running a batch process in a 24-7 operational environment |
US20120072972A1 (en) * | 2010-09-20 | 2012-03-22 | Microsoft Corporation | Secondary credentials for batch system |
-
2013
- 2013-05-10 CN CN201310170713.8A patent/CN103294774B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5764981A (en) * | 1993-12-22 | 1998-06-09 | The Sabre Group, Inc. | System for batch scheduling of travel-related transactions and batch tasks distribution by partitioning batch tasks among processing resources |
CN1811838A (zh) * | 2005-12-23 | 2006-08-02 | 中国工商银行股份有限公司 | 一种实现连续服务的数据处理方法和系统 |
CN101256662A (zh) * | 2008-03-11 | 2008-09-03 | 中国工商银行股份有限公司 | 一种实现多时区连续服务的处理系统和方法 |
Non-Patent Citations (1)
Title |
---|
银行业务系统支持多时区的研究实现;陈颖妍;《万方数据 企业知识服务平台》;20110803;第21-30页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103294774A (zh) | 2013-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105069134B (zh) | 一种Oracle统计信息自动收集方法 | |
CN107220892B (zh) | 一种应用于海量p2p网贷金融数据智能预处理工具及方法 | |
CN104239956B (zh) | 准点优先的体检预约服务管理方法及系统 | |
CN101685452B (zh) | 数据仓库调度方法及调度系统 | |
CN104850635B (zh) | 一种多数据源环境下数据缺失自动检查及集中监控方法 | |
CN109144683A (zh) | 任务处理方法、装置、系统及电子设备 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN103473642A (zh) | 一种面向生产调度的规则引擎方法 | |
Lois et al. | Online algorithm for dynamic dial a ride problem and its metrics | |
CN106325984A (zh) | 一种大数据任务调度装置 | |
CN109298924A (zh) | 定时任务的管理方法、计算机可读存储介质和终端设备 | |
CN111400017A (zh) | 一种分布式复杂任务调度方法 | |
CN103294774B (zh) | 基于多时区的对数据仓库进行批量加载的装置及方法 | |
CN115169886A (zh) | 一种pcb钻孔工序自动排程方法、系统、介质及装置 | |
CN103440545A (zh) | 产品批次等级管理系统和方法 | |
CN106130929B (zh) | 基于图论算法的互联网保险领域的业务报文自动处理方法和系统 | |
CN105550351B (zh) | 旅客行程数据即席查询系统及方法 | |
CN109388636A (zh) | 业务数据插入数据库方法、装置、计算机设备及存储介质 | |
CN110287006A (zh) | 一种数据调度方法及系统 | |
CN105446812A (zh) | 一种多任务调度配置方法 | |
CN107730081A (zh) | 一种基于rfid技术的数据采集分析方法和系统 | |
CN105512313B (zh) | 一种增量式数据处理的方法和装置 | |
CN106528051A (zh) | 基于MongoDB的大数据队列堆栈高效操作的方法 | |
CN102243652A (zh) | 一种数据库连接管理方法及装置 | |
CN107277095A (zh) | 会话分割方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |