Apache Calcite advanced 03 streaming 流
介绍
流(Streams)是持续流动且永无止境的记录集合。
与表不同,它们通常不存储在磁盘上,而是通过网络流动,并在内存中短暂地保存。
流与表相辅相成,因为它们代表了企业当前和未来发生的事情,而表则代表了过去。将流存档到表中是非常常见的。
与表类似,您经常希望使用基于关系代数的高级语言查询流,根据模式进行验证,并针对可用资源和算法进行优化。
Calcite 的 SQL 是标准 SQ...
2024-01-10 13:01:55 |
Database
Apache Calcite advanced 02 Spatial 空间
空间 (Spatial)
Calcite 的目标是实现 OpenGIS SQL 版本 1.2.1 的简单要素实现规范,这是由空间数据库(如 PostGIS 和 H2GIS)实现的标准。
我们还计划为空间索引和其他形式的查询优化添加优化器支持。
介绍 (Introduction)
空间数据库是针对存储和查询代表几何空间中定义的对象的数据进行优化的数据库。
Calcite 对空间数据的...
2024-01-10 13:01:55 |
Database
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