怎样的架构设计才是真正的数据仓库架构

2024-05-10 00:41

1. 怎样的架构设计才是真正的数据仓库架构

一直想整理一下这块内容,既然是漫谈,就想起什么说什么吧。我一直是在互联网行业,就以互联网行业来说。先大概列一下互联网行业数据仓库、数据平台的用途:
整合公司所有业务数据,建立统一的数据中心;
提供各种报表,有给高层的,有给各个业务的;
为网站运营提供运营上的数据支持,就是通过数据,让运营及时了解网站和产品的运营效果;
为各个业务提供线上或线下的数据支持,成为公司统一的数据交换与提供平台;
分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;比如广告定向精准投放、用户个性化推荐等;
开发数据产品,直接或间接为公司盈利;
建设开放数据平台,开放公司数据;
。。。。。。
上面列出的内容看上去和传统行业数据仓库用途差不多,并且都要求数据仓库/数据平台有很好的稳定性、可靠性;但在互联网行业,除了数据量大之外,越来越多的业务要求时效性,甚至很多是要求实时的 ,另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸,它要求新的业务很快能融入数据仓库中来,老的下线的业务,能很方便的从现有的数据仓库中下线;其实,互联网行业的数据仓库就是所谓的敏捷数据仓库,不但要求能快速的响应数据,也要求能快速的响应业务;建设敏捷数据仓库,除了对架构技术上的要求之外,还有一个很重要的方面,就是数据建模,如果一上来就想着建立一套能兼容所有数据和业务的数据模型,那就又回到传统数据仓库的建设上了,很难满足对业务变化的快速响应。应对这种情况,一般是先将核心的持久化的业务进行深度建模(比如:基于网站日志建立的网站统计分析模型和用户浏览轨迹模型;基于公司核心用户数据建立的用户模型),其它的业务一般都采用维度+宽表的方式来建立数据模型。这块是后话。整体架构下面的图是我们目前使用的数据平台架构图,其实大多公司应该都差不多:请点击输入图片描述
请点击输入图片描述
逻辑上,一般都有数据采集层、数据存储与分析层、数据共享层、数据应用层。可能叫法有所不同,本质上的角色都大同小异。我们从下往上看:数据采集数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。数据源的种类比较多:网站日志:
作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,一般是在每台网站日志服务器上部署flume agent,实时的收集网站日志并存储到HDFS上;业务数据库:
业务数据库的种类也是多种多样,有Mysql、Oracle、SqlServer等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS上的工具,Sqoop是一种,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的DataX,是一个很好的解决方案(可参考文章 《异构数据源海量数据交换工具-Taobao DataX 下载和使用》),有资源的话,可以基于DataX之上做二次开发,就能非常好的解决,我们目前使用的DataHub也是。当然,Flume通过配置与开发,也可以实时的从数据库中同步数据到HDFS。来自于Ftp/Http的数据源:
有可能一些合作伙伴提供的数据,需要通过Ftp/Http等定时获取,DataX也可以满足该需求;其他数据源:
比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成;数据存储与分析毋庸置疑,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。离线数据分析与计算,也就是对实时性要求不高的部分,在我看来,Hive还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码;当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算;Spark是这两年非常火的,经过实践,它的性能的确比MapReduce要好很多,而且和Hive、Yarn结合的越来越好,因此,必须支持使用Spark和SparkSQL来做分析和计算。因为已经有Hadoop Yarn,使用Spark其实是非常容易的,不用单独部署Spark集群,关于Spark On Yarn的相关文章,可参考:《Spark On Yarn系列文章》实时计算部分,后面单独说。数据共享这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据; 和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。数据应用业务产品
业务产品所使用的数据,已经存在于数据共享层,他们直接从数据共享层访问即可;报表
同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;即席查询
即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;这种即席查询通常是现有的报表和数据共享层的数据并不能满足他们的需求,需要从数据存储层直接查询。即席查询一般是通过SQL完成,最大的难度在于响应速度上,使用Hive有点慢,目前我的解决方案是SparkSQL,它的响应速度较Hive快很多,而且能很好的与Hive兼容。当然,你也可以使用Impala,如果不在乎平台中再多一个框架的话。OLAP
目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;这时候,需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP的功能;比如:根据用户在界面上选择的不定的维度和指标,通过开发接口,从HBase中获取数据来展示。其它数据接口
这种接口有通用的,有定制的。比如:一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。实时计算现在业务对数据仓库实时性的需求越来越多,比如:实时的了解网站的整体流量;实时的获取一个广告的曝光和点击;在海量数据下,依靠传统数据库和传统实现方法基本完成不了,需要的是一种分布式的、高吞吐量的、延时低的、高可靠的实时计算框架;Storm在这块是比较成熟了,但我选择Spark Streaming,原因很简单,不想多引入一个框架到平台中,另外,Spark Streaming比Storm延时性高那么一点点,那对于我们的需要可以忽略。 我们目前使用Spark Streaming实现了实时的网站流量统计、实时的广告效果统计两块功能。做法也很简单,由Flume在前端日志服务器上收集网站日志和广告日志,实时的发送给Spark Streaming,由Spark Streaming完成统计,将数据存储至Redis,业务通过访问Redis实时获取。任务调度与监控在数据仓库/数据平台中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;这些任务除了定时调度,还存在非常复杂的任务依赖关系,比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始; 这就需要一个非常完善的任务调度与监控系统,它作为数据仓库/数据平台的中枢,负责调度和监控所有任务的分配与运行。前面有写过文章,《大数据平台中的任务调度与监控》,这里不再累赘。总结在我看来架构并不是技术越多越新越好,而是在可以满足需求的情况下,越简单越稳定越好。目前在我们的数据平台中,开发更多的是关注业务,而不是技术,他们把业务和需求搞清楚了,基本上只需要做简单的SQL开发,然后配置到调度系统就可以了,如果任务异常,会收到告警。这样,可以使更多的资源专注于业务之上。

