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

我要开发同款
匿名用户2019年10月10日
52阅读
开发技术Java
所属分类数据库相关
授权协议Apache-2.0

作品详情

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

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

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

$bin/kareldb-startconfig/kareldb.properties

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

$bin/sqllinesqllineversion1.8.0sqlline>!connectjdbc:avatica:remote:url=https://localhost:8765adminadminsqlline>createtablebooks(idint,namevarchar,authorvarchar);Norowsaffected(0.114seconds)sqlline>insertintobooksvalues(1,'TheTrial','FranzKafka');1rowaffected(0.576seconds)sqlline>select*frombooks;+----+-----------+-------------+|ID|NAME|AUTHOR|+----+-----------+-------------+|1|TheTrial|FranzKafka|+----+-----------+-------------+1rowselected(0.133seconds)

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

嵌入模式(EmbeddedMode)

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

Propertiesproperties=newProperties();properties.put("schemaFactory","io.kareldb.schema.SchemaFactory);properties.put("parserFactory","org.apache.calcite.sql.parser.parserextension.ExtensionSqlParserImpl#FACTORY");properties.put("schema.kind","io.kareldb.kafka.KafkaSchema");properties.put("schema.kafkacache.bootstrap.servers",bootstrapServers);properties.put("schema.rocksdb.root.dir","/tmp");try(Connectionconn=DriverManager.getConnection("jdbc:kareldb:",properties);Statements=conn.createStatement()){s.execute("createtablebooks(idint,namevarchar,authorvarchar)");s.executeUpdate("insertintobooksvalues(1,'TheTrial','FranzKafka')");ResultSetrs=s.executeQuery("select*frombooks");...}支持ANSISQL

KarelDB可通过使用 Calcite 支持ANSISQL。

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

CREATETABLEcustomers(idint,namevarchar,constraintpkprimarykey(id));

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

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

alterTableStatement:ALTERTABLEtableNamecolumnAction[,columnAction]*columnAction:(ADDtableElement)|(DROPcolumnName)

KarelDB支持以下SQL类型:

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

评论