您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [搜狐]:搜狐智能媒体在数据仓库体系建设中的技术实践 - 发现报告

搜狐智能媒体在数据仓库体系建设中的技术实践

文化传媒 2024-12-16 - 搜狐 Marco.M
报告封面

主要内容 •数据仓库体系建设主要工作 •搜狐智能媒体相关技术实践 •总结 数据仓库 •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** * ?最细小时粒度–依赖属性–依赖的父节点,就近依赖–自依赖–其他属性告警等 •实例执行实体 –实例创建–按天或小时为单位,根据任务周期属性,生成一个或多个实例,并指定每个实例运行时间–数据处理代码–继承对应任务中的数据处理代码–依赖关系–根据任务依赖属性和运行时间动态生成–其他属性–实例运行–依赖的父节点运行成功–自身的运行时间已到 数据任务管理:实例依赖生成规则 数据任务管理:实例依赖示例 数据任务管理:补历史数据 数据质量管理 •触发–任务实例执行完后触发–严重的质量问题可以阻塞下游实例调度 数据元信息管理 •血缘解析:–hive.exec.post.hooks–Druid–Anltr–hive-exec SemanticAnalyzer •主要功能:–表的创建、修改、查询–表的生命周期管理–表的大小、分区等信息统计–表的名称、字段等搜索–表及字段的血缘关系 血缘解析 •字段血缘解析 –注册UDF–重构SemanticAnalyzer–逻辑计划生成和逻辑计划优化–添加postExecHook,执行LineageLogger获得LineageContext–从LineageContext中组装血缘信息 数据安全管理 主要内容 •数据仓库体系建设主要工作 •搜狐智能媒体相关技术实践•批量数据管理•实时数据管理 •总结 主要内容 •数据仓库体系建设 •搜狐智能媒体相关技术实践 •总结 总结 •产品化、服务化 •技术实践心得–可靠的开源产品–可靠的开源代码–可靠的业务解决方案 ThankYou