主要内容
•数据仓库体系建设主要工作
•搜狐智能媒体相关技术实践
•总结
数据仓库
•Bill Inmon1991年–《Building the Data Warehouse》
•是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策
•不仅仅是一个数据存储计算软件或产品,而是包含整个数据分析处理过程体系
数据分析
OLAP (Online Analytical Processing)
•数据仓库中最经常使用的数据处理和分析技术
•Edgar F. Codd 1993–《Providing OLAP (On-line Analytical Processing) toUser-Analysts: An IT Mandate》
•OLTP(Online Transaction Processing)–支持业务处理,操作数据或者业务数据–不适合支持决策分析
•OLAP–支持决策分析–多维分析/多维数据库
多维模型(Multidimensional Model)
•OLAP中的数据组织范型
上卷(Roll-up)
SELECT Cube.地区, Cube.季度, Cube.分类, SUM(销售)FROM CubeGROUP BY Cube.地区, Cube.分类, Cube.季度
下钻(Drill-down)
SELECT Cube.地区, Cube.季度.月份, Cube.分类, SUM(销售)FROM CubeGROUP BY Cube.季度.月份, Cube.地区, Cube.分类
切片(Slice)
SELECT Cube.地区, Cube.季度, Cube.分类, SUM(销售)FROM CubeWHERE Dates.季度= 1Group BY Cube.地区, Cube.季度, Cube.分类
切块(Dice)
SELECT Cube.地区, Cube.季度, Cube.分类, SUM(销售)FROM CubeWHERE (Cube.地区= '江苏' OR Cube.地区= '浙江')GROUP BY Cube.地区, Cube.季度, Cube.分类
旋转(Pivot)
SELECT Cube.分类, Cube.地区, Cube.季度, SUM(销售)FROM CubeGROUP BY Cube.季度, Cube.地区, Cube.分类
OLAP Cube构建
INSERT INTO TABLE CSELECT day(from_unixtime(timestamp)) AS dt,hour(from_unixtime(timestamp)) AS hour,minute(from_unixtime(timestamp)) AS minute,vauleFROM A
•维度构建–扩展–裁剪
INSERT INTO TABLE CSELECT B.a AS a, B.b AS b, A.v AS vFROM TABLE A INNER JOIN TABLE B ON A.id = B.id
•指标构建–联合
INSERT INTO TABLE CSELECT a, b, sum(v) as vFROM TABLE A group by a, b
INSERT INTO TABLE CSELECT a, sum(v1) AS v1, sum(v2) AS v2FROM (SELECT a, sum(v1) AS v1, 0 AS v2FROM TABLE A GROUP BY aUNION ALLSELECT a, 0 AS v1, sum(v2) AS v2FROM TABLE B GROUP BY a) AS t GROUP BY a
OLAP多维数据库
•按数据存储格式划分–ROLAP(Relational OLAP)–MOLAP(Multidimensional OLAP)–HOLAP(Hybrid OLAP)
•ROLAP vs MOLAP
–查询速度–装载速度–存储空间–分析灵活性
维度建模
•Kimball•关系建模方法,将维度模型映射到关系模型–维度表–事实表–星型模型/雪花模型/星座模型
表分层
•层次–STG原始数据层–ODS操作数据层–DWD明细数据层–DWS汇总数据层–ADS应用数据层–DIM维度层
•优势:–防止烟囱模式,减少重复开发–将复杂问题简单化–层次清晰,便于使用和理解–……
数据仓库体系架构
主要内容
•数据仓库体系建设主要工作
•搜狐智能媒体相关技术实践
•总结
搜狐智能媒体数据仓库技术架构
•计算范型:No One Size Fits All
•批量数据计算–Interactive Analysis–报表、OLAP、AdHoc–Impala、ApacheDoris–Batch Processing–ETL、DataMining–Hive、Spark
•实时数据计算–Stream Processing–ETL、CEP–SparkStreaming、Flink–StatisticAnalysis–报表、AdHoc–ApacheDoris
Apache Doris—InteractiveMPPAnalyticalDatabase
•Impala+HDFS/KUDU
•ClickHouse–向量化–Scatter/Gather计算模型
–可以实时导入、查询功能完善–部署依赖多–KUDU只支持UniqueKey,聚合分析不友好–数据导入性能
•Druid–Bitmap索引、Rollup–Scatter/Gather计算模型
•ElasticSearch–Bitmap索引、schema-free–查询功能不完善
•Presto/Hawq/……–SQL查询功能完善–依赖HDFS作为存储层
•Kylin–Cube=>Cuboid=>KV存储–数据膨胀
主要内容
•数据仓库体系建设主要工作
•搜狐智能媒体相关技术实践
•批量数据管理
•实时数据管理
•总结
批量数据管理
•数据任务管理•数据质量管理
数据任务管理:Workflow管理系统•Workflow
–指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。
–Workflow管理系统,通过计算机软件对工作流的经营过程进行定义、执行并监控
•数据处理任务Workflow–节点通过数据流向依赖在一起,形成DAG有向无环图–可以根据任务依赖,自动执行任务,在任务之间传递数据
•存在问题
数据任务管理:DAG节点=>任务&实例
•任务编辑实体–用户以任务为单位进行编辑–数据处理代码–如SQL、Shell等代码–周期属性–0 5** * ?最细小时粒度–依赖属性–依赖的父节点,就近依赖–自依赖–其他属性告警等
•实例执行实体
–实例创建–按天或小时为单位,根据任务周期属性,生成一个或多个实例,并指定每个实例运行时间–数据处理代码–继承对应任务中的数据处理代码–依赖关系–根据任务依赖属性和运行时间动态生成–其他属性–实例运行–依赖的父节点运行成功–自身的运行时间已到
数据任务管理:实例依赖生成规则
数据任务管理:实例依赖示例
数据任务管理:补历史数据
数据质量管理
•触发–任务实例执行完后触发–严重的质量问题可以阻塞下游实例调度
数据元信息管理
•血缘解析:–