回溯法 批处理作业调度_不懂调度系统架构,就不要谈银行数据仓库
调度系统是数据仓库的重要组成部分,也是每个银行或公司一个基础软件或服务,需要在全行或全公司层面进行规划,在全行层面统一调度工具和规范,由于数据类系统调度作业较多,交易类系统批量优先级高,为不互相影响可以和交易类系统独立分开,建立2套调度环境。
1.调度系统常见架构
上图是一种常见的调度架构,它分为两个部分:
(1)调度服务器集群作为调度中心,对调度批次和作业进行创建、管理、监控,它负责所有批量作业的调度和编排;
(2)代理(agent): 在各需要调度的服务器上需要安装一个agent,agent主要从调度中心获得指令执行服务器上作业,并将结果返回给调度中心,调度系统需要支持多种操作系统,因此agent需要兼容多种操作系统,但如果服务器上作业可以远程调用的话可以不安装agent。
另外还有一种架构也比较常见,架构和上图一样,但是在调度集群中心建立作业后,所有的作业被分配到各agent,由agent来调度作业的执行,调度中心只负责管理和结果监控,作业的调度编排、执行由agent进行,这种架构的好处是避免了调度中心故障不会影响批量调度。但agent的资源消耗和维护工作量较大。这种架构在交易系统中使用较多,但随着目前集群和数据库的HA越来越稳定,这种架构也慢慢在减少。
2.数据类系统重点功能及批量设计
由于调度系统较多,开源的也比较多,但是对于数据类系统的调度有一些实用的功能可以在选型或开发中重点关注,一些常见的功能如依赖、触发、多批量等就不再赘述。
(1)防重复启动
这个主要是控制一个作业在执行市不能再次被执行,许多设计会设置互斥文件或变量来实现,但在作业各种异常(如网络中断)后,也需要有机制或功能清理互斥文件和变量,以免不能重做作业。
(2)批量重跑
许多调度工具可以支持单个作业重跑,但是数据类系统作业关联性较大,如果主数据区作业发现正常结束但是数据异常,修复后需要重新跑依赖该作业的中间层、集市的作业。因此在任一个作业节点可以批量重跑后续作业,避免手动单个作业按顺序重跑,这个功能会对问题处理带来很大的效率提升。比如下图的作业流图中,作业B1数据错误,批量重跑时会将后续依赖B1作业的C1、C2以及后续的D1、E1作业都进行重跑。
(3)对接预警系统和ETL系统
对接预警系统主要是指将作业异常发送的统一预警系统进行通知,对接ETL系统主要是做好加载、抽取、数据转换作业、数据质量检查作业的调度和日志监控,因为调度系统也是数据仓库一个重要组成部分。
(4)时间监控和预警
由于关键作业没有执行完成会影响后续所有的批量作业,可能导致数据应用系统无法按时提供服务,比如数据仓库替核心系统计算久悬账户,所以经常需要对关键作业进行时间点的监控,比如3:00前作业未启动或未完成就进行一级告警。
(5)用户权限管理
作为一个全行的基础系统,用户权限管理主要是为了各系统开法运维人员各自负责自己的批量调度,以免互相影响。
(6)配置化导入和更新
由于ETL等作业都是可以根据作业属性和数据库表信息自动生成调度作业,因此为了方便开发,可以将作业批量信息导入到调度系统,批量创建修改作业,避免手工增加修改作业。
(7)监控可视化
监控可视化主要是对批量作业流能清楚看到当前哪些作业已完成,执行中,待启动,也可以看到整个批量作业的依赖路径,更智能的话可以通过每天的作业执行情况,自动分析出关键路径。
3.批量作业流设计优化:
(1)作业优先级设置
通过合理设置作业优先级,提前完成批量作业路径中的关键作业,提高整体时效。对于为交易系统以及高时效的监管报送系统的数据批量作业,需要单独分批次并设立高优先级,以确保不受其它作业影响。
另外作业依赖必须细化到作业级别,而不是依赖整个作业流或批次完成,即精细化管理,虽然复杂些,但能很大提高整体批处理的时效。
(2)合理设置源系统作业的抽取时间
由于源系统有些表依赖源系统的日终批处理完成,如内部总账,而有些表不需要依赖如客户信息、交易流水,可以在日切后分批次抽取源系统数据,将作业启动时间提前;
(3)批量作业分析及优化
定期如每周、每月对整个数据仓库批量作业进行汇总分析,重点关注源系统提供数据时间、作业时长超过30分钟的作业、作业时长增加比例最高的作业等,通过分析来确定优化作业并启动优化,一般可以通过重建表、优化SQL、重新分布表数据、增加资源等方式来优化作业,减少执行时间;
(4)关键批量作业监控
数据仓库中对于交易系统的数据加工往往会影响到银行对客户的服务,因此对关键作业和节点需要进行及时处理,如源系统数据提供时间、重点表的加工作业完成时间、高时效应用的数据提供作业完成时间都需要设置预警,报警时由值班人员及时处理。
关于银行数据仓库系列,笔者还会不断更新,欢迎继续关注~
往期回顾:
银行数据仓库总体介绍:银行数据仓库都是这样的,一文了解
银行数据仓库的系统架构:银行数据仓库的系统架构是什么?看这篇足矣
银行数据架构体系:深度分析|一文读懂银行数据架构体系
回溯法 批处理作业调度_不懂调度系统架构,就不要谈银行数据仓库相关推荐
- 算法设计与分析——回溯法——批处理作业调度
问题描述:给定n个作业的集合{J1,J2,-,Jn}.每个作业必须先由机器1处理,然后由机器2处理.作业Ji需要机器j的处理时间为tji.对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时 ...
- 回溯法——批处理作业调度
问题描述 给定 n 个作业的集合 j = {j1, j2, ..., jn}.每一个作业 j[i] 都有两项任务分别在两台机器上完成.每一个作业必须先由机器1 处理,然后由机器2处理.作业 j ...
- 算法设计与分析——第五章回溯法 批处理作业调度 + 最大团问题+图的m着色问题
文章目录 6.批处理作业调度(排列树) 7.最大团问题 8.图的m着色问题 6.批处理作业调度(排列树) 每一个作业Ji都有两项任务分别在2台机器上完成.每个作业必须先有机器1处理,然后再由机器2处理 ...
- 高能分享,直击华坤道威(Fuzer)调度系统架构设计专题线上技术讨论沙龙
从「鲜为人知」的专业名词,到 2006 年的精准定义,再到如今全面上云时代的「百花齐放」,云计算的发展趟过蛮荒之地,已形成极具规模.高可靠性.通用性的服务,而开源是创新的基础,也是这一场技术革命中的重 ...
- python 回溯法 01背包问题_回溯法解决01背包问题
回溯法是一个既带有系统性又带有跳跃性的搜索算法. 它在包含问题的所有解的解空间树中按照 深度优先的策略, 从根节点出发搜索解空间树. 算法搜索至解空间树的任一节点时, 总是先判断 该节点是否肯定不包含 ...
- 回溯法基本思想_回溯算法(一)
一.什么是回溯算法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就"回溯"返回,尝试别的路径.许多复杂的,规模较大的问题 ...
- 基于MySQL的调度系统_仓储调度系统的设计与实现(SSH,MySQL)
仓储调度系统的设计与实现(SSH,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文14000字,程序代码,MySQL数据库) 仓储调度系统使用了目前主流的Struts框架模型, ...
- 黑马程序员Java培训、Android培训_银行业务调度系统笔记
银行业务调度系统 一.学习心得: 第一点,和交通灯系统一样,银行业务调度系统也必须用面相对象的思想来设计,不然会很繁琐.所以,必须在平时的学习中重视面向对象设计的练习和掌握. 第二点,要设计这个银行业 ...
- java 有向无环图_数据调度系统中有向无环图的无环检测
点击上方蓝字关注DolphinScheduler(海豚调度) |作者:鲍亮 |编辑:卢凯瑞 1 名词解释 DAG,全称:Directed Acyclic Graph,中文:有向无环图 入度:有向图中某 ...
最新文章
- OpenCV3.3中逻辑回归(Logistic Regression)使用举例
- 学了这些,他薪资涨了40%,收割了阿里、头条、快手等大厂的offer!
- Linux中为wget命令设置代理
- TensorFlow MNIST初级学习
- getParameter的用法总结
- SLAM学习--帝国理工学院机器人课程slam部分讲义(附下载链接)
- NoSuchBeanDefinitionException - not resolved currently
- 强烈推荐!孩子的科普从这套全球畅销250万册的最酷科学书起步
- JavaScript笔记-表格中放按钮并点击调用
- python代码删掉了几行怎么撤回_仅78行代码实现微信撤回消息查看 | Python itchat
- cocos2d-x 是男人就下100层 附源码
- 洛谷——P2077 红绿灯
- ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defi
- 带型带秀专题之 Lazy Load (一)
- 转载---ubutun18.04系统安装搜狗输入法
- js获取今天剩余时间_骚姿势获取无线路由器后台权限
- 西游解密:唐僧为何一定要去西天取经
- 柏拉图《会饮篇》阅读笔记
- 使用画图软件更改图片大小
- 网站安全防护方案--WEB应用防火墙