怎样的架构设计才是真正的数据仓库架构

2. 典型的数据仓库系统包括哪几部分

?(一)数据源是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于rdbms中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;(二)数据的存储与管理是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。(三)olap(联机分析处理)服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:rolap(关系型在线分析处理)、molap(多维在线分析处理)和holap(混合型线上分析处理)。rolap基本数据和聚合数据均存放在rdbms之中;molap基本数据和聚合数据均存放于多维数据库中;holap基本数据存放于rdbms之中,聚合数据存放于多维数据库中。(四)前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对olap服务器,报表工具、数据挖掘工具主要针对数据仓库。-----------------------------由安信公司历经4年研发的监测数据管理平台,采用独创的技术架构,在b/s架构上融入c/s模式,囊括了实验室管理系统、监测站公自动化、监测站综合业务管理系统、监测数据上报系统等诸多系统,把各个系统有机融合在一起,不同的业务科室展现不同工作页面,内部却又实现了数据共享。系统页面简单大方,操作轻松方便,在不增加实验室工作量的情况下,能够让监测数据进入系统中,原始记录单等诸多实验室报表可协助生成(不完全生成,需人工签字),随后科室比如质控、综合、主管领导即可对数据进行多层次利用查询,并自动生成各类监测报表。系统采用流程化工作模式,对不同监测任务实施不同工作流,保证工作的科学和严谨,对于单位内部职工每天待事宜清晰显示,让内部职工对每天工作都一目了然。系统工作流程可自由配置,工作单可根据按照配置流转相应单位,并且可以对工作流程进行追踪查询,作为领导可以查看到每一项安排工作的流转情况、完成情况和监测结果。系统支持短信功能,对于领导等科室一些紧急任务可在系统下达后,立刻用短信通知相应工作人员,对于单位紧急通知等也可以进行短信通知,让监测站的工作更加快捷高效。系统提供深层次数据挖掘功能,能够根据监测数据,快速提供某监测点的多方位数据,比如历年来某月cod的监测数据变化,几年来某项监测数据的月平均值变化等等,为监测站领导决策提供科学依据。系统生成报表功能强大,除自身已包含众多报表外,可迅速生成word下各种客户要求的监测报表,并且查阅维护方便。系统作为平台拓展性强,可以融合其他系统与平台上,并且后期功能升级方便不影响前期功能。目前系统已经在多个地方监测站运行,从使用效果来看是比较实用的。

3. 数据仓库的技术结构有哪些

