不多说,直接上干货!
这里,我说的通俗易懂点,好方便大家的理解。
ETL解决方案就像业务流程一样,具有输入、输出,以及一个或多个工作环节,处理步骤。同样的,这些步骤也具有输入和输出,并可以执行将一个输人转化为输出的操作。
想一想,例如,在一家保险公司理赔部,门上有一个大牌子,上面写着理赔部,这就意味着它描述了部门的主要职责和业务:处理理赔。而在部门里,你会发现每张办公桌上或分部门可能有其自身的特点:健康保险理赔、汽车保险理赔、旅游保险理赔,等等。当接纳一个理赔案件时,首先确定这个理赔将被哪个部门处理。然后部门办公人员根据是杏有提供理赔必需的信息来决定是否处理它,如果不符合的话,退回给提交者,并且给予说明。理赔处理的工作时间是每天早上9点到下午5点。
这个例子和ETL处理过程非常相似:首先一个验证步骤去确定到达的或者被抽取的数据是哪种类型,然后数据被送到一个特定转换去处理。当转换执行完后,数据将被传递到下一个转换或者一个目标表,并在发生错误的情况下,被转移到一个错误处理流程进行处理。每个晚上凌晨3点,一个调度程序开始此项任务并且直到所有数据被处理才结束。
你现在可能能对设计ETL处理流程有一个整体的认识了。从前面的例子可以推断出,必须有某种机制来控制整个处理流程,以及实际转换的细节工作。用Kettle的术语阐述的话,前而部分称为作业(job ),后面部分称为转换(transformation )。
作业是ETL解决方案的代理,而转换是基础的构建两部分。
独立的转换能够被链接在一起形成一个具有逻辑顺序的队列,形成一个能被调度和执行的作业,就像一个业务流程。同样的,转换也是由几个步骤组成的。步骤是Kettle解决方案的第三种基本构成块,而步骤之间的连接关系由跳(hop)来决定。