mysql查询异构数据源_Schema 一款简单支持异构数据源的SQL Driver

Schema项目实现了一种简单的方法,通过一套SQL即可访问多种数据源,支持跨数据源JOIN操作。当前支持的数据源包括File、MySQL、HBase和Hive等,并预留了后续扩展的空间。本项目利用了Calcite的Avatica Driver和CodeGen模块,能够针对不同数据源进行自适应,提升SQL执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Schema 一款简单支持异构数据源的SQL Driver

1. 简介

schema 项目是一个简单的union-sql工程, 即用一套SQL可以同时访问不同数据源的数据,做到跨数据源JOIN等复杂操作,目前只简单支持以下数据源

File(本地文件)

MySQL

HBase

Hive

....

像HBase、Hive等其它数据源待慢慢支持,欢迎感兴趣的小伙伴一起补充完善。

2. 主要技术点

本项目主要用到了Calcite 中avatica driver, 一个通用的JAVA jdbc Driver 框架,其主要特点在于可以自行适配不同的数据源, 比如文件、MySQL、Hbase 等不同数据源;

另一个技术点为Apache Calcite, 关于Apache Calcite 的作用及基本用法请参考我的简书

执行引擎是通过Calcite 内置的CodeGen模块动态生成代码并本地执行,关于这一块是一个大优化方向,比如说可以用一些分布式执行引擎如Flink 批、Spark引擎; 还可以进一步优化DAG 执行引擎,采用MPP架构方法,提高执行效率

3. 如何使用

3.1 File 数据源

首先进入file-shema的resource目录下, 其中有json和csv两个文件夹,表示支持json和csv两种文件格式,每个目录下有.csv(.json)和.schema文件分别表为数据文件及schema文件,具体内容就不一一阐述,请参考其文件内容

接着需要配置schema元数据,请参考file.json文件内容

然后可以运行FileSelect 进行测试

3.2 MySQL 数据源

首先需要一个可以访问的MySQL数据库, 接着在mysql-schema的resource下有一个mysql.json schema元数据文件, 配置正确的mysql数据库相关配置即可

接着可以直接运行MysqlSelect 即可

3.3 File 与MySQL结合

可以将File与MySQL数据源结合,做Join等关联操作,详情请参考test-schema中的FileAndMysqlScheamTest

4. 集成测试

你可以直接运行:

mvn verify

来起动集成测试,该继集成主要用来测试SQL执行结果的正确性。全部的测试类都在test-schema的test目录中,当然你也可以直接运行com.yuqi.schema.common.integrate

目录下的类文件来进行测试

5. TODO

目前本项目属于刚开发阶段,有很多不足之处:

代码规范

测试

功能

...

以上不足之处会在后期慢慢改善,欢迎感兴趣的小伙伴一起参与此项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值