大众点评平台ETL概念设计与实现
2016-07-07 10:35
239 查看
5.1平台ETL概念设计与实现
任务是该企业ETL数据传输平台调度和运行的基本单位,任务是一次传输或一次转换。任务分为计算任务和传输任务。传输任务还可以细分:一种是普通的传输任务。数据的输入来自关系型或Nosql数据库。另一种是后端日志拉取再经过解析程序(如MapReduce等)存入分析库。计算任务主要分为三类:HiveHql任务、JavaJar包任务和Python、Shell等脚本任务。有任务自然就有实例,在该企业ETL实践中,实例分为两种,一种是预跑实例,即不通过调度系统用户手动运行的实例。这主要是为了满足任务测试和补足先于任务存在的历史数据的需求。另一种是调度实例,即靠调度系统按照任务的Cron表达式定时调度生成的实例,这是生产环境中的主流。
任务存在工作流的概念,即多个任务按时间顺序组合在一起的工作流。一般一个工作流对应一个完整ETL过程。上游的任务必须在下游任务开始之前结束,否则下游任务会一直处于等待状态。另外,上下游任务之间具有顺序强制性的,之间叫强依赖。没有顺序强制性的,叫弱依赖。与任务类似,实例之间的上下游关系是调度起来的那一瞬间任务上下游关系的快照,也具有强弱依赖的区别。
任务还存在高低密级的概念,因为很多数据涉及用户的隐私和公司的隐私,大部分时候这些列的数据也没分析的必要(如用户登录密码),所以对数据传输任务区分了高低密级,一般任务默认为低密级,会过滤掉高密字段。高密任务必须咨询管理员后,由管理员代为配置。而一个列或一个表是否为高密这是由元数据信息得到的。元数据存储有专用的服务接口可供调用。
另外,传输任务传的是新增部分,叫做增量传输。如果穿的是全部,则叫做全量传输。这和数据ETL过程的两种类型对应[19]。全量传输一般用于任务刚创建、需要补足历史数据,而增量传输则用于每天更新数据,一般来说,需要ETL抽取分析的源数据表必须具有一个Timestamp字段或者自增的主键字段来标识增量。
相关文章推荐
- 康诺云推出三款智能硬件产品,为健康管理业务搭建数据池
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- php+ajax导入大数据时产生的问题处理
- C# 大数据导出word的假死报错的处理方法
- 用Python实现协同过滤的教程
- Python利用多进程将大量数据放入有限内存的教程
- mongodb常遇到的错误。
- 整理硬盘发现几个以前做的视频,分享下
- Stack数据结构的特点后进先出的应用:大数据运算
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- Spark机器学习(二) 局部向量 Local-- Data Types - MLlib
- Spark机器学习(三) Labeled point-- Data Types
- YARN或将成为Hadoop新发力点
- Hadoop 1.x版本伪单机配置
- Glusterfs的编译选项 #pragma GCC poison system popen
- Python 大数据思维导图
- Spark HA部署方案
- Spark HA原理架构图
- HADOOP的HA部署方案