https://v.qq.com/x/page/v0547ee0whs.html
基础基础
搭建数据仓库主要需要建模的能力,还要沉淀一些维度表。除此之外还要不断地挖掘数据,来把模型建得更好。
应该做的几件事
简介
在得到活动数据后,要把这些数据投入到数据仓库中,并且做以下几件事:
用户或者实体的识别需要统一。
PC和无线端的数据打通。
围绕实体和跨业务间的事实数据打通。
重要事实表的维度冗余。
用户画像或客户画像。
有怎样的市场价值
目前我们已经积累了很多用户数据,这些数据都是非常宝贵的资源,我们基于这些数据做了一些开发利用。
搭建了数据仓库就可以把用户分析的数据用来做个性化推荐、定向营销、风控等等。
数据仓库的市场价值在于需求场景驱动的集市层建设,各集市之间垂直构建。
集市层深度挖掘数据价值,并需要能够快速试错。
以阿里金融在后台大数据中的运行过程为例,我们会从关系数据库中把用户相关的所有数据全部导入到MaxCompute中,然后记录用户的一些操作日志,比如登录过哪些网站、浏览过哪些商品,有怎样的喜好。还有一些其它数据,可能是从其它系统过来的。我们把这些数据做一个汇总分析,最终把这些数据导出到业务系统中,也有一个统计服务。这样当用户来进行征信贷款的时候,我们很快就可以定位到这个用户是否符合征信要求,并迅速进行审批。
如上图所示,DataWorks主要依赖于MaxCompute。右边是阿里云目前提供的一些基础组件。集成开发环境这一块是可视化的,比如在工作流设计器上做工作流和应用调度,在里面进行配置。
我们提供了一个Web页面的代码编辑器,支持MR、SQL等等。还有一个代码调试器,写过的代码可以直接在这里进行调试。有了代码仓库就能保留好几个版本,并预览之前保存的版本。
调度分为资源调度和工作流调度两部分。工作流调度与前面的工作流是息息相关的,在工作流设计器中设计成一个工作流的话,底层的调度会按照顺序进行调度。资源调度和底层网关集群的资源是相关的。
数据治理中主要是任务监控和数据质量。
大数据开发核心流程
当我们接到一个需求,首先会进行需求分析,然后做工作流设计,比如这个任务是什么时候跑的、依赖于哪些业务。工作流设计完成后进行数据采集和数据同步。接下去就是数据开发,我们提供了WEB-IDE,支持SQL、MR、SHELL和 PYTHON等。然后我们提供了冒烟测试的场景,测试完成后发布到线上,让它每天定时进行自动调度,并进行数据质量监控。以上步骤都完成后,就能把我们的数据环流到业务系统库,或者用QuickBI、DataV这些工具进行页面展现。
我们设计的任务是离线的,每天会在12点的时候把设计的任务变成一个实例快照。目前我们的任务依赖在业内也是最先进的。
现在最常见的需求就是每天有日报,每周要写周报,每月要写月报。为了节省资源,就可以使用日报的数据直接转成周报或月报。
线上系统在每天6点的时候要保证数据已经回笼到业务系统,系统要开始使用了。
如上图所示,假设有D和E两个任务,它们依赖于B和A。任务D的运行时间是1.5小时,E是2小时。我们必须确保B每天在4点之前把B的任务运行完成,一般正常运行时间是2小时。那就要保证A每天任务完成的时间不晚于2点。如果A的运行时间是10分钟,到1点的时候发现A的任务失败了,这时就能计算出A还剩下多少余量,我们可以进行人工监督排查。在1:50之前人工介入,从而保证任务D和E能在6点前准时产出。
总结
如图所示,MaxCompute是图上小人的“心脏”,所有运行的任务都在MaxCompute里面。调度是数据架构的“大脑”。“眼睛”是数据监控,目前在数据架构平台上它还是一个“近视眼”,还没有正式推出。数据集成就像两只“手”,不停地从其它地方搬运数据。底层的开发环境和运维中心就像两条“腿”,保证整个数据架构平台走得更远。而数据质量就像是一个“人体健康中心”,也就是数据质量的监控。