MOIA的日志与预警机制好像在文档没有体现出来

MOIA的日志与预警机制好像在文档没有体现出来,而且我觉得产品本身还有很大的提升空间。今天我大概看了一下MOIA这个产品的介绍,根据我多年的经验来大概谈谈这个平台,由于没有使用过,而对平台只是简单了解,有些地方可能说的不太准确,希望不准确的地方给出回复纠正,从而实现双赢。...显示全部
MOIA的日志与预警机制好像在文档没有体现出来,而且我觉得产品本身还有很大的提升空间。

今天我大概看了一下MOIA这个产品的介绍,根据我多年的经验来大概谈谈这个平台,由于没有使用过,而对平台只是简单了解,有些地方可能说的不太准确,希望不准确的地方给出回复纠正,从而实现双赢。
我从事ETL相关工作有很多个年头了,对大部分主流的非主流的ETL,开源的收费的,都有所了解,MOIA现在好像支持DataStage,对于Inforamtica和DataService支持好像还不是很好。

通过文档了解到moia平台分调度和执行两个节点,一般执行节点都是安装到datastage服务器的主节点上,一般是通过dsapi对作业进行调度(也可通过二次封装dsjob命令来到度);调度节点一般是一个web平台可以将调度的作业导入到独立的库表中,通过平台调度平台向执行节点发出执行指令(传递作业名称和参数等信息),执行后通过dsapi可以取得运行结果和日志等信息。监控系统资源就更简单了,现在有很多java开源包,或c++也可以,可以在执行期内间隔一定时间调用系统底层信息获取系统资源使用情况。

通过文档介绍我觉得所谓的监控只是主动的去打开web页面看作业的执行状态,并没有获取作业执行的日志信息,也没有看到是否有主动的预警机制,例如发短信或邮件通知。这样的只是看执行状态的功能在information server 8.7以后版本都有web平台支持“operation console” 可以监控作业的状态,与日志,在9.1中还能设置parallel job同时运行的数量超过的会在queue里等待,而且还能检查报错作业在执行是的资源使用情况,而且支持主节点资源使用情况的监控。datastage的调度是业界公认的太太太Low了,所以独立的调度机制还是很有必要的,通过java开源的调度框架就能将此提升到另一高度,很多人也都是这么做的,我想moia也是的。

我有一个疑问,我们知道作业有几个运行状态,正常如果上一次运行是abort我们这次运行可以reset后在执行,但是如果这个作业不是多实例而且正在运行状态的时候,通过moia调用时会如何处理,直接返回调用失败吗?是否支持Queue的方式。还有就是报错后恢复执行或重新执行独立的报错作业问题?

我曾开发一个调度模块,可以通过webservice调用任何类型的job并返回调用情况,考虑到几种情况:1.多实例作业的调用;2.单实例作业的调用;3.工作流作业的调用等。当然我考虑到了有的作业是有update或delete操作,会遇到DB的锁问题,这种情况下如果作业已经在运行,可以采用Queue方式进行排队,由于webservice调用可能同时很多上游在通过实时的调用,而每次调用又需要一个比较负杂的过程。 通过web servivce实现了接近实时的数据集成,还可以简化调度,通过url或是soap等方式很容易实现,而且这个功能在大项目中测试的时候,上游可以自己做测试,而不用开发的人去负责调度(因为我们很多项目设计到多个国家,有时差)。在工作流上开发了公共的模块,可将作业名和参数写在简单的txt平面文件或是DB Table中,哪个作业有问题就可以发邮件通知,当然执行失败后是否继续也是很容易搞定的。

我曾做过一个测试通过dsapi在独立的机器上,而不是datastage节点上也是可以实现调度的,这样的情况下可以实现一个独立的web平台,而无需在datastage节点上部署任何东西即可实现调用。也就不会在datastage节点上起服务,而占用系统资源了。在平台方面设计时是否考虑设计通用接口,比如调用不同的产品的通用接口。api方式也好,cmd方式也好。

目前informatica产品在国内发展的也很好,dataservice由于对sap支持更好些,也有很多企业再用。将这两大产品加入其中会增添几分光彩。先到这吧。
收起
参与20

