在线教育大数据营销平台实战(一):大数据平台构建实战( 二 )



在线教育大数据营销平台实战(一):大数据平台构建实战
文章图片
4、从0~1构建大数据平台的RoadMap
笔者结合自身在推进大数据平台建设过程中的经验 , 给出以下路线图供大家参考 。

在线教育大数据营销平台实战(一):大数据平台构建实战
文章图片
三、数据建模及设计规范
1、数据模型选型及举例
维度建模常见的模型有星型模型、雪花模型和星座模型三种 , 数据仓库设计一般采用星型模型 。
星型模型是一种多维的数据关系 , 它由一个事实表(FactTable)和一组维表(DimensionTable)组成 。 每个维表都有一个维作为主键 , 所有这些维的主键组合成事实表的主键 。 事实表的非主键属性称为事实(Fact) , 它们一般都是数值或其他可以进行计算的数据 。

在线教育大数据营销平台实战(一):大数据平台构建实战
文章图片
事实表:表示对分析主题所属类型的描述 。 比如“昨天早上张三在***校花费1000元购买了一个一建零基础畅学班课程” 。 那么以购买为主题进行分析 , 可从这段信息中提取三个维度:时间维度(昨天早上) , 地点维度(***校),商品维度(一建零基础畅学班课程) 。 通常来说维度表信息比较固定 , 且数据量小 。
维度表:表示对分析主题的度量 。 比如上面那个例子中 , 1000元就是事实信息 。 事实表包含了与各维度表相关联的外码 , 并通过JOIN方式与维度表关联 。 事实表的度量通常是数值类型 , 且记会不断增加 , 表规模迅速增长录数 。
2、数仓表设计规范
(1)表命名规范
数仓各层表命名规范如下图所示 。

在线教育大数据营销平台实战(一):大数据平台构建实战
文章图片
(2)字段级规范
新增指标的命名参考已有字段命名方式 , 避免出现同一个字段 , 10个人有10个命名方法 。
字段分类包括:明细 , 维度 , 指标 , 时间 , 代码 , 标志位 , 命名规范如下:
id结尾表示编号 , 部分维度编号对应含义需关联数仓相应维度表获取含义;name结尾表示名称 , 多与id对应 , 解释其含义 , 独立的以name结尾的字段;code结尾表示代码字段 , 对应含义部分可在文档直接查看 , 部分需关联数仓代码表获取;time结尾表示时间字段 , 格式为yyyy-mm-ddhh:mi:ss , 从源系统获取 , 不作处理;money结尾表示金额 , 都为系统相应交易金额;is_开头表示标志字段 , 此字段只有0,1 , 含义:1是 , 0否;除以上规范字段 , 其他字段根据中文含义对应生成英文字段 , 多为一些属性字段 , 意义不大 。四、大数据平台技术架构及模块简介
在大数据平台的建设过程中 , 笔者和公司大数据架构师共同研究探讨后给出的技术架构如下图所示 。

在线教育大数据营销平台实战(一):大数据平台构建实战
文章图片
(1)安全模块
作为数据平台来讲 , 保障数据安全始终是第一要素 。 安全体系的建立主要包含以下几个方面:
数据安全规范、安全等级制定
用户系统基础组件层权限管理服务层权限管理用户认证秘钥管理流程审批数据加密脱敏审计(2)监控模块
数据安全之外 , 服务的稳定性算是平台的第二级指标 。 好的监控体系可以帮助预测风险定位问题 。 例如:
提前预判磁盘容量定位内存、CPU资源问题发现异常任务节点宕机等问题查看该各服务负载 , 评估资源(3)存储模块
存储模块属于基础组件模块 , 主要采用hadoop生态系统的相关组件 。 面向不同的应用场景选择一种组件 , 例如:
hive:离线数仓HBase:KV存储 , 可用于高度聚合后的固定指标 , 应对有较高并发请求的场景Druid:面向OLAP场景 , 能够提供亚秒级、较高请求量且需要钻取能力的OLAP功能Impala:在数仓数据基础上提供更高效的查询分析能力 , 适合即席查询场景 , 但是并不能处理更高的请求量 。(4)计算模块
Yarn做统一资源管理 , Spark或者Flink都可以作为统一流、批处理框架 。 或者阶段性允许两者并存 。
(5)管理模块
数据治理:数仓管理数据的主要平台 , 包括
?元数据管理
?数据质量管理
?血缘关系管理
?数据安全、权限管理
任务管理:
?离线任务管理、调度
?包含管道任务、SQL任务、Shell任务等形态 , 数仓场景中SQL任务占整体任务的绝大多数
?需要基于SQL自动生成任务之间的依赖关系 , 并且按照任务之间的依赖关系和优先级调度任务
?流式任务管理