OLAP ODS 项目总结 ETL中的流程

   ODS-BI 建设中ETL要占用1/3 的时间,深有感触。BI的建模,从物理数据层,逻辑数据层,业务逻辑层各个层次,都有很多自动化的工具可以处理。

但是ETL 中的流程确要根据性能来设计的。总结下这几个部分。

   1.数据源/数据目标管理

   确定数据源的表,文件,或者RESTFUL的URL,ODBC,值得注意的是,在数据源时,同时关联号外主键关系,对ETL数据有效性帮助很大。

   目标数据,可能不同的主题使用了不同的数据库,各个数据库的地址,ODBC,JDBC等信息。 目标数据大部分情况下不需要建索引,主键,因为

  目标数据库数据量大时都会使用批量入库,也就是bulk模式,索引会使入库失败。

  2.MAPPING 管理

   工作量的大头,建议命名方式 主题_维(事实)_source_target ,其中的组件也物化八门,其中还涉及到外部调用(SHELL ,存储过程等),有 过滤器Filter,

类型转换器(Express),监听器(Lookup),分发器,存储过程调用 ,连接器组件(Join)等等。还有ETL中的变量和参数的使用,比较难。

  有些原则:尽量使用SQL中WHERE子句,而不要使用过滤器。对大表不要使用LOOKUP,Join 组件。 数据源使用bulk 方式等等。可以看看网上的ETL 优化的原则。

   MAPPING 是ETL性能和一致性的关键。

  3.WORKFLOW 的管理

  MAPPING完成了数据的ETL的过程,但是WORKFLOW 完成的是整合到系统的利器。

  在WORKFLOW中,通常一个主题一个WORKFLOW,在整个流程可以通过时间戳设置来完成 增量抽取。同时流程的统计数据的收集,ETL状态的监控信息的收集。到最后的运维邮件的发送,或者其他SHELL 的调用。 都在这个过程中。

  要高级点,WORKFLOW的回滚,断点恢复都是要考虑,实现起来挺郁闷。

  4. 调度器的管理

  时间窗控制的工具,ODS的时间戳的控制通过调度器来控制。 时间窗根据业务高峰期,业务特性来设计和调整。

  有些ETL工具有自带的调度器,也可以通过其他语言开发封装调度器,这样更为灵活。还可以使用数据库中的JOB来完成。甚至BI端的物化视图的刷新也可以放在调度器中进行。

  5.状态监控 --运维系统

 

原文地址:https://www.cnblogs.com/jerryxing/p/2918250.html