codefollower / HanSQL

面向单机与分布式 OLTP/OLAP 场景的可暂停的渐进式 SQL 引擎 (只用于研究)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HanSQL

面向单机与分布式 OLTP/OLAP 场景的可暂停的渐进式 SQL 引擎 (只用于研究)

改编自 Apache CalciteApache Drill

开发环境

  • JDK 1.8+
  • Maven 3.3+

需要先执行 mvn eclipse:eclipse,否则项目里用到的一些 java 源文件会找不到,这些 java 源文件是通过模板生成的。

在 IDE 中运行

代码导入 IDE 后,直接运行 HanSQLEngineStart

然后执行 JdbcTest 通过标准 JDBC API 访问数据库。

打包后运行

打包

先执行以下命令打包:

mvn package assembly:assembly -Dmaven.test.skip=true

生成的文件放在 target\hansql-5.0.0-SNAPSHOT 目录

运行

打开两个命令行窗口,都切换到 target\hansql-5.0.0-SNAPSHOT\bin 目录

在第一个窗口中输入 lealone 启动数据库

在第二个窗口中输入 sqlshell -url jdbc:lealone:tcp://localhost:9210/lealone -user root 打开一个 SQL Shell 窗口

输入以下命令创建表、新增记录、查询记录

CREATE TABLE IF NOT EXISTS my_table(name varchar(20) primary key, f2 int);

INSERT INTO my_table(name, f2) VALUES('a', 123);

用普通的 OLTP SQL 引擎执行

SELECT count(*) FROM my_table WHERE name>='a';

加 olap 前缀用 HanSQL 这个 OLAP SQL 引擎执行

SELECT count(*) FROM olap.my_table WHERE name>='a';

模块依赖关系


test --> engine --> function --> executor --> vector --> common
                                   |                        ↑
                                   |                        |
                                   |--------------------> logical --> optimizer

About

面向单机与分布式 OLTP/OLAP 场景的可暂停的渐进式 SQL 引擎 (只用于研究)

License:Apache License 2.0


Languages

Language:Java 99.7%Language:FreeMarker 0.1%Language:ANTLR 0.1%Language:Batchfile 0.0%Language:Shell 0.0%