大数据技术是一系列技术的总称,它是集合了数据采集与传输、数据存储、数据处理与分析、数据挖掘、数据可视化等技术,是一个庞大而复杂的技术体系。
根据大数据从来源到应用,实现传输的流程,可以将大数据架构设计分为数据收集层、数据存储层、数据处理层、数据治理与建模层、数据应用层。
一、数据收集层
大数据收集层主要采用了大数据采集技术,实现对数据的ETL操作,ETL,是英文Extract-Transform-Load的缩写,数据从数据来源端经过抽取(extract)、转换(transform)、加载(load)到目的端。
二、数据存储层
当大量的数据收集完后,我们需要对大数据进行存储。数据的存储分为持久化存储和非持久化存储。持久化存储表示把数据存储在磁盘中,关机或断电后,数据依然不会丢失。非持久化存储表示把数据存储在内存中,读写速度快,但是关机或断电后,数据丢失。
三、数据处理层
当我们把数据收集好了、数据存储以及读写也都没有问题,我们手握着这一堆数据干嘛?除了保存原始数据,做好数据备份之外,我们还需要考虑到利用他们产生更大的价值。那么首先我们需要对这些数据进行处理。大数据处理分为两类,批量处理和实时处理。
四、数据治理与建模层
数据架构设计与数据治理二者紧密相连,数据收集、数据存储和数据处理是大数据架构的基础设置。一般情况下,完成以上三个层次的数据工作,已经将数据转化为基础数据,为上层的业务应用提供支撑。但是大数据时代,数据类型多样,单位价值稀疏的特点,要求对数据进行治理和融合建模。通过利用R语言、Python等对数据进行ETL预处理,然后再根据算法模型、业务模型进行融合建模,从而更好地为业务应用提供优质底层数据。
五、数据应用层
数据应用层是大数据技术和应用的目标。通常包括信息检索、关联分析等功能。Lucene、Solr和Elasticsearch这样的开源项目为信息检索的实现提供了可能。
大数据架构为大数据的业务应用提供了一种通用的架构,还需要根据行业领域、公司技术积累以及业务场景,从业务需求、产品设计、技术选型到实现方案流程上具体问题具体分析,利用大数据可视化技术,进一步深入,形成更为明确的应用,包括基于大数据交易与共享、基于开发平台的大数据应用、基于大数据的工具应用等。
这是理论上的数据架构设计,大家可能想问了,在具体的应用中,有没有做的好的数据架构设计软件呢?这里我给大家主要展示一下Smartbi的数据架构设计系统。
一、业务应用:其实指的是数据采集,你通过什么样的方式收集到数据。互联网收集数据相对简单,通过网页、App就可以收集到数据,比如很多银行现在都有自己的App。
更深层次的还能收集到用户的行为数据,可以切分出来很多维度,做很细的分析。但是对于涉及到线下的行业,数据采集就需要借助各类的业务系统去完成。
二、数据集成:指的其实是ETL,指的是用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。而这里的Kettle只是ETL的其中一种。
三、数据存储:指的就是数据仓库的建设了,简单来说可以分为业务数据层(DW)、指标层、维度层、汇总层(DWA)。
四、数据共享层:表示在数据仓库与业务系统间提供数据共享服务。Web Service和Web API ,代表的是一种数据间的连接方式,还有一些其他连接方式,可以按照自己的情况来确定。
五、数据分析层:分析函数就相对比较容易理解了,就是各种数学函数,比如K均值分析、聚类、RMF模型等等。列存储让磁盘中的各个Page仅存储单列的值,并非整行的值。这样压缩算法会更加高效。进一步说,这样能够减少磁盘的I/O、提升缓存利用率,因此,磁盘存储会被更加高效的利用。
六、数据展现:结果以什么样的形式呈现,其实就是数据可视化。这里建议用敏捷BI,和传统BI不同的是,它能通过简单的拖拽就生成报表,学习成本较低。国内的敏捷BI中,个人用户推荐Tableau,像银行这类的企业级需求推荐Yonghong BI。
七、数据访问:这个就比较简单了,看你是通过什么样的方式去查看这些数据,图中示例的是因为B/S架构,最终的可视化结果是通过浏览器访问的。