Apache Calcite advanced 01 Adapters 适配器
模式适配器
模式适配器允许 Calcite 读取特定类型的数据,并将数据呈现为模式中的表。
卡桑德拉适配器(calcite-cassandra)
CSV 适配器(example/csv)
Druid 适配器(calcite-druid)
Elasticsearch 适配器(calcite-elasticsearch)
文件适配器(calcite-file)
Geode 适配器(calci...
2024-01-10 13:01:55 |
Database
Apache Calcite 如何基于 calcite 自定义实现一个数据库-51-支持过滤的简单 csv 数据库
思路
直接参考 calcite csv 模块的代码,实现一个最简单版本的 csv database.
官方过滤的例子
官方的例子看了下应该只是支持 2 个
AND 和 EUQALS
CsvFilterableTable.java
private static boolean addFilter(RexNode filter, @Nullable Object[] filt...
2024-01-10 13:01:55 |
Database
Apache Calcite 如何基于 calcite 自定义实现一个数据库-51-简单版本 csv?
思路
直接参考 calcite csv 模块的代码,实现一个最简单版本的 csv database.
csv 官方的使用方法
我们先学习下,原来的官方 csv 如何使用的。
package com.github.houbb.calcite.learn.basic;
import org.apache.calcite.adapter.csv.CsvSchema;
import org...
2024-01-10 13:01:55 |
Database
Apache Calcite 如何基于 calcite 自定义实现一个数据库?
参考资料
今天教大家借助一款框架快速实现一个数据库,这个框架就是Calcite,下面会带大家通过两个例子快速教会大家怎么实现,一个是可以通过 SQL 语句的方式可以直接查询文件内容,第二个是模拟 Mysql 查询功能,以及最后告诉大家怎么实现 SQL 查询 Kafka 数据。
Calcite
Calcite 是一个用于优化异构数据源的查询处理的可插拔基础框架(他是一个框架),可以将...
2024-01-10 13:01:55 |
Database
Apache Calcite 源码分析-06-ES schema
概述
简单看一下 ES 的查询是如何实现的
ElasticsearchSchema
基本属性
public class ElasticsearchSchema extends AbstractSchema {
//es client
private final RestClient client;
private final ObjectMapper mapper;...
2024-01-10 13:01:55 |
Database
Apache Calcite 源码分析-05-csv table schema
测试例子
代码
import org.apache.calcite.adapter.csv.CsvSchema;
import org.apache.calcite.adapter.csv.CsvTable;
import org.apache.calcite.jdbc.CalciteConnection;
import org.apache.calcite.schema.SchemaP...
2024-01-10 13:01:55 |
Database
Apache Calcite 源码分析-04-CalciteConnection sql execute 执行过程
回顾
我们上一节看了 calcite 如何委托给 calcite Driver 获取 connection 的,可以看出如何得到 CalciteConnection
CalciteConnection 得到后我们可以执行语句:
Statement statement = calciteConnection.createStatement();
ResultSet resultSet =...
2024-01-10 13:01:55 |
Database
Apache Calcite 源码分析-03-calcite driver
回顾
我们上一节看了 calcite 的 DriverManager,本节重点看一下 calcite org.apache.calcite.jdbc.Driver
源码
基础属性
public class Driver extends UnregisteredDriver {
// 驱动前缀
public static final String CONNECT_STR...
2024-01-10 13:01:55 |
Database