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