? (一)数据源 是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于 RDBMS 中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等; (二)数据的存储与管理 是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。 (三)OLAP(联机分析处理)服务器 对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和 HOLAP(混合型线上分析处理)。ROLAP 基本数据和聚合数据均存放在 RDBMS 之中;MOLAP 基本数据和聚合数据均存放于多维数据库中;HOLAP 基本数据存放于RDBMS 之中,聚合数据存放于多维数据库中。 (四)前端工具 主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对 OLAP 服务器,报表工具、数据挖掘工具主要针对数据仓库。 ----------------------------- 由安信公司历经 4 年研发的监测数据管理平台,采用独创的技术架构,在 B/S 架构上融入 C/S 模式,囊括了实验室管理系统、监测站办公自动化、监测站综合业务管理系统、监测数据上报系统等诸多系统,把各个系统有机融合在一起,不同的业务科室展现不同工作页面,内部却又实现了数据共享。 系统页面简单大方,操作轻松方便,在不增加实验室工作量的情况下,能够让监测数据进入系统中,原始记录单等诸多实验室报表可协助生成(不完全生成,需人工签字),随后科室比如质控、综合、主管领导即可对数据进行多层次利用查询,并自动生成各类监测报表。 系统采用流程化工作模式,对不同监测任务实施不同工作流,保证工作的科学和严谨,对于单位内部职工每天待办事宜清晰显示,让内部职工对每天工作都一目了然。系统工作流程可自由配置,工作单可根据按照配置流转相应单位,并且可以对工作流程进行追踪查询,作为领导可以查看到每一项安排工作的流转情况、完成情况和监测结果。 系统支持短信功能,对于领导等科室一些紧急任务可在系统下达后,立刻用短信通知相应工作人员,对于单位紧急通知等也可以进行短信通知,让监测站的工作更加快捷高效。 系统提供深层次数据挖掘功能,能够根据监测数据,快速提供某监测点的多方位数据,比如历年来某月COD 的监测数据变化,几年来某项监测数据的月平均值变化等等,为监测站领导决策提供科学依据。 系统生成报表功能强大,除自身已包含众多报表外,可迅速生成 WORD 下各种客户要求的监测报表,并且查阅维护方便。 系统作为平台拓展性强,可以融合其他系统与平台上,并且后期功能升级方便不影响前期功能。 目前系统已经在多个地 方监测站运行,从使用效果来看是比较实用的。

数据仓库的技术结构有哪些

4. 数据仓库和数据库有什么区别和联系?

简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。

  数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。

  数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。

  数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。

  单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。

  显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。

  数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。

  “面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。

  “与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。

  “不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库甚至处理实时信息)。因此,数据仓库中的数据是极少或根本不修改的;当然,向数据仓库添加数据是允许的。

  数据仓库的出现,并不是要取代数据库。目前,大部分数据仓库还是用关系数据库管理系统来管理的。可以说,数据库、数据仓库相辅相成、各有千秋。

  补充一下,数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库必须有如下几点优点,否则是失败的数据仓库方案。

  1.效率足够高。客户要求的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。

  2.数据质量。客户要看各种信息,肯定要准确的数据,但由于数据仓库流程至少分为3步,2次ETL,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。

  3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,客户不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。

5. 数据仓库的数据质量主要包括哪些内容

?(一)数据源是数据仓库系统的基础,是整个系统的数据源泉。通常包括企业内部信息和外部信息。内部信息包括存放于RDBMS中的各种业务处理数据和各类文档数据。外部信息包括各类法律法规、市场信息和竞争对手的信息等等;(二)数据的存储与管理是整个数据仓库系统的核心。数据仓库的真正关键是数据的存储和管理。数据仓库的组织管理方式决定了它有别于传统数据库,同时也决定了其对外部数据的表现形式。要决定采用什么产品和技术来建立数据仓库的核心,则需要从数据仓库的技术特点着手分析。针对现有各业务系统的数据,进行抽取、清理,并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以分为企业级数据仓库和部门级数据仓库(通常称为数据集市)。(三)OLAP(联机分析处理)服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。其具体实现可以分为:ROLAP(关系型在线分析处理)、MOLAP(多维在线分析处理)和HOLAP(混合型线上分析处理)。ROLAP基本数据和聚合数据均存放在RDBMS之中;MOLAP基本数据和聚合数据均存放于多维数据库中;HOLAP基本数据存放于RDBMS之中,聚合数据存放于多维数据库中。(四)前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以数据挖掘及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。-----------------------------由安信公司历经4年研发的监测数据管理平台,采用独创的技术架构,在B/S架构上融入C/S模式,囊括了实验室管理系统、监测站公自动化、监测站综合业务管理系统、监测数据上报系统等诸多系统,把各个系统有机融合在一起,不同的业务科室展现不同工作页面,内部却又实现了数据共享。系统页面简单大方,操作轻松方便,在不增加实验室工作量的情况下,能够让监测数据进入系统中,原始记录单等诸多实验室报表可协助生成(不完全生成,需人工签字),随后科室比如质控、综合、主管领导即可对数据进行多层次利用查询,并自动生成各类监测报表。系统采用流程化工作模式,对不同监测任务实施不同工作流,保证工作的科学和严谨,对于单位内部职工每天待事宜清晰显示,让内部职工对每天工作都一目了然。系统工作流程可自由配置,工作单可根据按照配置流转相应单位,并且可以对工作流程进行追踪查询,作为领导可以查看到每一项安排工作的流转情况、完成情况和监测结果。系统支持短信功能,对于领导等科室一些紧急任务可在系统下达后,立刻用短信通知相应工作人员,对于单位紧急通知等也可以进行短信通知,让监测站的工作更加快捷高效。系统提供深层次数据挖掘功能,能够根据监测数据,快速提供某监测点的多方位数据,比如历年来某月COD的监测数据变化,几年来某项监测数据的月平均值变化等等,为监测站领导决策提供科学依据。系统生成报表功能强大,除自身已包含众多报表外,可迅速生成WORD下各种客户要求的监测报表,并且查阅维护方便。系统作为平台拓展性强,可以融合其他系统与平台上,并且后期功能升级方便不影响前期功能。目前系统已经在多个地方监测站运行,从使用效果来看是比较实用的。

