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.状态监控 --运维系统

 转:http://www.cnblogs.com/jerryxing/archive/2013/02/20/2918250.html

时间: 2024-12-14 18:40:46

OLAP -- ODS 项目总结 -- ETL中的流程的相关文章

OLAP -- ODS 项目总结 -- BI 中的关键

这个项目在年前已经完成,回顾起来小问题挺多.有点乱.还是从需求说起. 一.单纯讲需求每个行业的都不同.很难划一而论.总体来说也就是这几个方面 1.时间窗 常见的分类也就1类ODS ,II类ODS ,III类ODS I类ODS:与应用系统的数据延迟为1~2秒,实时或近似实时 II 类ODS:与应用系统的数据延迟为2~4小时 III类ODS:与应用系统的数据延迟为12~24小时 IV类ODS:数据仓库中部分决策分析数据回流至ODS中 数据实时性越高,越好CPU ,软件成本越高.在 选型时也不同, 如

OLAP --ODS 项目总结 -- 说说缓慢变化维

如果不是OLAP 系统或者BI系统,我们在生产环境下常遇到这样的问题 需要同步两个表.比如交通驾驶人,每个月需要同步. 表O_DRIVER_SOURCE 是来自第三方的源表,O_DRIVER_TARGET是本系统需要使用的目标表.现在需要同步这两个表很容易想到的 解决方案是 1.使用存储过程,有点复杂 2. merge into 语句 Merge into target O_DRIVER_TARGET Using O_DRIVER_SOURCE On ( O_DRIVER_SOURCE.driv

OLAP --ODS项目的总结 --起步阶段

刚开始起步阶段,很多人都认为是DW选型,ETL工具选型或者构架等问题,这些其实都是 技巧上的问题,真正从项目上,业务上的观点来看,有点狭隘. 一个网友的观点给我启发很多,就是使用5W1H的工程方法,先把事情想明白. 5W : WHO ,WHAT,WHY,WHEN,WHERE WHO:(谁来对源数据负责)   业务数据源的维护人员,是重重之重,甚至是建设好DW的基石,这个项目比较小,我就是源数据的维护人员.其实我是中途出道,表不是我设计的,真正需要同源数据人员沟通的需要如下几点 1. 表结构符合的

OLAP -- ODS 项目总结 -- 脚本自动化

其实,同其他后台项目一样的问题,就是最后是个交钥匙工程,一个BAT,或者SHELL 到最后什么都完成,日志,结构,数据都明确,不需要额外的配置,最后需要达到这个目的. 这个主要分为三个部分 1.ORACLE 数据 模型建立 >1.  入口脚本 INSTALL_ODS.BAT ,其中需要调用一下的组件. >2. 创建 数据库表空间,数据库用户. >3. 对数据库用户进行授权. >4. 模型 导入,建立表结构, >5. 导入 事先声明的维数据. 2. 使用脚本 创建ETL需要的存

OLAP --ODS项目的总结 -- 平台选型,架构确定

说一下,目前我们基础数据平台的机构. OLTP: OLTP 主要使用ORACLE 平台,集群环境使用的是RAC.在前端做数据采集的还有SQLSERVER,但是目前初步不会从其中取数据. 中间件:主要使用的是 ORACLE FUSION ,也就是 WEBLOGIC, 在这个层次,主要考虑的是 平台的EM管理的需要. 比如ETL 平台的的管理是    支持哪些, DSS平台的管理是支持哪些. BI:     BI 使用的平台是OBIEE ,主要原因是考虑到 移动BI的扩展,和我们部门 ORACLE

BOS项目 第10天(activiti工作流第二天,流程变量、组任务、排他网关、spring整合activiti、项目中实现流程定义管理)

BOS项目笔记 第10天 今天内容安排: 1.流程变量(设置.获取) 2.组任务(候选人.候选组) 3.排他网关使用 4.spring整合activiti 5.将activiti应用到bos项目中 6.在bos项目中实现流程定义管理(部署.查询.查看png.删除) 1. 流程变量 1.1 设置流程变量的方式 l 方式一:启动流程实例时设置 l 方式二:办理任务时设置 l 方式三:使用RuntimeService的set方法设置 l 方式四:使用TaskService的set方法设置 注意:如果设

ETL中的数据增量抽取机制

ETL中的数据增量抽取机制 (     增量抽取是数据仓库ETL(extraction,transformation,loading,数据的抽取.转换和装载)实施过程中需要重点考虑的问 题.在ETL过程中,增量更新的效率和可行性是决定ETL实施成败的关键问题之一,ETL中的增量更新机制比较复杂,采用何种机制往往取决于源数据系统的 类型以及对增量更新性能的要求. 1 ETL概述 ETL包括数据的抽取.转换.加载.①数据抽取:从源数据源系统抽取目的数据源系统需要的数据:②数据转换:将从源数据源获取的

MyEclipse如何安装egi插件及如何将github项目引入MyEclipse中

一.如何查看MyEclipse版本及Eclipse版本号 查看MyEclipse版本号:MyEclipse主界面的菜单栏的最左边"help"->选择"About MyEclipse Enterprise Workbench"选项,如下图所示: 查看Eclipse版本号:在MyEclipse的安装目录下,打开.eclipseproduct文件,如下图所示: 表明Eclipse的版本号为3.8 二. MyEclipse安装egit插件 接下来,我们需要在MyEcl

PHP中的流程控制

PHP中的流程控制: 任何PHP脚本都是由一系列的语句构成.一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句).语句通常以分号结束.此外还可以用花括号将一组语句封装成一个语句组.语句本省可以当作是一行语句. if语句 if结构是很多语言包括php在内最重要的特性之一,他允许按照条件执行代码片段.php的if结构和C语言相似: <?phpif($a > $b) echo"a is bigger than b"; ?>