设计大数据系统架构的分析
扫描二维码
随时随地手机看文章
大数据的系统架构设计主要包含3个方面ETL设计、ODS层、OLAP(联机分析处理),重点对ETL和OLAP进行分析:
一、ETL设计
ETL是将各个不同的业务系统的数据经过抽取(Extrace)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是将分散、零乱、标准不统一的数据整合到一起、为企业决策提供分析依据。例如集团公司下有多个业务线B2C官网、天猫京东等第三方平台下单用户统一到一个系统中。
ETL实现方式有三种:
1、借助ETL工具实现,Informatica、Kettle、Oracle的OWB、SQL server 2000的DTS。借助工具可以快速建立ETL工程,不需要复杂的工作,但是在提高速度和降低灵活性的同时也缺少了灵活性。
2、通过SQL方式实现,优点是灵活但是对技术要求较高,工作量大。
3、ETL工具和SQL相结合,综合两种方式可以极大的提高ETL的开发速度和效率。
数据抽取
1、与存放DW的数据库相同数据源的处理情况下,部分ETL工具有提供数据库连接功能,DW数据库服务器和原业务系统之间建立链接关系通过SQL查询语句直接访问。
2、与DW数据库系统不同数据源可以通过ODBC(开发数据库链接,解决异构数据库共享而产生)的方式建立数据库链接。也可以通过工具将元数据导出为.txt或.xls文件,也可以通过程序接口完成。如果是通过把元数据做成文件的形式,需要捋清业务类型和加载周期,不同业务类型对应不同业务线。
3、对于数据量大的系统,必须考虑增量抽取,同时业务系统数据量每天每小时每分钟都在不停的增加。业务系统记录下业务发生的时间作为时间戳,这个时间戳可以作为增量标志,每次抽取之前判断ODS中记录的时间,根据这个时间戳来抽取数据。
数据清洗
数据清洗就是过滤掉不符合要求的数据,不符合要求的数据包括:不完整数据、错误数据、重复数据。对于各种不符合要求的数据有不同的处理方式。
1、不完整数据如果是重要关键的数据,可以补齐的记录,由业务部门补齐之后在写入数据仓库。如果是少量非关键数据缺失可以忽略。有些非关键数据可以通过后期替换或赋值(回归模型、决策树模型、贝叶斯定理、随机森林等预测缺失值的最近替代量)来弥补。
2、重复数据的清洗是一个反复的过程,在整理出一批重复数据之后,需要业务部门确定排除,同时也可以作为将来验证数据的依据。所有工作的前提是保证不能把有效数据过滤。
3、错误数据分为两种,一种是字符错误错误,例如字符串数据后面有一个回车操作,日期格式不正确等。另外一种是业务数据错误,例如两个不同平台的订单混乱在一起。对于第一种错误数据通过SQL语句修正,第二种数据就需要由业务人员进行判断。
数据转换
需要从多个不同的业务系统抽取,各个不同的业务数据涉及到不同数据粒度、商务规则。
1、不一致数据转换是一个整合过程,例如同一张订单在CRM系统和结算系统中不同的编码,在抽取之后需要转换成统一的编码。
2、数据粒度的转换,不同系统之间的数据维度明细不一致。数据粒度影响着数据仓库中的数据量大小,也影响着可以查询到的数据类型。在数据量大小和查询详细程度之间要做出权衡。
3、商务规则不一致,不同的企业、不同的系统之间会有不同的数据指标。
二、ODS层设计
ODS,可操作数据库,是存储整个数据仓库数据的地方,元数据经过ETL抽取之后再到OLAP分析库,ODS设计与DW设计着眼点不同。
步骤一:数据调研。
步骤二:确定数据范围,在数据调研的基础对ODS进行主题划分,需要综合各种业务系统的信息模型,进行宏观归并。
步骤三:定义主题元素,定义数据维度(数据维度名称、维度成员、维度层次、维度成员之间隶属关系)、度量、数据粒度、存储期限。
三、OLAP设计
在介绍OLAP之前,我们需要知道OLAP(联机分析处理)与OLTP(联机事物处理)的区别,OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的业务处理。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重点是决策支持,提供直观易懂的查询结果。
OLAP通过多维度来分析数据,维度分析方式有钻取、切片和切块、旋转。
钻取:是改变维的层次,变换分析的粒度。包括向下钻取和向上钻取,向上钻取是在某一维上将低层次的细节概况到高层次的汇总数据,或者减少维数;向下则是从汇总数据深入到细节数据进行观察或增加新维。
切片和切块:在一部分维上选定值后,关心度量数据在剩余维上的分布。如果剩余的维只有两个,则是切片;多个则是切块。
旋转:在变换维的方向之后,在表格中重新安排维的放置,如进行行列互换。
OLAP的关键几个概念。
主题:全部数据对象的一个子集,它代表了某一条业务分支或者业务过程,一般而言创建主题是为了按照业务对象或者业务过程进行管理。
指标:指标是说明总体数量特征的概念,如GMV、在网用户数等。
维度:观察数据的特定角度,考虑为题时的一类属性,属性集合构成一个维度(如地域维度、时间维度、部门维度)。
维度层次:按业务的组织结构表达数据的等级关系。数据的某个特定角度下还可以存在细节程度不同的各个描述方面,如时间维度下的:日期、月份、季度等。
定时查询:在定制好OLAP查询后、根据用户设定的查询条件和查询时间定时的执行查询,并可将查询结果保存以便用户查看。
即时查询:定制好OLAP查询后,用户触发该查询方式,同时可以任意更改查询的条件值,但查询的结果是不能更改的。
数据行过滤:通过设定某列数据的显示范围,过滤掉不满足的数据显示,达到对数据过滤的目的。
数据警告:通过对数据阈值的设定,对满足阈值设定的数据进行特殊标识,达到对异常数据报警的效果。
大数据架构设计的关键首要是要满足业务需求,提炼业务需求的非功能特性,提出针对性的架构设计方案。作业自主研发能力有限的企业,在大数据系统建设中首要是合理的选择技术组件,如果科技力量更强可以考虑参与开源社区对组件的优化完善等工作中。大数据系统架构如何设计?中琛魔方大数据表示大数据系统在深度自学习外,未来将通过逐步开放合作理念,对接外部第三方平台,尽可能覆盖用户线上线下全生命周期行为轨迹,掌握用户各行为触点数据,结合机器自学习功能,从根本上提升产品销售能力和客户全方位体验感知。