数据仓库的数据质量主要包括哪些内容

6. 电子商务部门职责

电子商务部门职责:保证提供的商品的质量和可用性、物流的可靠性,并且及时有效的处理客户的投诉。在网络环境下,有一个独一无二的特点,客户可以获得远多于传统的“砖块+水泥”的商业环境下关于商家的信息。提供高可靠性和安全性的交易环境。例如利用并行计算、硬件冗余、失败处理、信息加密和网络防火墙技术来达到这个需求。
为客户提供一个方便而且安全的支付方式。信用卡是互联网上最普遍的支付手段,大约90%的在线支付均使用信用卡的方式完成。在过去,加密的信用卡号码信息通过独立的第三方支付网关在顾客和商户之间传递,现在大部分小企业和个体企业还是如此,所以支付的安全环境也是重点之一。

扩展资料
电子商务发展历史
店子商务在70年代的概念发生了很大的变化。最初,电子商务意味着利用电子化的手段,将商业买卖活动简化,通常使用的技术包括电子数据交换和电子货币转账,这些技术均是在20世纪70年代末期开始应用。典型的应用是将采购订单和发票之类的商业文档通过电子数据的方式发送出去。
电子商务中的“电子”指的是采用的技术和系统,而“商务”指的是传统的商业模式。电子商务被定义为一整套通过网络支持商业活动的过程。在70年代和80年代,信息分析技术进入电子商务。80年代,随着信用卡、自动柜员机和电话银行的逐渐被接受和应用,这些也成为电子贸易的组成部分。进入90年代,企业资源计划、数据挖掘和数据仓库也成为电子商务的一个部分。

7. 数据仓库与ODS的区别,数据仓库和ODS并存方案

