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

目录
相关文章
|
SQL 运维 数据可视化
Apache Calcite
Apache Calcite
|
SQL NoSQL Java
JAVA使用Apcahe Calcite 解析sql
JAVA使用Apcahe Calcite 解析sql
4182 0
|
SQL 算法 Java
Apache Calcite入门
Apache Calcite入门
685 0
|
应用服务中间件 nginx
Nginx的启动、停止与重启
启动  启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.
13084 0
|
SQL 存储 缓存
Apache Calcite 框架 50 倍性能优化实践
某天临时被当成壮丁拉去参加一个非常牛逼的应用监控平台(后续会开源),然后大佬就给我派了一个任务,要将项目中的查询性能优化 50 倍以上,大佬对我如此地寄予厚望,我怎么能让大佬失望呢(虽然我内心瑟瑟发抖)?于是我就开始了这段性能优化之旅。
1723 0
Apache Calcite 框架 50 倍性能优化实践
|
消息中间件 存储 NoSQL
国产化中间件正在侵蚀开源中间件
国产化中间件正在侵蚀开源中间件
1890 7
|
存储 Java 大数据
Apache Arrow 新手上路
# 什么是Arrow [Apache Arrow](https://https://arrow.apache.org/)是一个开源的跨平台数据层开发框架,主要提供高效的、硬件加速的内存中数据计算能力。Apache Arrow的设计初衷是作为“新一代大数据系统的共享基础”,可以作为不同系统之间进行高效数据交换的媒介,同时提供快速、低延迟的数据访问接口。 Apache Arrow的主要目标是通过提
Apache Arrow 新手上路
|
SQL 存储 自然语言处理
看这篇就够了丨基于Calcite框架的SQL语法扩展探索
Calcite在大数据系统中有着广泛的运用, 比如Apache Flink, Apache Drill等都大量使用了Calcite,理解Calcite的原理可以说已经成为理解大数据系统中SQL访问层实现原理的必备条件之一。 本文就为大家详细介绍如何基于Calcite框架的SQL语法扩展探索使之更符合你的业务需求,以及扩展SQL在数栈产品的应用实践。对该技术感兴趣的同学点进文章阅读哦
1559 0
|
Java 编译器 iOS开发
8 种 Java 内存溢出之七 -Requested array size exceeds VM limit
8 种 Java 内存溢出之七 -Requested array size exceeds VM limit
|
SQL 数据库 流计算
在Flink CDC中处理分区表
在Flink CDC中处理分区表
416 1

热门文章

最新文章