TUhjnbcbe - 2024/9/30 9:13:00
一、大数据应用思维产品经理给大数据部门提了个需求:我想知道所有用户的标签,比如哪些用户喜欢时尚类型的微博、哪些用户是单身狗等,好给这些人针对性推阿里巴巴的广告,而且很急,下个月新版本就要上线。大数据部门的程序员们收到需求之后,一分析,数据有好几百TB,一台机器跑要跑7个月(多天),所以得用分布式计算。于是搞了台服务器,并把这台服务器分成两部分,一部分有90台,叫Master,负责划分数据,分配数据处理任务;一部分有10台,叫Worker,负责归并数据块,计算出最终结果。服务器搭建好了,架构弄好以后,程序员开始分头写程序,一部分负责写数据文件的划分,把文件分成一小块一小块来处理;一部分负责写计算任务调度,就是把划分好的数据文件分配到90台Master服务器中;一部分负责写归并处理程序,部署到剩下的10台Worker服务器,接收那90台服务器传过来的数据,并计算结果;一部分负责写出错检测,检查哪些机器挂了导致计算任务停止了,一旦发现出错了,把计算任务分配到其他正常的服务器上计算。10台Worker服务器根据1,2,3...10,进行了编号,假设每个人的都有一个微博ID(是数字),按照微博ID的个位数来进行划分,比如我ID是1,那我的处理结果会在1号服务器,ID是213,那么处理结果就在3号服务器。假设上面的流程都正常,因为机器多了,原本需要多天的任务,有了台机器,结果3天就跑完了!得到了这样的微博用户特征(大师兄[单身概率88%,科技工作者概率90%,性别男概率%,本科毕业概率81%,收入水平元/月概率10%...])。二、数据处理的流程大数据的数据处理这件事用一种非技术的角度来看的话,可以按处理顺序分为三个部分,第一个部分是数据采集,第二个部分是数据存储,第三个部分是数据分析,这也是大数据搭建的基本产品模型。1、数据采集●基本原则全:多种源(客户端、服务端、数据库等),完善的数据源(零售、C端、电商、供应链等)全量而且非抽样细:Who、When、Where、How、What数据采集最重要的就是数据源,数据源好,后面的事情都很容易。但如果数据源就有问题或是太差不全之类的,后面有些问题用再复杂的算法可能都解决不了,可能都是很难得到正确的结论。所以数据采集处理流程有两个基本的原则,一个是全,一个是细。●全:就是说我们要拿多种数据源,不能说只拿一个客户端的数据源,服务端的数据源没有拿,数据库的数据源没有拿,做分析的时候没有这些数据你可能是搞歪了。大数据里面讲的是全量,而不是抽样,因为数据之间可能有很大差异。比如纵向里,做全国零售数据分析的时候,不能只把四川或者北京的拿来分析,因为它一定代表不了黑龙江、甘肃等地方,所以必须要全量分析全国数据。横向里,我们在分析某个商品的总的销售情况的时候,我们除了分析线下零售数据还有需要C端外送数据和电商数据,因为一个东西可能在公司的多个业务系统上销售。所以对于多个业务系统的公司,需要每个业务系统涉及的数据都要足够全,不能有任何一个系统有缺失。●细:其实就是强调多维度,在采集数据的时候尽量把每一个的维度、属性、字段都给它采集过来。比如:像where、who、how这些东西给它替补下来,后面分析的时候就跳不出这些能够所选的这个维度,而不是说开始的时候也围着需求。根据这个需求确定了产生某些数据,到了后面真正有一个新的需求来的时候,又要采集新的数据,这个时候整个迭代周期就会慢很多,效率就会差很多,尽量从源头抓的数据去做好采集。●数据清洗:在数据采集过程种需要对源数据做清洗处理。其实也是对数据做加工的过程,确保命名约定,编码结构,属性维度等一致性。因为本身的源数据会存在垃圾数据,本身也是杂乱的没有很好的逻辑,数据清洗的过程就是让数据更具逻辑性,更干净有序的存储。2、数据存储①、数据建模数据建模指的是对现实世界各类数据的抽象组织,确定数据库需管辖的范围、数据的组织形式等直至转化成现实的数据库。将经过系统分析后抽象出来的概念模型转化为物理模型后,在visio或erwin等工具建立数据库实体以及各实体之间关系的过程(实体一般是表)。在软件工程中,数据建模是运用正式的数据建模技术,建立信息系统的数据模型的过程。(百度百科)数据模型就是对现实世界的一个抽象化的数据的表示。大数据的数据建模则是基于大数据本身的数据量、数据特征、业务需求、还有自身分析重点和目标做的数据模型。我们可以针对分析的需求对数据重新进行解码,它内容可能是一致的,但是我们的组织方式改变了一下。就拿用户行为这块数据来说,就可以对它进行一个抽象,然后重新把它作为一个判断表。数据建模时常常考虑的有两个概念,一个是维度,一个是指标通常各个业务系统,一般前端做一个请求,然后对请求经过处理,再更新到数据库里面去,数据库里面建了一系列的数据表,数据表之间都是很多的依赖关系。这些表一个业务项发展差不多一年以上它可能就牵扯到几十张甚至上百张数据表,然后把这个表直接提供给业务分析人员去使用,理解起来难度是非常大的。数据建模则可以把这些关系重构,让业务人员更容易理解。②、数据仓库●面向主题:数据仓库是围绕着一些主题,如顾客,供应商,产品,销售等创建的。数据仓库