一直想整理一下这块内容,既然是漫谈,就想起什么说什么吧。我一直是在互联网行业,就以互联网行业来说。先大概列一下互联网行业数据仓库、数据平台的用途:
整合公司所有业务数据,建立统一的数据中心;
提供各种报表,有给高层的,有给各个业务的;
为网站运营提供运营上的数据支持,就是通过数据,让运营及时了解网站和产品的运营效果;
为各个业务提供线上或线下的数据支持,成为公司统一的数据交换与提供平台;
分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;比如广告定向精准投放、用户个性化推荐等;
开发数据产品,直接或间接为公司盈利;
建设开放数据平台,开放公司数据;
。。。。。。
上面列出的内容看上去和传统行业数据仓库用途差不多,并且都要求数据仓库/数据平台有很好的稳定性、可靠性;但在互联网行业,除了数据量大之外,越来越多的业务要求时效性,甚至很多是要求实时的 ,另外,互联网行业的业务变化非常快,不可能像传统行业一样,可以使用自顶向下的方法建立数据仓库,一劳永逸,它要求新的业务很快能融入数据仓库中来,老的下线的业务,能很方便的从现有的数据仓库中下线;
其实,互联网行业的数据仓库就是所谓的敏捷数据仓库,不但要求能快速的响应数据,也要求能快速的响应业务;
建设敏捷数据仓库,除了对架构技术上的要求之外,还有一个很重要的方面,就是数据建模,如果一上来就想着建立一套能兼容所有数据和业务的数据模型,那就又回到传统数据仓库的建设上了,很难满足对业务变化的快速响应。应对这种情况,一般是先将核心的持久化的业务进行深度建模(比如:基于网站日志建立的网站统计分析模型和用户浏览轨迹模型;基于公司核心用户数据建立的用户模型),其它的业务一般都采用维度+宽表的方式来建立数据模型。这块是后话。
整体架构下面的图是我们目前使用的数据平台架构图,其实大多公司应该都差不多:
请点击输入图片描述
逻辑上,一般都有数据采集层、数据存储与分析层、数据共享层、数据应用层。可能叫法有所不同,本质上的角色都大同小异。
我们从下往上看:
数据采集数据采集层的任务就是把数据从各种数据源中采集和存储到数据存储上,期间有可能会做一些简单的清洗。
数据源的种类比较多:
网站日志:
作为互联网行业,网站日志占的份额最大,网站日志存储在多台网站日志服务器上,
一般是在每台网站日志服务器上部署flume agent,实时的收集网站日志并存储到HDFS上;
业务数据库:
业务数据库的种类也是多种多样,有Mysql、Oracle、SqlServer等,这时候,我们迫切的需要一种能从各种数据库中将数据同步到HDFS上的工具,Sqoop是一种,但是Sqoop太过繁重,而且不管数据量大小,都需要启动MapReduce来执行,而且需要Hadoop集群的每台机器都能访问业务数据库;应对此场景,淘宝开源的DataX,是一个很好的解决方案(可参考文章 《异构数据源海量数据交换工具-Taobao DataX 下载和使用》),有资源的话,可以基于DataX之上做二次开发,就能非常好的解决,我们目前使用的DataHub也是。
当然,Flume通过配置与开发,也可以实时的从数据库中同步数据到HDFS。
来自于Ftp/Http的数据源:
有可能一些合作伙伴提供的数据,需要通过Ftp/Http等定时获取,DataX也可以满足该需求;
其他数据源:
比如一些手工录入的数据,只需要提供一个接口或小程序,即可完成;
数据存储与分析毋庸置疑,HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。
离线数据分析与计算,也就是对实时性要求不高的部分,在我看来,Hive还是首当其冲的选择,丰富的数据类型、内置函数;压缩比非常高的ORC文件存储格式;非常方便的SQL支持,使得Hive在基于结构化数据上的统计分析远远比MapReduce要高效的多,一句SQL可以完成的需求,开发MR可能需要上百行代码;
当然,使用Hadoop框架自然而然也提供了MapReduce接口,如果真的很乐意开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算;Spark是这两年非常火的,经过实践,它的性能的确比MapReduce要好很多,而且和Hive、Yarn结合的越来越好,因此,必须支持使用Spark和SparkSQL来做分析和计算。因为已经有Hadoop Yarn,使用Spark其实是非常容易的,不用单独部署Spark集群,关于Spark On Yarn的相关文章,可参考:《Spark On Yarn系列文章》
实时计算部分,后面单独说。
数据共享这里的数据共享,其实指的是前面数据分析与计算后的结果存放的地方,其实就是关系型数据库和NOSQL数据库;
前面使用Hive、MR、Spark、SparkSQL分析和计算的结果,还是在HDFS上,但大多业务和应用不可能直接从HDFS上获取数据,那么就需要一个数据共享的地方,使得各业务和产品能方便的获取数据; 和数据采集层到HDFS刚好相反,这里需要一个从HDFS将数据同步至其他目标数据源的工具,同样,DataX也可以满足。
另外,一些实时计算的结果数据可能由实时计算模块直接写入数据共享。
数据应用
业务产品
业务产品所使用的数据,已经存在于数据共享层,他们直接从数据共享层访问即可;
报表
同业务产品,报表所使用的数据,一般也是已经统计汇总好的,存放于数据共享层;
即席查询
即席查询的用户有很多,有可能是数据开发人员、网站和产品运营人员、数据分析人员、甚至是部门老大,他们都有即席查询数据的需求;
这种即席查询通常是现有的报表和数据共享层的数据并不能满足他们的需求,需要从数据存储层直接查询。
即席查询一般是通过SQL完成,最大的难度在于响应速度上,使用Hive有点慢,目前我的解决方案是SparkSQL,它的响应速度较Hive快很多,而且能很好的与Hive兼容。
当然,你也可以使用Impala,如果不在乎平台中再多一个框架的话。
OLAP
目前,很多的OLAP工具不能很好的支持从HDFS上直接获取数据,都是通过将需要的数据同步到关系型数据库中做OLAP,但如果数据量巨大的话,关系型数据库显然不行;
这时候,需要做相应的开发,从HDFS或者HBase中获取数据,完成OLAP的功能;
比如:根据用户在界面上选择的不定的维度和指标,通过开发接口,从HBase中获取数据来展示。
其它数据接口
这种接口有通用的,有定制的。比如:一个从Redis中获取用户属性的接口是通用的,所有的业务都可以调用这个接口来获取用户属性。
实时计算现在业务对数据仓库实时性的需求越来越多,比如:实时的了解网站的整体流量;实时的获取一个广告的曝光和点击;在海量数据下,依靠传统数据库和传统实现方法基本完成不了,需要的是一种分布式的、高吞吐量的、延时低的、高可靠的实时计算框架;Storm在这块是比较成熟了,但我选择Spark Streaming,原因很简单,不想多引入一个框架到平台中,另外,Spark Streaming比Storm延时性高那么一点点,那对于我们的需要可以忽略。
我们目前使用Spark Streaming实现了实时的网站流量统计、实时的广告效果统计两块功能。
做法也很简单,由Flume在前端日志服务器上收集网站日志和广告日志,实时的发送给Spark Streaming,由Spark Streaming完成统计,将数据存储至Redis,业务通过访问Redis实时获取。
任务调度与监控在数据仓库/数据平台中,有各种各样非常多的程序和任务,比如:数据采集任务、数据同步任务、数据分析任务等;
这些任务除了定时调度,还存在非常复杂的任务依赖关系,比如:数据分析任务必须等相应的数据采集任务完成后才能开始;数据同步任务需要等数据分析任务完成后才能开始; 这就需要一个非常完善的任务调度与监控系统,它作为数据仓库/数据平台的中枢,负责调度和监控所有任务的分配与运行。
前面有写过文章,《大数据平台中的任务调度与监控》,这里不再累赘。
总结在我看来架构并不是技术越多越新越好,而是在可以满足需求的情况下,越简单越稳定越好。目前在我们的数据平台中,开发更多的是关注业务,而不是技术,他们把业务和需求搞清楚了,基本上只需要做简单的SQL开发,然后配置到调度系统就可以了,如果任务异常,会收到告警。这样,可以使更多的资源专注于业务之上。

