一个完整的大数据项目架构可以分为数据采集层,数据存储层,数据计算层,数据接入层和数据应用层、基础服务层 。

根据大数据项目的分层架构的自底向上的顺序(数据流转顺序),应该关注:数据的采集与存储、大数据计算、大数据监控。

与传统项目开发相比,大数据项目开发具有如下特点

1)数据量大。带来的问题就是资源消耗过大

2)一般涉及机器学习算法和模型

3)大数据项目交付的是数据

4)更多使用sql、java、python进行开发。其中使用最多的是sql.

数据存储层数据采集层数据分析层 数据采集和存储_数据存储层数据采集层数据分析层

 

 

 

 

下面说下数据的采集和存储

数据采集主要分为3类:网络数据采集、服务端日志采集、客户端日志采集。在数据采集过程中,通常还需要进行数据的同步、汇总操作。最终,讲这些采集的数据进行存储以及支持后续的数据的数据处理与数据计算。

服务端日志采集

客户端日志采集:

   主要又分为页面浏览日志采集与页面交互日志采集

数据同步

   直连同步

  直连同步是通过api和动态链接库的方式直接连接业务数据库,如odbc、jdbc等标准接口。

  优点:配置简单、实现容易。

  缺点:对原系统的性能影响比较大,当执行大批量数据同步时,会降低源系统的性能。如果业务数据库采取主备策略,可直接从备份数据库抽取数据,避免对主数据库性能的影响。

   数据文件同步

数据文件同步是先对文件的编码、大小和格式进行约定,直接从源系统生成数据的文本文件,再通过文件服务器传输到目标系统,最终加载到目标系统中,当源系统中包含多个异构的数据库(mysql\oracle\等)这种同步方式比较简单实用。

通过文件服务器进行上传下载可能丢包或者出现错误。为了确保数据文件同步的完整性,除上传数据文件本身以外,通常还会上传一个校验文件。校验文件记录了数据文件的数据和文件大小等校验信息,以供下游目标系统验证数据同步的准确性。在源系统生成数据文件的过程中,可以先进行压缩和加密处理,传输到目标系统后,在对数据进行解压和解密,这样能极大提高文件传输的效率和安全性。

   数据库日志解析同步

数据库日志解析同步是通过解析日志文件获取发生变更的数据,从而满足增量数据同步的需求。日志文件信息丰富、数据格式稳定,目前广范应用于从业务系统到数据仓库的增量数据同步。

以mysql数据库为例简单介绍数据库日志解析同步的实现过程

   1)通过源系统的进程,读取归档日志文件,用于收集变化的数据信息

   2)判断日志中的变更是否属于被收集对象,并将其解析到目标文件中。这种读操作是在操作系统层面完成的,不需要通过数据库,不会影响源系统的性能。

   3)通过网络协议,实现源系统和目标系统之间的数据文件传输,相关进程可以确保数据文件的正确接收和网络数据包的正确顺序,并提供网络传输冗余,确保数据文件的完整性。

  4)数据被传输到目标系统后,可以通过数据加载模块完成数据导入,从而实现数据从源系统到目标系统的同步

数据库日志解析同步一般是获取所有的数据记录的变更(除删除以外的变更),之后落库到目标表,并更具主键重复进行到排序(按照日志事件),以获取最后状态的变化情况。