这是我参与 「第四届青训营 」 笔记创作活动的第16天
企业数据架构
-
企业整体数据架构:基础引擎、数据集成/生产/服务、开发和治理工具
-
关键模块及数据流向
-
数据集成
- 业务数据收集:数据库变更数据收集(CDC)、业务日志收集(业务数据->数据处理系统)
- 大数据系统内传输:基于Flink丰富的connector体系 (数据系统内)
-
数据生产:实时和离线生产pipeline (数据系统内)
-
数据服务:统一数据服务架构(数据系统->业务系统)
-
数据集成
业务数据收集 CDC
业务数据收集-log
系统间同步传输
数据生产
离线 & 实时
数据服务
数据中心案例
- 以房产业务举例说明数据中心建设目标和要求
- 房产业务介绍:房产服务平台、经纪人、客户
- 数据中心核心指标分析:供需、过程、结果
- 数据中心查询要求:查询条件、数据结果、技术要求
供需(房子全不全?客户多不多?)
-
房源
- 房增(新增房子的录入量
-
客源
- 客增(新增客户的录入
-
过程(工作做的怎么样?)
- 通话次数(纪人和客户电语次数)
- 带百次数(纪人品客户看房次数)
结果(结果好不好?)
- 成交量(成交合同量)
数据中心看板查询条件:
- 时间范围:今天前的任意日期范围
- 业务类型:租赁/买卖/全部
数据展示:
- 查询条件下的每个经纪人的汇总数据
- 支持下钻明细数据
技术要求:
- 300ms内返回结果
- 数据是实时秒级
实时数据生产
-
案例生产方案分析:数据探查、明确指标口径和产出粒度、生产架构、计算难点
-
数据探查:分析数据信息是否齐全,即基于原始数据计算指标可行性
-
数据架构:lambda架构和全量计算架构比对,确定合适的生产架构方案
-
计算难点解决
-
全量数据获取:hybrid source
-
精确计算
- 去重&更新处理:基于retract机制
- 乱序问题解决:流join乱序问题方案
-
计算效率
- MiniBatch-聚合计算
- MiniBatch-join
-
-
数据质量
- 任务稳定性:消费LAG、JVM、资源、算子
- 数据正确性:和离线比对、趋势比对、异常值占比
-
实时数仓
- 数据分层:数据复用,减少重复开发
- 数据管理:格式、元数据
数据分析-数据产出目标
数据分析-数据可行性
计算分析-目标:
开发效率:较快满足用户的需要
资源成本:计算效率高
数据质量:准确无误、数据实时
计算分析-计算框架-lambda
数据产出:
黑色的数据是离线计算的,黄色的数据是实时计算的。
问题
问题解决
全量计算问题分析
问题:
-
如何获取全量的原始数据
- 数据湖:实时性相对差
- CDC:log等数据
- 其他?
计算框架选择
计算难点:全量数据获取——hybrid source
先读一下历史的数据再去读实时数据。
计算难点-准确-处理去重 & 更新
计算难点-准确-join 乱序问题场景
join 乱序问题解决
join 乱序问题解决
计算难点-计算效率-聚合
左表和右表下发数据
数据质量-任务稳定性
查看运行的情况,看这些指标,看那些可以帮助到我。
数据质量-数据持续准确性-监控对比
计算总结:
数仓建设
数据服务
-
整体架构:查询引擎、查询优化和执行、稳定性、元数据
-
案例查询方案分析
-
如何更快的查询
- 原始信息筛选和关联效率
- 计算处理效率
- 只关注目标所需数据
-
-
关注目标信息
- 列存
-
原始信息筛选效率
- OLAP引擎索引方案
-
原始信息关联
- join方案及优化
-
计算效率
- 向量化
-
执行计划优化:RBO、CBO
-
应用层优化
- 宽表构建
- 提升信息密度:bit化、bitmap
-
查询稳定性
- 熔断、限流、降级
-
元数据管理:指标口径管理、查询生成
\