请点击输入图片描述
请点击输入图片描述

数据仓库与ODS的区别,数据仓库和ODS并存方案

8. 大数据这个行业里面的全部岗位都有什么?_?要全部的

细分的有20多个
大数据在全球范围内的IT就业市场占有越来越重要的影响。根据Gartner公司提供的数据,截至到2015年将有440万的IT工作来支持大数据,仅美国就会有190万的IT工作产生。看看我们列出的排名前20位的大数据职位及其职责列表。
       
首席数据官Chief DataOfficer 
       职责:
       a. 与行政人员,数据所有者和数据管理员共同为内部和外部的客户创建数据管理策略并且实现数据的准确性和制定工作流程的需求目标。
       b. 引导EIM程序,业务数据管理员和数据服务供应商提供数据管理活动。
       c. 建立数据政策,标准,组织并且督促EIM概念的组织成立。
       b. 监督组织内的数据质量工作的监管,并且为不能被数据治理委员会解决的数据管理问题提供几种治理。
       e. 建立数据供应商管理策略,并通过CIO/CTO和IT组织的协调来监督完善EIM项目。
       f. 领导创建程序的业务定义,数据管理目标和EIM计划执行的原则。
       g. 负责企业的信息/数据管理预算和数据相关的系统活动。

数据分析师Data analyst 
       职责:
       a. 协调客户和员工之间的关系,提供所有的数据分析和支持。
       b. 对所有结果进行数据分析,并为客户准备演讲。
       c. 对数据进行审核并且为客户解决业务相关的问题。
       d. 与工程和产品管理团队进行协调,并确定所有交接的准确性,并准备好总结。
       e. 进行数据分析并且传递给终端客户。
       f. 监督所有的客户问题,并为经理和主管的协调和交接提供帮助。
       g. 监督和管理所有和客户发票并且对所有的支付问题进行及时的评价。
       h. 管理客户发票的所有数据,并提供公司的指标。
       i. 监督并解决所有客户的发票数据问题,并和各供应商协调和管理所有以前的平衡合作关系。
       j. 管理所有的数据消耗异常状态,确定数据的漏洞后准备相应的决议。
       k. 监督流程管理工具,并确保遵守所有周期的指导方针。
       l. 维护和管理发票文档库,并解决所有问题。
       m. 执行内部设计和准备所有的发票,并确定更进流程的质量。
       
大数据观察员Big DataVisualizer 
       职责:
       a. 通过可视化软件给商务提供价值增值分析来指导分析和借鉴分析带来的影响,综合成清晰的沟通。
       b. 理解数据如何在不同的系统中运作来提供有关要求来确定正确的数据输入组织报告/分析。
       c. 与数据质量团队之间紧密合作,以确保数据的完整性。
       d. 发展业务需求为报告流程去推动功能规范化。
       e. 在业务和跨职能团队的合作下,完整地记录报告流程和系统。
       f. 收购,管理和文档的数据(包括地理空间数据)。
       g. 与客户/客户服务团一起进行工作计划,并进行数据分析。
       h. 参与提案撰写,客户交付成果和研究论文。
       i. 对数据、GIS数据分析创建可视化从而列入建议书,报告,论文和多媒体项目数据。
       
大数据解决方案架构师Big DataSolutions Architect 
       职责:
       a. 对Hadoop解决方案的整个生命周期进行引导,包括需求分析,平台选择,技术架构设计,应用设计和开发,测试和部署。
       b. 在一个团队中,设计并卡发开创性大规模集群的数据处理系统提供了技术和管理的领导。
       c. 帮助Xtremeinsights客户指定战略,最大限度地发挥数据的价值。
       d. 帮助Xtremeinsights在大数据空间通过促进白皮书,技术评论对社区建立思想领导。
      
 大数据工程师Big DataEngineer 
       职责:
       a. 收集和处理大规模的原始数据(包括脚本编写,网页获取,调用APIs,编写SQL查询等)。
       b. 和我们的工程团队密切合作,并以惊人的创新和算法与我们的生产系统相结合。
       c. 将非结构化数据处理成适合分析的一种形式,然后进行分析。
       d. 根据所需要的和专案分析商业决策。
       
