搜狐智能媒体数据仓库体系建设实践

本次分享的主题为搜狐智能媒体数据仓库体系建设实践 , 会对数据仓库中的基本概念进行简单梳理 , 明确数据仓库体系建设涵盖的相关流程 , 主要划分为批量 ( 非实时 ) 数据处理和实时数据处理两大部分:
批量数据处理:根据不同的业务需求场景 , 需要对数据进行分层 , 上层数据基于底层数据通过aggregation、join等计算生成 , 上层数据生产任务依赖于底层数据产生任务 , 任务调度管理成为批量数据处理的一个核心功能诉求 , 以及由此衍生出的数据血缘管理、数据质量管理、数据权限管理等等一系列功能 , 这方面也有不少开源的产品 , 但在设计上或多或少都存在一些问题 , 本次演讲会介绍搜狐智能媒体团队自研的任务调度管理、元信息管理、数据质量管理、数据权限管理等系统的技术实践;
实时数据处理:目前业界的焦点都在stream processing系统上 , 但针对很多aggregation、join等应用场景 , stream processing并不能很好的胜任 , 能够支持数据实时导和MPP查询引擎的系统--比如Apache Doris , 才能很好地满足这些应用场景 , 本次演讲会介绍Apache Doris在搜狐智能媒体的一些技术实践 。
01
数据仓库体系建设主要工作
1. 数据仓库定义
搜狐智能媒体数据仓库体系建设实践文章插图
数据仓库是1991年Bill Inmon在《Building the Data Warehouse》中最开始提出的概念 。 数据仓库的定义是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合 , 用于支持管理决策 。 从定义中 , 可以看出数据仓库不仅仅是一个数据存储计算软件或产品 , 而是包含整个数据分析处理过程体系 。
2. 数据分析
搜狐智能媒体数据仓库体系建设实践文章插图
数据仓库主要是供给数据数据分析使用的 , 其分类主要参考商业智能分为三大部分:

  • Data Reporting:分析维度较少 , 延迟较低 , 并发度较高
  • OLAP:分析维度、延迟和并发度都比较适中
  • Data Mining:分析维度可能几百上千 , 维度较多 , 对于延迟的容忍度较高 , 一般用户较少 , 并发度较低
3. OLAP
搜狐智能媒体数据仓库体系建设实践文章插图
OLAP是数据仓库中最经常使用数据处理和分析技术 , 是Edgar F.Codd在1993年发表于《Providing OLAP(On-line Analytical Processing) to User-Analysts:An IT Mandate 》论文中 。 OLAP主要是针对OLTP对比来说的:
  • OLTP:支持业务处理 , 操作数据或者业务数据 , 不适合支持决策分析
  • OLAP:支持决策分析、多维分析/多维数据库
上方图中可以看出 , OLTP产生的业务数据汇总到OLAP的数据仓库中 , 然后数据仓库中产生的分析结果会促进业务系统的改进 。
4. 多维模型 ( Multidimensional Model)
搜狐智能媒体数据仓库体系建设实践文章插图
前面提到的多维分析是建立在多维模型之上的:
  • 多维模型就是OLAP中的数据组织范型
  • 主要概念:多维数据集 ( Cube );维度 ( Dimension );维度层次 ( Hierarchy );维度级别 ( Level );维度成员 ( Member );度量/指标 ( Measure )
  • 多维分析操作:上卷 ( Roll-up );下钻 ( Drill-down );切片 ( Silce );切块 ( Dice );旋转 ( Pivot )
5. 多维分析操作
① 上卷
搜狐智能媒体数据仓库体系建设实践文章插图
虽然多维分析都是对立方体的操作 , 但是可以映射到关系模型的sql语句上来;上卷就是通过group by把一些多的维度去掉 。
② 下钻
搜狐智能媒体数据仓库体系建设实践文章插图
下钻操作 , 对应到关系模型的sql语句就是对一些低层次维度进行group by 。
③ 切片
搜狐智能媒体数据仓库体系建设实践文章插图
切片操作 , 对应到关系模型的sql语句就是增加一个where条件 。
④ 切块
搜狐智能媒体数据仓库体系建设实践文章插图
切块操作 , 对应到关系模型的sql语句就是增加两个where条件 。
⑤ 旋转
搜狐智能媒体数据仓库体系建设实践文章插图
旋转操作 , 对应到关系模型的sql语句就是select时 , 把列的顺序重新编排一下 。
6. OLAP Cube构建
搜狐智能媒体数据仓库体系建设实践文章插图
Cube构建主要包含两类: