KarelDB 开源关系数据库开源项目

我要开发同款
匿名用户2019年10月10日
116阅读

技术信息

开源地址
https://github.com/rayokota/kareldb
授权协议
Apache-2.0

作品详情

KarelDB是一款功能齐全的关系数据库,它几乎完全基于开源组件构建,包括用于SQL引擎的ApacheCalcite以及用于事务和控制功能的ApacheOmid,并由应用广泛的ApacheKafka流处理软件提供支持。

获取方法Mave<depedecy><groupId>io.kareldb</groupId><artifactId>kareldb-core</artifactId><versio>0.1.6</versio></depedecy>使用方法服务器模式(ServerMode)

如需运行 KarelDB,先下载一份 release 版本进行解压,然后修改cofig/kareldb.properties以指向现有的Kafkabroker,接着运行以下命令:

$bi/kareldb-startcofig/kareldb.properties

在单独的终端上,输入以下命令来启动sqllie,这是用于访问JDBC数据库的命令行程序。

$bi/sqlliesqllieversio1.8.0sqllie>!coectjdbc:avatica:remote:url=https://localhost:8765admiadmisqllie>createtablebooks(idit,amevarchar,authorvarchar);Norowsaffected(0.114secods)sqllie>isertitobooksvalues(1,'TheTrial','FrazKafka');1rowaffected(0.576secods)sqllie>select*frombooks;+----+-----------+-------------+|ID|NAME|AUTHOR|+----+-----------+-------------+|1|TheTrial|FrazKafka|+----+-----------+-------------+1rowselected(0.133secods)

要从远程应用程序访问KarelDB服务器,请使用AvaticaJDBC客户端。可以在此处找到AvaticaJDBC客户端列表。

嵌入模式(EmbeddedMode)

KarelDB也可以在嵌入模式中使用。例子如下:

Propertiesproperties=ewProperties();properties.put("schemaFactory","io.kareldb.schema.SchemaFactory);properties.put("parserFactory","org.apache.calcite.sql.parser.parserextesio.ExtesioSqlParserImpl#FACTORY");properties.put("schema.kid","io.kareldb.kafka.KafkaSchema");properties.put("schema.kafkacache.bootstrap.servers",bootstrapServers);properties.put("schema.rocksdb.root.dir","/tmp");try(Coectioco=DriverMaager.getCoectio("jdbc:kareldb:",properties);Statemets=co.createStatemet()){s.execute("createtablebooks(idit,amevarchar,authorvarchar)");s.executeUpdate("isertitobooksvalues(1,'TheTrial','FrazKafka')");ResultSetrs=s.executeQuery("select*frombooks");...}支持ANSISQL

KarelDB可通过使用 Calcite 支持ANSISQL。

当创建表时,在各列之后指定主键约束,如下所示:

CREATETABLEcustomers(idit,amevarchar,costraitpkprimarykey(id));

如果未指定主键约束,则表中的第一列将被指定为主键。

KarelDB通过添加对ALTERTABLE命令的支持来扩展Calcite的SQL语法。

alterTableStatemet:ALTERTABLEtableNamecolumActio[,columActio]*columActio:(ADDtableElemet)|(DROPcolumName)

KarelDB支持以下SQL类型:

booleaitegerbigitrealdoublevarbiaryvarchardecimaldatetimetimestamp

功能介绍

KarelDB 是一款功能齐全的关系数据库,它几乎完全基于开源组件构建,包括用于 SQL 引擎的 Apache Calcite 以及用于事务和控制功能的 Apache Omid,并由应用广泛的 ...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论