这是我参与「第四届青训营 」笔记创作活动的的第18天。
本节课程主要分为 4 个方面:
1.企业数据架构
2.数据中心案例
3.实时数据生产
4.数据服务
一.企业数据架构
1.1.企业数据架构
▧ 关键模块及数据流向:
◎ 数据集成:
● 业务数据收集:数据库变更数据收集(CDC)、业务日志收集(业务数据->数据处理系统)
● 大数据系统内传输:基于Flink丰富的connector体系 (数据系统内
1.2.数据生产-离线&实时
▧ 实时和离线生产pipeline (数据系统内)
1.3.数据服务
▧ 统一数据服务架构(数据系统->业务系统)
二.数据中心案例
2.1.房产业务介绍
2.1.1.核心数据指标
▩ 供需
◌ 房源:房增
◌ 客源:客增
▩ 过程
◌ 通话次数
◌ 带看次数
▩ 结果
◌ 成交量
2.1.2.数据查询要求
▩ 数据中心看板查询条件
◌ 时间范围:今天前的任意日期范围
◌ 业务类型:租赁/买卖/全部
▩ 数据展示
◌ 查询条件下的每个经纪人的汇总数据
◌ 支持下钻明细数据
▩ 技术要求
◌ 300ms内返回结果
◌ 数据是实时秒级
三.实时数据生产
3.1.数据分析-数据产出目标
◻ 用户要什么数据?
根据日期、业务类型查询经纪人汇总数据
3.2.计算分析-目标
◻ 开发效率:较快满足用户的需要
◻ 资源成本:计算效率高
◻ 数据质量:准确无误、数据实时
3.2.1.计算总结
◻ 计算架构:开发效率
◌ Lambda架构 -> 全量计算:一套开发任务
◻ 数据源获取:全量能力
◌ Hybrid Source(逻辑全量表,hive+kafka,成熟存储方案)
◻ 计算:正确、效率,核心是算子选择+优化
◻ 正确:
◌ 处理更新/重复:rownumber+retract机制
◌ 乱序:join reorder
◻ 效率:
◌ 时效性换效率:Minibatch(聚合、join)
◻ 质量:稳定性监控、数据监控
3.3.数仓建设
◻ 数据复用,减少重复开发
3.3.2.元数据管理
◻ 格式、元数据
四.数据服务
4.1.数据服务架构
4.1.1.查询快-怎么做?
▘查询优化分析:
◌ 关注目标:不需要的信息不关注,比如只查询带看量
◌ 计算出来:能不能足够快,比如count/sum/avg等聚合函数
◌ 原始信息:单表筛选过不过快、信息关联过不过快
4.1.1.应用优化
▘原始信息关联
◌ Local Join:如计算带看量,带看数据和房信息按照片house_id分布,无shuffle io开销
◌ 预关联:直接生产“大宽表”
▘计算复杂度
◌ 预计算:提前聚合到特定粒度,如带看量聚合到经纪人+天+业务类型
◌ 提升信息密度:bit化
4.2.稳定-如何解决
▘容错触发策略:
◌ 比如错误率每秒超过10%
◌ 响应时间>5s
▘动作:
◌ 直接返回失败
▘限流、降级:
◌ 限流:根据查询客户端、接口等配置查询限额
◌ 降级:主备存储/服务集群,降级预案
4.3.查询-数据管理
▘维度:
◌ 天(date)
◌ 经纪人(staff_id)
◌ 业务类型(biz_type)
▘指标:
◌ 带看量(dk_cnt):count(dk_id)
◌ 通话时长(call_duratition):sum(duration)
▘模型表:
◌ 经纪人指标表:dwm_staff_biz_day_rt