|
一体儿产品的核心能力
一体儿工具究竟给什么样的人用的?
从目前主流的一体儿产品来看,有一种将开发者当作傻瓜来看,他们用鼠标托拽就可以完成一个过程,开发、维护都很方便。可有一个问题,开发者并非真的傻瓜,他们希望有更强的定制能力,能够有更强的批处理能力。 前段时间,论坛上不是有个人问如何导八百个表的问题吗?源、目标结构一样,考虑用工具实现,那不得做死他,点击鼠标直到抽搐。如果此时能够自动得到源表、目标结构,设计一个模板,生成SQL脚本来处理岂不妙哉?原来的问题提到早先是用SQL实现过,但性能不行,这应当不是没有使用工具不行,恐怕是哪些语句写的不咋地。 工具的好处在于其便于管理一体儿过程,特别是具有复杂转换关系的一体儿。但对于普通关系不复杂的转换,以前我们曾经考虑不用工具实现,用存储过程更加简单,例如仅仅从一个表汇总,用存储过程就是一条语句(当然,一般得套上一个通用模板),用工具,得拖上源结构、目标结构,然后再拖上汇总组件等等。可见,如此的开发其实并不便利。再说维护,当一个目标表结构变了,如果是存储过程,改写其中的过程即可。如果是工具呢?恐怕要重新导入目标结构,再用鼠标托拽几次。特别如果是一系列相同类型的变更,例如有十个表的某个字段名要重新命名,在存储过程中可以全程替换。而在工具中,还得一一重新设置,此时的开发者,可真的像傻瓜一样了,坐着枯燥重复的工作。 当然,此处并非说存储过程比工具好。而是想抛出一个问题——"一体儿工具的核心功能到底是什么?" 常见的工具,如Datastage和Powercenter都在图形界面,对转换这个环节的考虑,内置了多少种插件等等,然而它们在流程控制上其实做的并不十分漂亮。反而,我认为后者应当是一体儿产品的核心功能。 请注意用词,上面一直都是在说工具,此处改成了"一体儿产品",因为以前一体儿产品给人的影响是帮助开发者做转换的,是"工具",但实际上其更重要的功能应当是提供数据整合的框架,也就是打好骨头架子,排骨在哪儿,盆骨在哪儿,然后填肉。对于数据整合的工作来说,这个骨头架子就是流程、元数据的支撑。 流程,也就是抽取、转换和装载等过程的依赖关系,它们执行的串行、并发控制等;元数据则集中在一体儿的元数据,先不用考虑其他诸如数据质量等元数据,一体儿的元数据其实主要就是源、目标结构,转换逻辑,过程依赖关系、数据依赖关系等。 缺乏这个核心能力,一体儿只能是一种工具,一种造肉的工具,本来想堆个人性,可哪些肉就像烂泥一样摊在一起。 可以套用一个一般性原则,"专业的人作专业的事情",不光是个人,是企业,都要考虑自己的核心竞争力,在这方面做的比别人强才牛比。那么一体儿产品的竞争力在何处呢(这里并非是指具体某种产品)?是否有其他可替代的呢?如果说在抽取、转换、装载本身上,肯定有替代,抽取,一般用SQL能做到,产品的竞争力可能是内嵌对多种数据源的支持,可一般国内,这种情况似乎也并不十分多见,常见的数据源类型也就是表、数据文件嘛;而装载,即使是现在,基本也都用的是数据库自带的快速装载工具。至于转换,上面也提到,没有复杂规则的转换也不是其强项,只有那种具备复杂的规则(难以管理)的转换,它可能还能凸现作用。说到转换的性能,可能工具在这方面考虑的比较多,确实能够比普通的SQL性能好,可一般也都有复杂的参数配置,诸如缓存大小什么的,如果你配的不好,恐怕连普通SQL的性能都达不到。反而也体现不了它的优势。 能够形成自己优势的就是对流程的控制、调度,数据库没这个功能;元数据,其实数据库里面已经有表结构的元数据,可可能分散在不同库中,或者如果数据不是放在表里,而是在文件里面,这个元数据也就未被数据库记录了。因此这也可以算是一体儿产品的优势之一吧。 如果一体儿产品能够提供如此的框架,再在抽取、转换、和装载上面提供一些可选的内置功能。最后,在项目中,开发者可以用存储过程来处理转换,可以编写c程序来抽取数据,可以用命令行调用第三方工具来装载数据。而这些程序都遵循一体儿产品的某个接口,例如输入输出参数、命名、位置等约定,那么这些过程就都能够被管理起来,形成比较完整的数据整合系统。
责编:姜玲
微信扫一扫实时了解行业动态
微信扫一扫分享本文给好友
著作权声明:kaiyun体育官方人口 文章著作权分属kaiyun体育官方人口 、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
|
热门博文
|
|