JQuick-SQL 模块架构:从 SQL AST 到分布式执行

JQuick-SQL 模块架构:从 SQL AST 到分布式执行

Meta 描述:梳理 jquick-sql 的 core、parser、plan、proto、query、runtime 六个模块,理解 Java SQL 查询引擎的真实处理边界。

标签:jquick-sql 架构、SQL AST、逻辑计划、物理计划、Coordinator Worker、Java SQL 查询引擎

官网示例:

前言

理解模块边界,才能在数据中台中正确扩展 jquick-sql,而不把 SQL 语法、计划优化和执行调度混在一起。该项目通过六个 Maven 模块串起 SQL 的完整处理链。

六个模块的职责

  • jquick-sql-core:配置、枚举、数据源管理、统计与工具类。
  • jquick-sql-parser:词法/语法分析、AST 节点、Visitor 与 JQuickSQLExecutor。
  • jquick-sql-plan:AST→逻辑计划、优化规则、逻辑→物理计划。
  • jquick-sql-proto:执行层的 Protobuf 与 gRPC 定义。
  • jquick-sql-query:Fragmenter、Coordinator、Worker、分区和表达式执行。
  • jquick-sql-runtime:JQuickSQL 门面、XML 动态代理、函数 SPI 与 DTD。

计划如何流转

text 复制代码
SQL → Parser/AST → Logical Plan → Optimizer → Physical Plan
    → Fragmenter → Coordinator → Worker → JQuickDataSet

逻辑优化器包含谓词下推、投影下推、Join 重排序、常量折叠等规则;随后物理计划被切分为 Fragment,通过 Coordinator-Worker 模型执行。

代码入口示例

java 复制代码
import com.github.paohaijiao.executor.JQuickSQLExecutor;
import com.github.paohaijiao.ast.JQuickQueryNode;

JQuickQueryNode ast = new JQuickSQLExecutor().execute(
    "SELECT dept, COUNT(*) FROM emp GROUP BY dept"
);
System.out.println(ast);

只需要 SQL 审计或语句结构分析时,可停留在 Parser/AST 层;需要执行已注册数据集时,再使用 Runtime 门面。

设计边界

jquick-sql 是轻量级 SQL 引擎,不是 JDBC 数据访问框架。异构数据源联邦查询需要先经接入组件形成数据集,再由 Query/Runtime 层统一计划和执行。这样可避免把驱动、连接管理和 SQL 计划耦合到同一模块。

常见问题

**业务服务应该直接依赖所有模块吗?**一般引入 runtime 即可。

**SQL 优化发生在哪里?**主要在 jquick-sql-plan。

**Worker 负责解析字符串吗?**Worker 接收片段计划并执行,解析入口在 Parser/Runtime 侧。

总结与拓展

模块化架构让团队能按"语法---计划---执行"分层定位问题,也能更安全地扩展 Java 跨库查询的数据接入链路。

Core Advantage

Clear separation between syntax analysis, planning, transport, and execution.

Applicable Scenarios

Custom query engines, SQL governance, embedded analytics, and distributed execution experiments.

相关推荐
starzy19902 小时前
深度拆解 Kafka 源码:Producer 构造器装配了哪些核心组件
分布式·kafka
智购科技自动售货机工厂2 小时前
省电40%的底层逻辑:冷热双温售货机基于SaaS的智能温控算法~YH
单片机·嵌入式硬件·百度·架构·emacs
l1t2 小时前
duckdb、clickhouse、datafusion、cedardb、tableauhyperapi 5种分析型数据库执行递归求数独SQL比较
数据库·sql·clickhouse
泡海椒2 小时前
JQuick-SQL Worker 生命周期:端口、启动与关闭规范
数据库·sql
Dawson Zhu2 小时前
【AI Infra小白入门④】AI Infra学习路线图:从入门到精通的完整指南(附核心思维方法)
人工智能·语言模型·架构·aigc·agi
程序员大阳3 小时前
副队长大数据教程(7)--Hadoop 集群角色配置逻辑详解
大数据·hadoop·分布式·集群·配置·角色·逻辑
2603_954708313 小时前
微能网协调控制箱突破传统微电网架构瓶颈
大数据·数据库·人工智能·架构·能源
蓝胖的四次元口袋3 小时前
RabbitMQ知识梳理(2)
分布式·rabbitmq
l1t3 小时前
一个clickhouse易错的语法问题
数据库·sql·clickhouse