大数据平台的建设思考——数据汇聚

大数据平台的建设思考(一)

常规大数据建设、数据中心建设,会经过以下阶段:数据汇聚、清洗整合、融合、数据融合,数据输出给各个大数据应用使用。


将整个数据流比作炒一道美味的菜肴,那么对应关系:
- 买菜——数据汇聚 (业务系统->ODS层)
- 洗切菜——清洗整合(ODS层->DWD层)
- 炒菜——数据融合(DW、DM层)
- 上菜——数据输出(API服务、数据交换)

注:数据仓库中,数据分为四个层级:接口层(ODS)、整合层(DWD)、中间层(DW)、汇总/集市层(DM)。

数据汇聚

数据汇聚,或者称作ETL,将不同的业务系统的数据加载到数据仓库中。数据汇聚有多种方式,按照数据汇聚的传输方式,可以分为文件传输、数据抽取、内容爬去和消息推送 (本次不多做介绍)等方式。
其中文件方式需要业务系统定时进行数据抽取,需要业务系统改造;数据抽取不需要业务系统改造,试用场景多;内容爬去,针对无法访问数据库,只能访问网页或者API的方式。
先来说说适用范围比较多的数据抽取方式,存在着诸多难点需要解决。

踩过的坑

  1. 多数据源适配:业务系统的数据库是不确定的,有可能是MySql、MSSQL、DB2、Oracle等等,各种各样的数据源。而汇聚,就需要适配各种数据源,并将数据抽取到数据仓库中。
  2. 增量数据抽取:业务系统是24时不停歇的运转,对数据量较大的表,无法全量抽取,只能增量抽取,而增量抽取,如何判断哪些数据是增量成为一个难点问题。主流的方法包括:时间戳、ORACLE的CDC、以及数据备份日志。
  3. 数据传输过程中断:由于业务系统、网络等原因,会出现数据同步过程中同步任务中断。如何确保任务重启后不会出现数据重复的问题、断点续传的问题。
  4. 上游系统数据结构变更未通知:经常会出现上游业务系统升级改造,数据库表结构发生变更,而未及时通知下游的数据中心,导致抽取的数据不对、缺失等问题。
  5. 数据业务复杂难懂:部分业务系统由于业务逻辑复杂,导致库表的结构复杂、难懂,且没有相关文档说明字段口径,下游的数据仓库无法直接利用这些数据。
  6. 数据异常导致的任务失败:由于源端数据库与数据仓库不一致,导致部分数据抽取或文件方式中存在乱码、脏数据,进行LOAD过程无法入库,导致任务中断。
  7. 上游业务数据未处理完成:部分业务系统的数据处理量复杂,往往要等到第二天凌晨才能处理完前一天数据。此时,需要数据仓库判断上游业务系统处理任务有无完成,只有完成了进行抽取才能得到完整的数据。

以上这些问题,我在之前的项目中都遇到过,需要在项目建设过程中积累、沉淀,找到各个问题的解决方法,如有机会在后续文章中分享。

汇聚工具

在大型的数据平台的建设过程中,会使用特定工具进行数据汇聚,这样能大幅提高汇聚的效率。此类工具有很多,比如开源的kettle、IBM的datastage等工具。当然很多大数据公司基于kettle也构建了自己的汇聚工具,比如databrige工具就挺好用的。

存储策略

汇聚到大数据平台的数据,我们称之为接口层,一般保留7+2天,用于回溯上游数据质量问题时使用。

如果这块展开写,可以写非常多,比如如何做数据源的适配、如何确保数据的完整性、如何监控上游数据源表结构的变化等等。总之,数据汇聚的目的就是将数据准确、完整、原封不动的复制到大数据平台中供数据处理。
后续有机会可以详细和大家聊聊。

你可能感兴趣的:(大数据技术)