查看其它 9 个回答北京先进数通的回答

北京先进数通北京先进数通技术经理先进数通
非常感谢duzn兄对MOIA的关注。
这里先解释一下关于MOIA的调度机制以及与DS的集成原理:
1.MOIA的调度机制
MOIA当前的版本是MOIA Control 5.02,之前的4.4版本是2008年左右退出的,目前除了老用户外基本不再使用。
MOIA Control 的引擎继承了4.4版本的优点,能够基于事件对象进行高效率的调度流程计算,同时也对产品的应用架构做了优化:执行端不再访问资料库,而是通过服务端发起的Socket通信实现对执行端的控制及信息交互,精简了执行端的服务,执行端所消耗的资源更小,效率也更高。
对于调度过程,MOIA是有自己的调度算法,大体可概括为 物理资源管理+逻辑资源管理+队列控制+动态调度控制+调度对象识别
比如说duzn兄所提到的队列,在MOIA中体现的是多类队列,如待处理队列、待分配队列、处理队列等,根据作业的优先级、逻辑资源消耗量以及ETL服务器集群的物理资源实际情况、逻辑资源情况等综合动态来对作业进行排队处理。这一点是DS的Operation Console的简单队列所无法比拟的。
另外需要说明的是,MOIA的资源管理和作业的执行分配,除了单机作业外,更多考虑的是面向多台服务器的集群环境,因此需要考虑在一个或多个集群中如何最合理、资源最优化、效率最高地将作业分配给最适合的服务器,对于DS作业,更可以根据实际的需要来对单一的DS作业进行单机或多机的资源分配,充分实现DS的多节点并发能力和MPP的集群应用能力。
而对于作业的状态来说,MOIA也会有多种判断机制,像duzn所提及,若某单实例作业已经runing中(未通过MOIA调起),那么在调度时会有错误状态提示并且在MOIA中将其置为错误状态,当然,若需要该作业自动重运行,那么可以在调度属性中加以配置,当作业被调起后发生错误时,会按照实际的重做属性按照指定的时间间隔对其进行重新调度,并会在重新调度时按照作业的流程自动提升优先级进行插队处理。
当然,如果详细讨论调度原理的话,可能是一个很长的内容了,这里只是简单的来说一下。
2.MOIA对DS的调度机制
MOIA Control对DS的调度既可通过API也可使用CMD,可以通过配置属性来自行调整,当然,默认情况下是使用DSAPI。对于DS多实例方面,可以充分应用DS的多node机制,单机或多机运行job。同时,在易用性方面,MOIA Control集成了4.4版本自动获取DS对象的特性,仅通过点击的方式方便用户简单方便地将DS作业配置在MOIA控制台中。
另外,还可以灵活针对DS的资源项进行文件系统管理,比如可以直接在MOIA中分配Scratch,将缓存指定到SSD上以提升DS的执行效率。
3.MOIA的主要功能特性
MOIA的主要功能是对可执行程序或应用进行调度,并实现服务器资源管理、调度流程管理、动态负载均衡等功能,同时针对平台的用户管理、对象管理等加以合理有效的权限、角色、有效性等控制;而在运维方面,MOIA重点突出简化运维工作的功能,诸如自动重做、自动坏节点退出等功能可以解放运维人员的手工工作,通过短信、邮件、声音等报警功能,更可以向运维人员发出即时的报警信息。
4.MOIA对应用的集成
目前MOIA深度继承了DS,而对于其他的ETL产品,MOIA主要通过CMD的方式进行支持。当然,随着研发的进展,MOIA将会进一步加强产品集成,包括Informatica在内的主流工具都将以API的接口深度集成在MOIA中。
目前在大数据产品环境下,MOIA已经向前迈出了一步,已经开始了大数据产品的集成研发,在国内与华为大数据产品达成了深度合作的意向,并已有实际项目案例。
系统集成 · 2015-07-16
浏览1787

回答者

北京先进数通
技术经理先进数通
擅长领域: 大数据商业智能监控

北京先进数通 最近回答过的问题

回答状态

  • 发布时间:2015-07-16
  • 关注会员:3 人
  • 回答浏览:1787
  • X社区推广