1、这是项目的第一天,勉强按照网上的几个示例建立了一个可运行的apache calcite的adapter的例子工程;

=========================================================

2、主要收获----主流程

获取model文件

这是一个json的定义

里面最重要的是指定一个工厂类

然后使用DriverManger来启动工厂类

启动之后就是标准的sql了,calcite 应该是在底层用了一个叫linq4j的库,当然这个库其实本质上很早就不维护了

calcite直接将该库引入到工程内部,持续更新

=========================================================

3、adapter内部

等于是用model去指定数据库(SchemaFactory),然后由工厂类,去生成新的具体的HttpSchema

然后HttpScheme实际上就是简单的装配出来了一个map

里面包含了所有的表明和具体的HttpTable对象

最后就是HttpTable对象

一个是实际的数据生成方法scan,扫表

另外一个方法定义了元数据

可枚举类里主要实现的就是三个方法

一个是获取数据的pullRecords方法

一个是枚举类的当前对象方法

和一个moveNext()

总的来说其实还是比较清晰的