大数据研究员Big DataResearcher
       职责:
       a. 从多种关系数据库中提取数据,操作,使用定量,统计和可视化工具研究数据。
       b. 告知适当的建模技术的选择,以确保使用严格的统计过程的测试模型进行开发。
       c. 建立和维持有效的流程来验证并更新预测模型。
       d. 分析,建模,预测卫生服务的利用模式/趋势和创造能力来为医疗保健服务模式模拟假设的情景。
       e. 与内部业务,分析和数据战略合作伙伴共同合作,从而提高效率,为核心的软件产品增加预测模型的适用性
       f. 帮助管理分析的创新性,形成的见解,主张整合新概念到现有的客户端工具中,帮助翻译即席分析到可扩展的软件解决方案。

数据仓库管理员Data warehousemanager 
       职责:
       a. 指定并实施信息管理策略。
       b. 协调和管理的信息管理解决方案
       c. 多个项目的范围,计划和优先顺序安排
       d. 管理仓库的各个方面,比如数据外包,移动,质量,设计和实施。
      
 数据架构师Data architect 
       职责:
       a. 通过采用最佳实践和工具,包括SOL,SSIS,SSRS和OLAP来设计数据库,数据模型,ETL过程,数据仓库应用和商业智能(BI)报告。
       b. 根据现有的标准和准则来提供高品质(DA)的相关结果,包括ETL过程,数据仓库设计和数据系统的改进。
       c. 通过提供对数据仓库的方法和途径的建议解决程序(DA)的相关问题与业务分析师和技术团队。
       d. 分析(DA),相关业务需要,可与项目工作人员对(DA)的发展未来做出决定和建议。
      
 数据库管理员Database manager 
       职责:
       a. 提高数据库工具和服务的有效性。
       b. 确保所有的数据符合法律规定。
       c. 确保信息得到保护和备份。
       d. 与工作团队做定期报告。
       e. 监控数据库性能。
       f. 改善使用的技术。
       g. 建立新的数据库。
       h. 检测数据录入程序。
       i. 故障排除。
       
商业智能分析员Businessintelligence analyst
       职责:
       a. 就工具,报告或者元数据增强来进行传播信息。
       b. 进行或协调测试,以确保情报的定义与需求相一致。
       c. 使用商业智能工具来识别或监测现有和潜在的客户。
       d. 综合目前的商业只能和趋势数据,来支持采取行动的建议。
       e. 维护或更新的商业智能工具,数据库,仪表板,系统或方法。
       f. 及时的管理用户流量的商业情报。
       
数据仓库分析员Data warehouseanalyst 
       职责:
       a. 了解企业用户的需求信息,并将其传送到数据仓库团队的其他成员。
       b. 指导并实施面试任务。
       c. 指导并收集采访资料。
       d. 协助DW数据分析师分析现有的报告并确定整合指标。
       e. 指导数据库需求文件的准备。
       f. 协助数据分析师测绘任务。
       g. 分析现有的报告。
       h. 引导业务指标的鉴定和文献。
       i. 在合适的资源系统专家的指导下确定系统的记录。
       j. 帮助识别潜在的数据来源,数据库。
       k. 负责数据采集过程的试验和实施。
       l. 担任ETL和前端程序员的顾问。
     
数据建模师Data modeler
       职责:
       a. 为标准命名约定和编码实践指定最佳的训练方案,以确保数据模型的一致性。
       b. 推荐在新环境中的数据模型的重复使用机会。
       c. 对数据库和SQL脚本执行的物理数据模型进行逆向工程。
       d. 评估数据模型和物理数据库的差异和矛盾。
       e. 验证业务数据对象的准确性和完整性。
       f. 分析数据相关的系统的挑战,并提出相应的解决方案。
       g. 根据公司标准制定标准的数据模型。
       h. 对系统分析员,工程师,程序员和其他人在项目的限制和能力,性能要求和接口进行指导。
       i. 审查修改现有软件,以提高效率和性能。
       
数据库开发员Databasedeveloper 
       职责:
       a. 设计,开发和实施基于客户需求的数据库系统。
       b. 优化数据库系统的性能效率。
       c. 准备设计规范和功能单证的分配数据库的项目。
       d. 对数据库系统进行空间管理和容量规划。
       e. 建立数据库表和字典。
       f. 参与数据库设计和架构,以支持应用程序开发项目。
       g. 执行数据备份和档案上定期。
       h. 测试数据库,并进行错误修正。
       i. 及时解决数据库相关的问题。
       j. 制定安全程序,以保护数据库免受未经授权的使用。
       k. 评估现有的数据库,并提出改进建议的执行效率。
       l. 开发用于数据库设计和开发活动的最佳实践。
       
