大数据平台建设的思考

笔者经历过几家公司,传统行业,互联网行业都经历过,每家公司对于数据的处理,使用都各不相同,但是总体上架构上都大同小异,
传统行业有传统行业的整体架构,目前已基本形成一套套完整的解决方案,互联网行业目前已基本形成一套整体的开源解决方案。
传统行业一般都是用的商用软件,一方面是为了系统的稳定,一方面也是少有这方面的人才,互联网呢,一般都是用开源软件,
一方面是为了满足自身业务的需求,一方面呢互联网网罗了大量的人才,可以做个性化开发。
数据平台的建设呢主要分为几部分,数据的存储,数据的清洗,数据的展现。
先说一下传统行业的互数据建设,传统行业一般少有做数据平台,数据的存储呢,一般都是会商用软件,数据库一般用oracle,sqlserver,DB2 数据的清洗也就是ETL工具呢一般是informatic,datastage,当然有些小点的公司还有用免费的kettle等ETK工具,数据的展现呢也就是BI一般是congnos,BIEE等,目前呢市面上有很多的BI工具,做报表,做分析,做挖掘,百家争鸣,各有异同。
目前也有很多厂商会给出一套完整的解决方案,包括数据的存储,数据清洗,数据展现,分析等。这也是很多传统公司使用的原因。
互联网呢,目前大部分的存储是hdfs,数据清洗呢统一用开源免费的,五花八门,有mr,hive,spark,pig等,数据展现呢,好多都是自己开发的,也有用一些比较实惠点的报表展现工具,但是很多互联网公司也开发出一个数据平台,包含数据的存储,数据的清洗,数据的展现等功能。

这里主要是对建设大数据平台做一些思考,数据平台的作用,数据平台包含哪些功能,数据平台的投入等。

首先呢数据平台的作用,对于一个稍微大点的互联网公司,数据平台是必不可少的,在目前科技不断进步的社会,数据产生的价值是不可估量的,再者有数据平台,数据的管理也是有统一的规范,还有一点,用数据平台对于数据的流向以及数据的分析,挖掘都有很好帮助。只要有一个好的数据平台,那么公司的数据就是一笔很大的财产。
数据平台的功能呢,其实就是几点数据的存储,数据的清洗,数据的展现,数据的分析,就我个人见解说一下。
数据平台的存储,目前一般都是hdfs,在前期需要设计好数据仓库的架构,如何分层,在数据平台中,可以通过建表(hive)
的形式,也可以通过创建路径的形式来对数据的存储,

数据的清洗,这部分非常重要的,一般是hsql,spark,mr,pig等都而已可以,但是呢,根据每个公司的技术水平来,一般是hsql是必须的,毕竟sql比较简单易上手,当然mr,spark也是必须的支持的,如果有些数据的导入,导出也可以封装到sqoop进行抽取,当然还有数据的上传的功能支持txt,excel等。对于shell,python等脚本,个人建议还是支持比较好,可以通过权限等手段控制目录。

数据的调度,这块也是非常必要的,调度可以分为强依赖和弱依赖,调度可以是原子的形式,也可以是流的形式,也就是任务组,这样可以公共的部分,关联密切的是封装成组,单独的封装成原子,这样后续依赖的任务就都可以依赖,当然少不了血缘关系,这块对于查找上下游依赖关系有很好的指引,对于查找问题也是特别方便的。

数据的监控 这部分也是比较重要的,监控可以分为几部分,一部分是任务是否成功的监控,一部分是数据的监控,可以设置阈值,通过邮件和短信配合的形式进行监控。也可以做一个全局的监控,可以监处每天错误的任务,可以是列表,也可以是图标。

数据的上下线以及版本管理,这个感觉很有必要,每一次测试都会形成一个版本,这样会回溯测试的任何一个版本,测试与线上严格分离,测试会把数据放到测试库中,根据对脚本进行解析,然后在测试时,把数据放到测试库中,可以对数据进行测试。

数据的展现,可以分为几块,发邮件的功能是必不可少,常规领导,财务等每天都要看的的数据可以发邮件,查询系统比不可少,当然这个可以是数据平台的一个界面,通过权限控制,可以设置一些个性化的查询,根据需求进行查询,开放给运营,产品,市场等。
数据的分析与挖掘,这块就等前期都做好了,后期可以通过一些报表,算法等进行数据分析和挖掘。

先简单的写一点,希望大家指点,共同讨论,共同进步

原文地址:https://www.cnblogs.com/wujin/p/6085470.html