数据集市层的存储选型
不同于明细层和明细汇总层,数据集市层需要将实时计算好的指标存储起来以供应用层使用。我们根据不同的场景选用了 HBase 和 Redis 作为实时指标的存储引擎。Redis 的场景主要是满足带 Update 操作且 QPS 较高的需求,例如:实时统计弹窗广告的累计 PV 数,由于浏览内容产生大量的 PV 日志,可能高达几万或者几十万每秒,需要对每一条广告的 PV 进行实时累加,这种场景下选用 Redis 更为合适。
HBase 的场景主要是满足高频 Append 操作、低频随机读取且指标列较多的需求,例如:每分钟统计一次所有广告的点击、曝光、CTR等指标,将每分钟聚合后的结果行 Append 到 HBase 并不会带来性能和存储量的问题,但这种情况下 Redis 在存储量上可能会出现瓶颈。
指标计算打通指标系统和可视化系统
指标口径管理依赖指标系统,指标可视化依赖可视化系统
那么三者怎么关联呢?
需求方整理好需求文档后向数仓工程师提出需求并约会议评审需求,需求文档中必须包含指标的计算口径和指标对应的维度。数仓工程师根据需求文档对需求进行评审,评审不通过则返回需求方进一步整理需求并重新提需。在需求评审通过后,数仓工程师开始排期开发
首先在可视化系统中创建一个数据源,这个数据源是后期配置实时报表的数据源,创建数据源也即在 HBase 中创建一张 HBase 表。针对该数据源创建指标列,创建指标列也即在 HBase 列族中创建列,创建指标列的同时会将该指标信息录入指标管理系统。针对该数据源绑定维表,这个维表是后期配置多维报表时选用维度值要用的,如果要绑定的维表已经存在,则直接绑定,否则需要导入维表。一个完整的数据源创建后,数仓工程师才能开发实时应用程序,通过应用程序将多维指标实时写入已创建的数据源中。需求方根据已创建的数据源直接配置实时报表。
应用层
应用层主要是使用汇总层数据以满足业务需求。应用层主要分三块:1.通过直接读取指标汇总数据做实时可视化,满足固化的实时报表需求,这部分由实时大屏服务承担;2.推荐算法等业务直接消费明细汇总数据做实时推荐;3.通过 第三方工具(STREAMSETS,FLINKX...)程序实时摄入明细汇总数据到 HBase/CK/kylin等,满足实时多维即席分析需求。
实时数仓 2.0 中的技术实现
相比实时数仓 1.0 以 Spark Streaming 作为主要实现技术,在实时数仓 2.0 中,我们将 Flink 作为指标汇总层的主要计算框架。Flink 相比 Spark Streaming 有更明显的优势,主要体现在:低延迟、Exactly-once 语义支持、Streaming SQL 支持、状态管理、丰富的时间类型和窗口计算、CEP 支持等。
我们在实时数仓 2.0 中主要以 Flink 的 Streaming core作为实现方案。使用 Streaming core有以下缺点:很难平台化、开发效率低、维度成本高等。
实时数仓 2.0 取得的进展
在明细汇总层通过流量切分满足了各个业务实时消费日志的需求。但是由于各业务消费的是切分后的流量,Kafka 出流量下降了一个数量级(架构思维,分而治之思想)。各业务核心实时报表可以稳定产出。由于核心报表的计算直接由数仓负责,可视化系统直接读取实时结果,保证了实时报表的稳定性,目前多个业务拥有实时大屏。提升了即席查询的稳定性。核心报表的指标计算转移到数仓,HBase只负责即席查询,多维分析类的需求得到了满足。成本计算需求得到了解决。由于各业务拥有了独立的数据源且各核心大屏由不同的实时程序负责,可以方便的统计各业务使用的存储资源和计算资源。
实时数仓3.0时代(30% ) 120% 效率 java
从实时数仓 1.0 到 2.0,不管是数据架构还是技术方案,我们在深度和广度上都有了更多的积累。随着公司业务的快速发展以及新技术的诞生,实时数仓也会不断的迭代优化。短期可预见的我们会从以下方面进一步提升实时数仓的服务能力。
Streaming SQL 平台化。目前 Streaming SQL 任务是以代码开发 maven 打包的方式提交任务,开发成本高,后期随着 Streaming SQL 平台的上线,实时数仓的开发方式也会由 Jar 包转变为 SQL 文件。实时数据元信息管理系统化。对数仓元信息的管理可以大幅度降低使用数据的成本,离线数仓的元信息管理已经基本完善,实时数仓的元信息管理才刚刚开始。
实时数仓结果验收自动化。对实时结果的验收只能借助与离线数据指标对比的方式,以 Hive 和 Kafka 数据源为例,分别执行 Hive SQL 和 Flink SQL,统计结果并对比是否一致实现实时结果验收的自动化。
1、从0-1自学大数据-数据仓库(离线)怎么实操才能让自己具备准企业级别开发水平?可以干活!
1、基础技术栈
1.1.1、语言基础 javase scala sql shell/python脚本语言
1.1.2、技术框架
存储: mysql、redis、hbase、es
计算引擎:hive(mr) spark flink
服务协调: zookeeper dubbo springcloud
数据采集:flume sqoop datax cannl
元数据管理 atlas
集群的部署 监控 运维 : cdh hdp 原生Apache社区开源组件(大厂 二次开发)
任务调度工具: azkaban、ozzie、小海豚、airflow、xxl-job......
自助BI分析: 帆软、神策、superset、国人开源BI(github)
界面上写sql jdbc hive 拖拉跩
2、数仓专题
2.1、
数据仓库全局认知
概念理论认知 Inmon kimball
2.2、
数据仓库模型的流程的构建分析
梳理业务流程->数仓分主题域->梳理指标体系->调研实体关系->梳理维度->做分层->模型设计
2.3、
数仓建模
范式建模理论
ER对关系实体模型
维度模型:
事实表 维度表
模型分层设计(ODS DWD DWS ADS)
模型分类设计(星型模型、雪花模型、星座模型、CUBE)
看书 工具箱那本书 建模案例 实操!!!
3、实战案列
网上实战案例 b站 播放量比较小 优质的博主项目 小众的
项目架构 应用架构 逻辑架构 物理架构
常见的指标
经典复杂需求分析
4、数仓项目-> 简历-> 面试的语言逻辑讲解文档
5、未来到企业的数仓工作内容 趋势
平台化 模型设计优化 数据产品赋能
数据质量
数据地图 数据血缘
对外开放的查询平台 sql 实时sql 开放给业务和运营用
2、离线数仓构建方案之主题域划分、维度建模
8.1、核心:业务总线矩阵
8.1.1、从全局对公司的数据进行规划和设计
业务系统、库、表 元数据管理系统 wiki Excel
数据源探查
8.1.2、业务线明确分工、确定责任到个人
8.1.3、让所有数仓末端负责人(经理)根据矩阵有规划的填充数据表格
8.1.4、一致性维度与事实,数据与口径统一
8.2、核心:数仓构建方案之维度建模
8.3、维度总线矩阵:明确维度和业务过程之间的关系
福利大放送
为了更好地帮助大家学习,
限时放送1v1模拟面试and职业规划分析诊断大礼包!
不管你是想在职提升,还是跳槽学习,
亦或者转行学习and毕业求职
这份礼包都是你不可错过的必备神器!
果汁建立了数据知识分享社群,
群内每天都有干货和免费小课资料分享。
数量有限、先到先得
根据下方方式
领取大礼包
搜索:果汁说数据
薇x:Datawoker
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved