数据中心建设实践思路与企业实践 | 青训营笔记

116 阅读4分钟

这是我参与 「第四届青训营 」 笔记创作活动的第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
  • 查询稳定性

    • 熔断、限流、降级
  • 元数据管理:指标口径管理、查询生成

\