许多人知道数据库,但是不知道数据堆栈,也不知道数据湖,后两者相当于数据库来说,是比较新奇的概念。
比较受接待的数据库有:MySQ、Oracle、SqlServer等,数据堆栈有AWS、Hive等
那数据库和数据堆栈可以用来干什么?就拿电商公司为例吧。
- 一阶段:属于电商公司刚刚起步的时候,有个数据库如mysql,用户能下单,产品图片再修一修,就可以开门了;
- 二阶段:流量开始起来了,用户也开始多了,之前的野路子就不再适用了,渐渐发现数据库支撑不住了,查询开始变得困难;
- 三阶段:越来越精细化,关注的问题也越来越不同,之前大概只看这个星期的gmv,pv,uv等等,如今需要查询30-40岁男性对这款剃须刀的关注和需求是怎么样的,下单停顿时间是多久等等,这就意味着数据决策化;
这时候数据库的查询功能就不够用了,需要做大数据的复杂查询,数据堆栈就出来了。既然苏??区别,一个是为了响应时间,一个是为了吞吐量。
再举个例子,我的人力、客户、物流、零售数据全都放在一起分析可以吗?当然可以,但是需要重新组合,模型重新设计下,就是数据堆栈。
以下这张架构图使用最广泛的体系结构,它由顶层、中层和底层组成。
底层:数据堆栈服务器的数据库作为底层,通常是一个关系数据库系统,使用后端工具将数据清理、转换并加载到该层。
中间层:数据堆栈中的中间层是使用ROLAP或MOLAP模型实现的OLAP服务器。对于用户,此应用步伐层显示数据库的抽象视图,这一层还充当终极用户和数据库之间的中介。
顶层:顶层是前端应用层,连接数据堆栈并从数据堆栈获取数据或者API,通常的应用包括数据查询、报表制作、BI数据分析、数据发掘另有一些其他的应用开发。
从功能应用和技术架构来睁开,以下是一张中大型企业的很详细的数据堆栈架构图了。
数据堆栈的4层焦点组件:底层源数据库(数据存储方案)、ETL、前端应用、另有OLAP服务。
数据堆栈数据库
底层的数据堆栈服务器通常是一个关系数据库系统(各种表关联的sql统计会更方便一些,非关系型数据库如今在这方面还是有所区别)。常用的方案有Oracle、db2、sqlserve 另有essbase、greenplum、teredata等数据堆栈专业解决方案。
1、接纳传统关系型数据库,或经过功能扩展的MPP数据库
① 传统的关系型数据库有:oracle、mysql、DB2
② 大规模并行处置惩罚数据库:Vertica、Teradata(商业)、Greenplum (开源)
Teradata老江湖了,银行业使用较多,但本钱也是真的贵,如今我们做项目较多的是用Greenplum,算是业界最快和最高性价比的高端数据堆栈解决方案,Greenplum是基于PostgreSQL的,于2015年开源。我知道的国内四大行有3家在用,5大物流公司有4家在用,不少公司在从Teradata 迁移到 GP。
2、大数据平台架构:Hadoop+Hive
这套方案有多通用不用多说了,通常是这样的组合:TB级数据用PG,百TB级数据用GP,PB级i上数据用Hadoop。
下面整理了一张传统数据堆栈架构、GP另有Hadoop大数据平台的对比图。
采集、网络、洗濯和转换工具(ETL)
数据来源、转换和迁移工具用于实行将数据转换为数据堆栈中的统一格式所需的所有转换、摘要和所有更改,它们也称为提取、转换和加载工具。其功能包括:
1、抽取
- 全量抽取:适用于数据量小且不容易判断其数据发生改变的诸如关系表,维度表,配置表
- 增量抽取:适用于数据量大,为了节省抽取时间而接纳的抽取战略
2、洗濯
- 空值处置惩罚:将空值替换为特定值或直接过滤掉
- 验证数据正确性:把不符合业务含义的数据做统一处置惩罚
- 规范数据格式:比如把所有日期都规范成YYYY-MM-DD的格式
- 数据转码:把一个源数据中用编码体现的字段通过关联编码表转换成代表其真实意义的值
- 数据标准统一:比如在源数据中体现男女的方式有许多种,在抽取的时候直接根据模型中定义的值做转化。
3、转化和加载
- 转换:用ODS中的增量或者全量数据来革新DW中的表
- 加载:每insert数据到一张表都可以称为数据加载
关于ETL工具的选型,这里罗列了一张对比表,根本囊括常用的ETL工具。
前端应用工具
数据堆栈平台的搭建,终极是为了梳理出有用数据、提供有价值信息,资助业务做出正确决策。
前端应用工具主要就是和数据堆栈不同环节的数据交互,这些应用一般可以分为4类:
- 数据查询和报表工具
- BI即席分析工具
- 数据发掘工具
- 各种基于数据堆栈或数据集市的应用开发工具
此中数据分析工具主要针对OLAP服务器,报表工具、数据发掘工具主要针对数据堆栈。
1、数据查询和报表工具
通常用来天生一些固定类报表,自动化报表,支持打印和计算等大批量批处置惩罚作业。
盛行的报表工具,在旧数据堆栈时代主要是IBM的BO、Oracle的BIEE、另有微软和cognos,团体打包在数据堆栈解决方案里,报表作为一个组件存在。但是随着传统型数仓,架构重本钱贵,许多公司在项目上会本身考虑设计架构,而不是直接强套昂贵的解决方案,包括许多开源组件/平台的使用。
有关报表工具,如今项目上用的比较多的是帆软FineReport,针对不同企业数仓架构以及报表需求的适用性较广。
比如对接各种数据库直接天生报表;对采集整理后的数据进行多维报表显现,支撑业务分析报表;对接团体性数据堆栈,构建数据中心平台,形成决策分析平台。
2、BI即席分析工具
BI一般都集成了OLAP服务器和报表展示功能。分析型BI基于多维数据库的概念,能多维视角分析数据,通常是从数据堆栈中抽取详细数据的一个子集并经过必要的聚集存储到OLAP存储器中供前端BI分析工具读取。
BI在前端通过拖拽数据字段,多维度实施显现数据,终极天生各种分析报告。企业项目上选型多用FineBI,因为要考虑性能、服务方案等。剩余就是自研或者开源。
BI工具做什么的不多说了,在项目选型的时候主要考虑上手难度(考虑没技术基础的业务用),数据处置惩罚性能,其他就是技术选型的事,另有本钱。
3、数据发掘工具
OLAP是将数据多维视角呈现分析,数据发掘则是应用的算法来揭示数据的规律性,比如相关性、模式和趋势等。数据发掘工具就是做这个的,它能让一些算法和过程自动化。
常用的数据发掘工具,R、Python另有SPSS,根本都是开源个人可用的。和BI和报表不同,市面上少有为客户提供定制化数据分析和发掘的商业工具或者项目服务,因为行业性太强,需要非常熟悉业务、数据、平台,所以我见过根本都是本身养数据分析团队或者挖这类的人才。
4、应用开发
以上报表型、分析型的数据产品,但也会有延申出来的各种特定业务的数据决策系统,比如银行业基于管理层监控的的行长驾驶舱、零售业基于门店数据谋划的决策系统,以及电商平台的营销参谋,都是基于这样的逻辑——基于业务深度应用。
此时数仓就是提供一个服务平台的角色,比如如今很火的数据中台也大要是这个逻辑,将数据服务化,具体不懂就不班门弄斧了。
这样的服务,当然需要本身开发。
在这三层之间实在另有中间层OLAP服务器,典范实现为ROLAP模型或MOLAP模型。如今许多成熟的BI工具都是集成了OLAP服务器的,所以通常我们只需要选择ETL工具以及存储方案和可视化BI方案即可,所以OLAP本文也就不多讲了。 |