门户网站管理员Portaladministrator
       职责:
       a. 制定所有门户网站的布局和维护网站的所有功能。
       b. 监督所有页面内容,并提供给所有工作人员和外部组织的帮助。
       c. 整合新的技术体系为门户和网络管理员的协调工作。
       d. 维持对所有门户项目的现状,并协助解决新的和现有渠道的所有问题和自动化的所有进程。
       e. 在所有配置进行测试和升级过程中,实现所有的目标,并保持对所有门户环境的新技术维护。
       f. 确定网站的所有长期目标,并根据指引,建议改进所有内容。
       g. 保持高效的门户网站的文档系统,并协助安装所有Web中心互动系统。
       h. 分析所有系统的升级和应用程序,并确保遵守所有计划要求,设计了新的门户网站所有的解决方案,并协助解决所有的生产问题。
       i. 监测和分析所有门户网站的系统指标,并保持最佳性能。
       j. 与管理人员和社区成员协调落实各项业务活动,并确定所有的web服务器配置。
       k. 管理和配置所有的门户应用程序。
       l. 保留所有门户网站的市场和不断变化的行业知识。
       m. 对全业务运营提供支持,并确保所有的利润优化。
       
数据库管理员Databaseadministrator
       职责:
       a. 选择合适的软件和硬件
       b. 管理数据安全和隐私
       c. 管理数据完整性
       d. 数据备份
       e. 数据库恢复
       f. 优化数据库性能
       g. 提高查询处理性能
       
首席数据分析师Chief DataAnalyst 
       职责:
       a. 为一部分的基础整体研究程序员开发新的分析项目
       b. 团队的其他成员来提供技术投入研究项目的发展。
       c. 为分析员提供大型调查的收集,编制和分析。
       d. 在适当的时候使用Excel,SPSS或者STATA和先进的技术进行统计分析。
       e. 对政策专家,相关的投资方和学者进行基础的增长。
       
业务系统分析员Business SystemAnalyst 
       职责:
       a. 确定通过研究业务职能业务目;收集信息;评估输出要求和格式。
       b. 设计通过分析要求的新的计算机程序;构建工作流程图和示意图;研究系统的能力;书写规范。
       c. 提高通过研究当下实践系统进行设计修改。
       d. 通过识别问题来对控制提出建议,提高写作流程。
       e. 通过定义项目里程碑,阶段和要素来形成项目团队,建立项目预算。
      
 数据挖掘分析师Data mininganalyst 
       职责:
       a. 对优先考虑的账户进行统计分析,从而最大限度的成功化。
       b. 与主管或客户端沟通行动计划,并找出需要改进的地方。
       c. 执行战略数据分析和研究,以支持业务需求。
       d. 找准机会从而通过复杂的统计建模提高生产率。
       e. 浏览数据来认准机会并提高业务成效。
       f. 指定业务流程,目标和战略的理解,以提供分析和解释。
       g. 通过内部讨论的理解,在适当情况下获得业务需求和必要的分析。
      
 数据策略师Data strategist 
       职责:
       a. 定义大数据战略,包括设计多阶段实施路线图。
       b. 独立工作,或作为一个团队的一部分,设计和开发的大数据解决方案。
       c. 异构数据的数据错误,探索和发现新的见解。
       d. 知道分析,架构,设计以及数据仓库和商业只能解决方案的发展。
       c. 指导年轻的团队成员。
       f. 协助业务开发团队提供售前活动和招标书。
       g. 帮助评估和计划项目。
       
业务数据分析师Business DataAnalyst 
       职责:
       a. 与关键投资者的业务分析师和高级管理人员紧密合作,了解他们的经营策略和问题,确定研究需求,帮助设计实验,并根据结果提出建议。
       b. 通过客户细分,从多个来源的定量和定性派生的发展和应用进行影响的决定。
       c. 调整利益相关者和分析师对如何使用研究和分析的想法,以支持业务计划和战略的优先试图(分析路线图)。
       d. 传动复杂的分析项目,需要分析或利益相关者从开始到结束之间的多团队协作。
       e. 有效地管理多个在建设的项目,确保目标和时间获得满足。确定在短期和长期间的权衡和平衡所有投资者的需求。
       f. 领导和参与业务讨论,提供意见,需要的时候进行一些变革。
       g. 关键指标与解释器的讨论,推测并提出行动。
       h. 与业务伙伴的投资者在制定和优先的业务问题上考虑短期和长期的潜在影响,解释结果,量化的机遇,并提出了一个观点合作数据的专家来执行分析操作。
       i. 在企业领导的重视下积极主动地带来新的商机。
       j. 知道分析师和股东对事物的知识和流程上,确保它们是可重复的,可持续的和可扩展的。
       k. 在所有阶段上与多个项目组合作。
最新文章
热门文章
推荐阅读