客快物流大数据项目(四十):ETL实现方案
目录
ETL实现方案
一、ETL处理流程图
![](https://ask.qcloudimg.com/http-save/yehe-1159019/6346ba4e807de07f6c373435920ccdf9.png)
数据来源:
- 来自于ogg同步到kafka的物流运输数据
- 来自于canal同步到kafka的客户关系数据
二、为什么使用Kudu作为存储介质
- 数据库数据上的快速分析
目前很多业务使用事务型数据库(MySQL、Oracle)做数据分析,把数据写入数据库,然后使用 SQL 进行有效信息提取,当数据规模很小的时候,这种方式确实是立竿见影的,但是当数据量级起来以后,会发现数据库吃不消了或者成本开销太大了,此时就需要把数据从事务型数据库里拷贝出来或者说剥离出来,装入一个分析型的数据库里。发现对于实时性和变更性的需求,目前只有 Kudu 一种组件能够满足需求,所以就产生了这样的一种场景:
![](https://ask.qcloudimg.com/http-save/yehe-1159019/10758ef2d2d3fdd7699bbafb8b06671e.png)
MySQL 数据库增、删、改的数据通过 Binlog 实时的被同步到 Kudu 里,同时在 Impala(或者其他计算引擎如 Spark、Hive、Presto、MapReduce)上可以实时的看到。 这种场景也是目前业界使用最广泛的,认可度最高。
- 用户行为日志的快速分析
对于用户行为日志的实时性敏感的业务,比如电商流量、AB 测试、优惠券的点击反馈、广告投放效果以及秒级导入秒级查询等需求,按 Kudu 出现以前的架构基本上都是这张图的模式:
![](https://ask.qcloudimg.com/http-save/yehe-1159019/1689d7de5f0204de41a06e7cfc0a27c1.png)
不仅链路长而且实时性得不到有力保障,有些甚至是 T + 1 的,极大的削弱了业务的丰富度。 引入 Kudu 以后,大家看,数据的导入和查询都是在线实时的:
![](https://ask.qcloudimg.com/http-save/yehe-1159019/ff802abf550e709ea5d932e66e5c2704.png)
这种场景目前也是网易考拉和hub在使用的,其中hub甚至把 Kudu 当 HBase 来作点查使用。