Calcite源码阅读一

简介: Calcite子项目avatica源码阅读

一、avatica项目介绍
avatica作为calcite的子项目,提供JDBC、ODBC标准的数据库驱动,通过该项目,我们可以自由构建自研数据库的java驱动,或者通过该项目代理一些非JDBC、ODBC标准的数据库,而不需要改动上层的服务代码。avatica项目核心架构图如下(摘自官网)
avatica-architecture.png
二、avatica项目使用
利用avatica的代码,我们搭建一个mysql数据库的proxy server,并使用client代码测试该代理是否成功。
1.服务端代码:进入avatica项目的server module,修改该module下的Main.start(String[] args, int port, HandlerFactory handlerFactory)方法,直接生成自己的meta(我们这里使用项目自带的JdbcMeta),改动代码如下:

    Meta meta = new JdbcMeta("jdbc:mysql://xxx.com:3306/xx_db");
    Service service = new LocalService(meta);

代码改动之后可以直接启动该proxy server
2.客户端测试代码如下:

    Class.forName("org.apache.calcite.avatica.remote.Driver");
    Connection conn = DriverManager.getConnection("jdbc:avatica:remote:url=http://localhost:8765","username","password");
    Statement statement = conn.createStatement();
    ResultSet rs = statement.executeQuery("select count(*) from xxx_table");
    while(rs.next()){
      System.out.println(rs.getString(1));
    }
    rs.close();
    statement.close();
    conn.close();

直接本地启动即可看到测试结果
3.avatica其他connection使用方式和参数可以参考官网:https://calcite.apache.org/avatica/docs/client_reference.html

目录
相关文章
|
8月前
|
SQL Java 数据库连接
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
Apache Zeppelin系列教程第四篇——JDBCInterpreter原理分析
84 0
|
SQL 算法 Java
Apache Calcite入门
Apache Calcite入门
405 0
|
8月前
|
存储 SQL 关系型数据库
Apache Doris 聚合函数源码阅读与解析|源码解读系列
Apache Doris Active Contributor 隐形通过本文记录下对源码的理解,以方便新人快速上手源码开发。
Apache Doris 聚合函数源码阅读与解析|源码解读系列
|
8月前
|
Java 数据库连接 Apache
Apache Zeppelin系列教程第五篇——Interpreter原理分析
Apache Zeppelin系列教程第五篇——Interpreter原理分析
137 0
|
资源调度 前端开发 Java
深度剖析Dinky源码(上)
深度剖析Dinky源码
470 0
|
SQL 资源调度 前端开发
深度剖析Dinky源码(下)
深度剖析Dinky源码(下)
368 0
|
Java Apache 开发工具
Flink 源码阅读环境搭建
阅读优秀的源码是提升我们代码技能最重要的手段之一,工欲善其事必先利其器,所以,搭建好源码阅读环境是我们阅读的第一步。
|
SQL Web App开发 JSON
深度剖析Dinky源码
深度剖析Dinky源码
918 0
|
存储 分布式计算 Spark
【源码解读】|SparkContext源码解读(上)
【源码解读】|SparkContext源码解读
204 0
【源码解读】|SparkContext源码解读(上)
|
存储 JSON 缓存
【源码解读】|SparkContext源码解读(下)
【源码解读】|SparkContext源码解读

热门文章

最新文章