黄河敏捷开发 2018-07-27
一、背景
大量原来线下的业务电子化之后,产生了很多的数据,这些数据除了能够支撑业务正常运转,也能够使分析人员针对整个企业的运转情况进行分析。比如,本周与上周相比销量增加还是减少了?原因是什么? 产品的库存周期长了还是短了?哪些产品需要及时补充库存?哪些供应商提供的商品,成本低、质量好、及时供货、客户比较喜欢?哪些地方的支出变多了?用户对我的产品满意吗?客户发生了哪些变化?需要招人吗?招什么样的人? 上面这些问题分别涉及 销售、库存、采购、会计、客户、HR等各个层面。
二、业务型系统与分析型系统的区别 OLTP VS OLAP
OLTP:代表具体的操作,是对原来线下操作的模拟。
OLAP:关注整体的分析和决策。BI之前叫作决策支撑系统。
三、数据仓库是什么
OLAP关注分析,需要更宏观的数据视野(大量的细节会使人看不清楚),需要做跨系统的数据整合。业务型的数据专注于具体的操作,不适合做分析。数据仓库的核心是把所有系统的数据进行集成,保证数据的一致性,并且要能反映出业务系统的变化(支持敏捷开发,增量开发)。这是一个艰巨的任务,比如同一个东西一个表叫id,一个表叫seq,业务里存1行,仓库里可能需要2行。
四、数据模型是什么?(数据结构)
数据仓库里的数据怎么存储?(关系模型还是数据立方体?文件还是图片?)彼此间的关系怎么定义?怎么样反应业务系统里的变化?怎么样使存储上省空间?怎么样使查询更快?怎么样方便的出报表?怎么样实现增量开发和敏捷开发(避免返工)?怎么样定义跨多个业务系统的数据?……
五、ETL 是什么
把数据模型定义的结构,具体实现的过程。在大数据出现之前,业务系统和仓库都是结构化的数据,对应的ETL的接口主要是sql。大数据时代,ETL的具体实现技术是类似于 map reduce的任务,hivesql等。
六、数据部门需要做的事情
1、搭建好能够支撑离线分析和实时分析的整体技术架构平台。具体的会涉及到 数据埋点、数据同步、分布式作业调度和计算、消息队列、流式计算、对外提供服务的方式等
2、具体数据模型的设计和实现(ETL和数据仓库)
3、针对具体应用的报表
4、使用机器学习等技术实现的模型
七、大数据部门的人员角色划分
1、计算机技术人员 熟悉数据埋点、抓取、消息队列、hdfs spark storm hbase hive 等分布式技术的人员
2、数据建模人员 分析业务,设计数据仓库的模型,通过第一类人的技术实现仓库的构建
3、数据挖掘/分析人员 具体的设计模型、报表等
八、业界事实标准
1、数据模型--kimball的维度模型。简单概括:1》 使用企业数据仓库总线做数据仓库总体架构设计。2》 将世界描述为相对静态的实体(维度表)和实体之间的交互(事实表)3》 事实表代表维度的关联关系 4》用一致性维度实现数据的集成和敏捷开发 5》 用持久性代理键标记实体
2、大数据仓库相关的技术体系
hdfs HBase hive ElasticSearch Flume Kafka storm Spark
总结:大数据仓库是数据仓库的延伸。数据仓库的目标是数据集成和反应数据变化的过程,大数据相关的技术是为了数据仓库服务的。具体的分析和应用基于数据仓库展开。即 大数据技术->仓库--》分析应用