3. 工程分析平台架构

工程分析平台采用四层解耦架构,将数据接入、规则定义、校验执行与结果可视化分离,确保各层可独立扩展与维护。以下从分层逻辑与核心组件两个维度展开。

3.1 平台分层架构总览

平台自底向上划分为数据源层、规则引擎层、校验执行层与结果展示层,层间通过标准化接口通信,降低耦合度。

工程分析平台四层架构总览 数据源层 实时流(Kafka) · 离线表(Hive) · 日志文件(Flume) · 数据库(MySQL/PostgreSQL) 规则引擎层 规则定义 · 规则解析 · 规则版本管理 · 规则依赖编排 校验执行层 任务调度 · 分布式执行引擎(Spark/Flink) · 异常检测 · 结果回写 结果展示层 仪表盘 · 告警中心 · 质量报告 · 趋势分析

3.2 各层核心组件与职责

下表汇总了每层的关键组件及其在质量校验场景中的具体职责:

架构层 核心组件 职责说明 典型技术选型
数据源层 数据接入网关、元数据管理、采样器 统一接入多源异构数据,完成格式转换与字段映射,提供数据预览与采样能力 Kafka Connect、Flume、DataX
规则引擎层 规则编辑器、规则解析器、版本仓库、依赖图 支持可视化/DSL定义规则,解析为可执行计划,管理规则生命周期与依赖关系 Drools、自研DSL、Git
校验执行层 任务调度器、分布式计算引擎、异常检测器、结果收集器 按调度策略触发校验任务,利用分布式计算完成大规模数据扫描,检测异常并回写结果 Apache Spark、Flink、Airflow
结果展示层 仪表盘、告警服务、报告生成器、趋势分析器 实时展示校验结果,通过多维度下钻定位问题,生成周期性质量报告 Grafana、Elasticsearch、ECharts

3.3 数据源层:多源异构数据接入

数据源层是质量校验的第一道关口,负责将分散在不同系统中的数据统一接入平台。该层需要解决以下核心问题:

  • 多协议适配:支持 Kafka(实时流)、Hive 分区表(批量)、MySQL Binlog(增量)、日志文件(文本)等多种接入方式。
  • 元数据自动发现:从 Hive Metastore、Kafka Schema Registry 等元数据中心自动拉取字段定义与类型,减少人工配置。
  • 数据采样与预览:在正式校验前提供小批量采样,帮助规则编写者验证字段值与规则逻辑。
工程经验:数据源层建议统一使用 Schema Registry 管理字段版本。当上游表结构变更时,平台可自动感知并触发规则兼容性检查,避免因字段缺失导致校验任务大面积失败。

3.4 规则引擎层:规则定义与编排

规则引擎层是平台的逻辑中枢,它将业务质量需求转化为机器可执行的校验规则。核心组件包括:

  • 规则编辑器:提供可视化拖拽与 DSL 两种模式。DSL 示例:
RULE "订单金额非负校验"
WHEN
  source: orders
  condition: amount < 0
THEN
  severity: ERROR
  action: 写入异常表 + 触发告警
END
  • 规则解析器:将 DSL 或图形化规则解析为抽象语法树(AST),再转换为 Spark/Flink 算子逻辑。
  • 版本仓库:基于 Git 存储每条规则的变更历史,支持回滚与 diff 对比。
  • 依赖图:当规则之间存在上下游依赖(如先校验数据完整性,再校验业务逻辑)时,自动构建 DAG 确保执行顺序。

3.5 校验执行层:分布式校验与异常检测

校验执行层是平台的计算核心,负责将规则引擎生成的执行计划分发到集群中运行。该层的关键设计要点:

组件 功能 故障排查关注点
任务调度器 基于 Cron 或事件触发,管理校验任务的启停与重试 调度延迟、任务堆积、死锁
分布式计算引擎 执行数据扫描、聚合、比对等计算密集型操作 数据倾斜、OOM、Shuffle 异常
异常检测器 基于阈值、波动率或机器学习模型识别异常记录 误报率、漏报率、检测延迟
结果收集器 将校验结果(通过/失败/异常详情)写入结果表或消息队列 写入性能、数据丢失、重复写入
常见故障:校验执行层最容易出现 数据倾斜 问题。例如按某个低基数字段(如状态码)分组校验时,某个分组数据量远超其他分组,导致单个 Task 长时间运行甚至 OOM。解决方案包括:采用 Salting 技术打散 Key、调整并行度、或改用 Bucket 分区策略。

3.6 结果展示层:可视化与告警

结果展示层将校验执行层产出的原始结果转化为可读、可追踪、可决策的信息。核心能力包括:

  • 实时仪表盘:展示当日校验总量、通过率、严重异常分布、Top 问题表等关键指标。
  • 告警中心:支持多级告警(邮件、钉钉、短信),并关联规则版本与执行日志,便于快速定位根因。
  • 质量报告:按周/月自动生成 PDF 或 HTML 报告,包含趋势图、环比变化、改进建议。
  • 趋势分析:通过时间序列分析,识别质量指标的周期性波动或持续恶化趋势。
结果展示层核心组件关系 校验结果存储 实时仪表盘 告警中心 质量报告 趋势分析

3.7 架构设计要点总结

架构设计要点:
  1. 层间解耦:每层通过 API 或消息队列通信,任一层的升级或故障不影响其他层。
  2. 可观测性:每层暴露核心指标(数据接入延迟、规则解析耗时、任务执行时长、结果写入 QPS),便于全链路监控。
  3. 弹性伸缩:校验执行层基于 Spark/Flink 的弹性资源管理,可根据数据量自动扩缩容。
  4. 故障隔离:单条规则执行失败不影响其他规则,异常检测器采用熔断机制防止级联故障。