您的位置:首页 > 技术园地 > 热点问题 > 如何做增量处理

如何做增量处理

       对于存在增量标示的字段的业务表可以根据增量标示的字段来监控增量信息,增量标示的字段可以是时间类型的字段,也可以是具有递增信息的字段。如一个业务表含有日期字段IDate,位于Sybase的数据库,其增量抽取的选择语句为IDate >= convert(datetime,’起始时间’) and IDate < convert(datetime,’结束时间’) 可以用动态规则来定义业务的字段的选择语句。
511

       其中,该例子的动态规则表达式为:IDate >= convert(datetime,’#') and IDate < convert(datetime,’#'),‘#’表示变量,第一个为起始时间变量,第二个为结束时间变量,其选择根据数据加工服务类型的不同而不同:
表复制服务 表复制的自定义开始时间 表复制的自定义结束时间
表转换服务 表转换开始时间 表转换结束时间
表写文件服务 表写文件的开始时间 表写文件的结束时间
表映射文件服务 表映射文件的开始时间 表映射文件的结束时间
表路由服务 表路由的开始时间 表路由的结束时间

       对于增量处理,为了保证处理的可靠性采用了数据加工增量处理控制表和数据加工增量控制生成器。
数据加工增量处理控制表控制数据加工处理服务的运行,该表记录(增量等)控制信息、成功完成标志等信息,只有当数据加工处理服务完成时,成功完成标志位才设为“Y”,当抽取过程中出现意外,成功完成标志位不为“Y”,下次数据加工处理时,将对被遗漏的数据重做数据加工处理。数据加工处理控制表主要根据数据加工处理服务的类型不同,分为以下几种:
表复制控制表(ETL_CQZT)
       记录了被抽数据库的标示、被抽的表名、增量抽取的判断依据(如果是依据时间,则为增量抽取开始时间、增量抽取结束时间)、处理开始时间、处理完成时间、成功完成标志等信息。
表转换控制表(ETL_TMAPZT)
       记录了转换处理的服务标示、增量抽取的判断依据(如果是依据时间,则为增量抽取开始时间、增量抽取结束时间)、处理开始时间、处理完成时间、成功完成标志等信息。
表写文件控制表(ETL_TWFZT)
       记录了表写文件处理的服务标示、增量抽取的判断依据(如果是依据时间,则为增量抽取开始时间、增量抽取结束时间)、处理开始时间、处理完成时间、成功完成标志等信息。
表-文件转换控制表( ETL_TFMAPZT )
       记录了表-文件转换处理的服务标示、增量抽取的判断依据(如果是依据时间,则为增量抽取开始时间、增量抽取结束时间)、处理开始时间、处理完成时间、成功完成标志等信息。
表路由控制表(ETL_TTRouterZT )
       记录了表路由处理的服务标示、增量抽取的判断依据(如果是依据时间,则为增量抽取开始时间、增量抽取结束时间)、处理开始时间、处理完成时间、成功完成标志等信息。

       数据加工增量控制生成器在数据加工运行时动态给数据加工处理服务生成增量控制信息,并将控制信息存于数据加工增量处理控制表中,数据加工处理服务在在做数据加工处理前先调用数据加工增量控制生成器,并将处理类型、服务标示、处理数据标示、定时调用的时间间隔等信息传递给数据加工增量控制生成器,数据加工增量控制生成器将根据处理类型给相应的控制表动态生成控制信息,并将该次生成的完成标志位设为“N”或空。数据加工处理服务根据约定处理所有在控制信息中与该处理标示或数据标示相匹配的完成标志位设为“N”或空的处理。数据加工控制生成器为存储过程,用户可以根据其需要作个性化定义或修改。
       数据加工处理服务使用数据加工控制表和数据加工控制生成器可以通过可视化的方式完成配置,具体操作如下所示:
       对于表复制服务,在表复制定义界面内选择增量抽取、选择需要增量控制生成器,提供该服务的增量控制生成器存储器名称,和相应的增量间隔(如果增量依据是时间,则为时间间隔,如果是依据连续序号,则为序号间隔)

52

       对于增量处理的选择规则可以在《选择表配置》页面定义,表的条件类型选择为SQL规则、条件内容选择为刚才定义的动态规则。

53

       对于表转换服务/表路由服务/表-文件转换服务,在其定义界面内选择修改条件按钮将弹出条件设置对话框,在条件设置对话框内选择需要增量控制生成器,提供该服务的增量控制生成器存储器名称,和相应的增量间隔(如果增量依据是时间,则为时间间隔,如果是依据连续序号,则为序号间隔)。表的条件类型选择为SQL规则、条件内容选择为刚才定义的动态规则。

54

       增量控制生成器为SQL存储过程,可以采用系统提供的,用户也可以根据项目的特点作相应的修改。该增量控制生成器生成的增量时间信息是连续的,上次的结束是下次的开始,间隔为定时间隔。