如何实现一个跨库连表SQL生成器?
简介: 用户只需在前端简单配置下指标,系统即可自动生成大宽表,让用户查询到他所需要的实时数据,数据源支持跨库并支持多种目标介质。这样的数据全局实时可视化如何实现?本文从需求分析开始,分享自动生成SQL功能开发中运用到的设计模式和数据结构算法设计。 一 概述 ADC(Alibaba DChain Data Converger)项目的主要目的是做一套工具,用户在前端简单配置下指标后,就能在系统自动生成的大宽表里面查询到他所需要的实时数据,数据源支持跨库并支持多种目标介质。说的更高层次一点, 数据的全局实时可视化这个事情本身就是解决供应链数据“神龙效应”的有效措施(参考施云老师的《供应链架构师》[1]一书)。做ADC也是为了这个目标,整个ADC系统架构如下图所示: 架构解析: 初始数据来自于元数据中心。 经过元数据适配层后转换为内部格式数据。 调度中心把内部格式的数据传到计划中心,计划中心分析数据需求并建模,通过SQL生成器生成资源和SQL,分别通过告警中心、对账中心设定监控标准和对账标准。 对账中心定时对账,查看数据的对齐情况。 告警中心可以针对任务错误、延迟高等情况发送报警。 资源的生命周期管控在资源管理中心下,view删除时资源管理中心负责回收资源。 基础资源适配层主要借助集团基础资源管理能力串联阿里各类数据服务, 比如阿里云MaxComputer、Flink