KarelDB 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
KarelDB 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
KarelDB 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 Java 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 数据库相关
开源组织
地区 不详
投 递 者
适用人群 未知
收录时间 2019-10-10

软件简介

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

获取方法

Maven

<dependency>
    <groupId>io.kareldb</groupId>
    <artifactId>kareldb-core</artifactId>
    <version>0.1.6</version>
</dependency>

使用方法

服务器模式(Server Mode)

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

$ bin/kareldb-start config/kareldb.properties

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

$ bin/sqlline
sqlline version 1.8.0

sqlline> !connect jdbc:avatica:remote:url=http://localhost:8765 admin admin

sqlline> create table books (id int, name varchar, author varchar);
No rows affected (0.114 seconds)

sqlline> insert into books values (1, 'The Trial', 'Franz Kafka');
1 row affected (0.576 seconds)

sqlline> select * from books;
+----+-----------+-------------+
| ID |   NAME    |   AUTHOR    |
+----+-----------+-------------+
| 1  | The Trial | Franz Kafka |
+----+-----------+-------------+
1 row selected (0.133 seconds)

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

嵌入模式(Embedded Mode)

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

Properties properties = new Properties();
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 (Connection conn = DriverManager.getConnection("jdbc:kareldb:", properties);
     Statement s = conn.createStatement()) {
        s.execute("create table books (id int, name varchar, author varchar)");
        s.executeUpdate("insert into books values(1, 'The Trial', 'Franz Kafka')");
        ResultSet rs = s.executeQuery("select * from books");
        ...
}

支持 ANSI SQL

KarelDB 可通过使用 Calcite 支持 ANSI SQL。

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

CREATE TABLE customers 
    (id int, name varchar, constraint pk primary key (id));

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

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

alterTableStatement:
    ALTER TABLE tableName columnAction [ , columnAction ]*
    
columnAction:
    ( ADD tableElement ) | ( DROP columnName )

KarelDB 支持以下 SQL 类型:

  • boolean
  • integer
  • bigint
  • real
  • double
  • varbinary
  • varchar
  • decimal
  • date
  • time
  • timestamp
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(3) 发布并加入讨论🔥
发表了资讯
2019/10/10 08:17

Kafka “孕育”了一款开源关系数据库:KarelDB

Java 开发者对 Apache Kafka 应该不会感到陌生,这是一个分布式的发布订阅消息系统,作为一个非常重要的开源项目,它已经被许多公司以及产品用作关键组件。Kafka 及其配套的 Key-Value 存储系统如今也越来越多地被用来为关系数据库提供持久性存储,大多数数据库也使用 Key-Value 存储系统作为基础。 本文将要介绍的这款数据库正是由 Apache Kafka 提供支持,它同样使用了来自 Kafka 配套的 Key-Value 存储系统。 近期面世的 Ka...

5
31
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
Apache Hadoop 信息泄露漏洞
信息暴露
Apache Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop 2.6.4之前的版本和2.7.2之前的2.7.x版本中HDFS的short-circuit读取功能存在信息泄露漏洞。本地攻击者可通过构建块访问令牌利用该漏洞获取文件的读取权限。
CVE-2016-5001 MPS-2017-9780
2022-08-08 19:20
Apache Hadoop 安全漏洞
信息暴露
Apache Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop中存在安全漏洞。攻击者可通过构建含有XML指令的配置文件利用该漏洞获取私有文件。以下版本受到影响:Apache Hadoop 0.23.x版本,2.7.5之前的2.x版本,2.8.3之前的2.8.x版本,3.0.0-alpha版本至3.0.0-beta1版本。
CVE-2017-15713 MPS-2018-0896
2022-08-08 19:20
Netty 环境问题漏洞
HTTP请求的解释不一致性(HTTP请求私运)
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 Netty 4.1.42.Final之前版本中存在安全漏洞。攻击者可利用该漏洞实施HTTP请求走私攻击。
CVE-2019-16869 MPS-2019-12064
2022-08-08 19:20
jackson-mapper-asl 代码问题漏洞
XXE
jackson-mapper-asl是一款基于Jackson JSON处理器构建的数据映射软件包。 jackson-mapper-asl 1.9.x版本中存在代码问题漏洞。远程攻击者可借助特制数据利用该漏洞获取敏感信息。
CVE-2019-10172 MPS-2019-15048
2022-08-08 19:20
Netty Snappy资源穷尽漏洞
拒绝服务
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 netty存在资源管理错误漏洞,该漏洞源于Snappy frame decoder函数不限制块长度,这可能会导致过度内存使用。
CVE-2021-37137 MPS-2021-28117
2022-08-08 19:20
org.apache.commons:commons-dbcp2 存在信息暴露漏洞
信息暴露
org.apache.commons:commons-dbcp2 是一个实现数据库连接池的软件。此软件包的受影响版本容易受到信息泄露的影响。如果使用设置了 jmxName 创建 BasicDataSource,则密码属性将通过 jmx 公开,并且对连接到 jmx 端口的任何人都是可见的。
MPS-2022-12024
2022-08-08 19:20
Netty 安全漏洞
Netty 是一个开源的、异步事件驱动的网络应用框架。版本 4.1.77.Final 之前的包 io.netty:netty-codec-http 包含对 CVE-2021-21290 的不充分修复。当使用 Netty 的多部分解码器时,如果启用了在磁盘上临时存储上传,则可以通过本地系统临时目录发生本地信息泄露。这只会影响在 Java 版本 6 及更低版本上运行的应用程序。此外,此漏洞会影响在类 Unix 系统以及非常旧版本的 Mac OSX 和 Windows 上运行的代码,因为它们都在所有用户之间共享系统临时目录。版本 4.1.77.Final 包含针对此漏洞的补丁。作为一种解决方法,在启动 JVM 时指定自己的 `java.io.tmpdir` 或使用 DefaultHttpDataFactory.setBaseDir(...) 将目录设置为只能由当前用户读取的目录。
CVE-2022-24823 MPS-2022-3790
2022-08-08 19:20
Apache Hadoop权限提升漏洞
权限、特权和访问控制
Apache Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop 2.2.0至2.7.3版本中存在权限提升漏洞,攻击者可利用漏洞升级为yarn 用户的用户,并以root用户身份运行任意命令。
CVE-2016-6811 MPS-2017-3962
2022-08-08 19:20
Apache Hadoop 跨站脚本漏洞
XSS
Apache Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop 2.7.0之前的版本中的HDFS Web UI中存在跨站脚本漏洞。远程攻击者可利用该漏洞注入任意的Web脚本或HTML。
CVE-2017-3161 MPS-2017-4858
2022-08-08 19:20
io.netty:netty-handler 存在证书验证不恰当漏洞
证书验证不恰当
io.netty:netty-handler 是一个提供异步事件驱动的网络应用程序框架和工具的库,用于快速开发可维护的高性能和高可扩展性协议服务器和客户端。换句话说,Netty 是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程,例如 TCP 和 UDP 套接字服务器。此软件包的受影响版本容易受到不正确的证书验证的影响。在 Netty 4.1.x 中默认禁用证书主机名验证,这使得它可能容易受到中间人攻击。
MPS-2022-12067
2022-08-08 19:20
Apache Hadoop 信息泄露漏洞
密码学问题
Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop 2.0.0-alpha版本中的DataNodes中存在漏洞,该漏洞源于Kerberos启动时未校验客户的BlockTokens,从NodeName中DataNode已检查出两次相同的BlockPool。远程攻击者可利用该漏洞读取任意块及写入只有读取访问的块,也可能存在其他未明影响。
CVE-2012-3376 MPS-2012-2233
2022-08-08 19:20
Apache HttpComponents Incomplete Fix SSL证书验证安全绕过漏洞
输入验证不恰当
HttpComponents简称HttpCore, 是一组底层Http传输协议组件,支持两种I/O模型,阻塞I/O模型和和非阻塞I/O模型。 Apache HttpComponents不安全修复SSL证书验证存在安全绕过漏洞,允许攻击者进行中间人攻击或冒充受信任的服务器发起进一步攻击
CVE-2012-6153 MPS-2014-4288
2022-08-08 19:20
Google protobuf 安全漏洞
不正确的行为次序
Google protobuf是美国谷歌(Google)公司的一种数据交换格式。 protobuf-java 存在安全漏洞,该漏洞允许一个小的恶意负载可以通过创建大量导致频繁、重复暂停的短期对象来占用解析器几分钟。
CVE-2021-22569 MPS-2021-19066
2022-08-08 19:20
org.apache.hadoop:hadoop-hdfs 存在XXE漏洞
XXE
org.apache.hadoop:hadoop-hdfs 是一个框架,它允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。由于通过 OfflineEditsXmlLoader.java 工具对 XML 文件的不安全解析,此包的受影响版本容易受到 XML 外部实体注入 (XXE) 的攻击。
MPS-2022-12474
2022-08-08 19:20
Apache Log4j 代码问题漏洞
反序列化
当攻击者对 Log4j 配置具有写访问权限或配置引用攻击者有权访问的 LDAP 服务时,所有 Log4j 1.x 版本中的 JMSSink 都容易受到不受信任数据的反序列化。攻击者可以提供一个 TopicConnectionFactoryBindingName 配置,使 JMSSink 执行 JNDI 请求,从而以类似于 CVE-2021-4104 的方式执行远程代码。请注意,此问题仅在专门配置为使用 JMSSink(不是默认设置)时影响 Log4j 1.x。 Apache Log4j 1.2 已于 2015 年 8 月结束生命周期。用户应升级到 Log4j 2,因为它解决了以前版本中的许多其他问题。
CVE-2022-23302 MPS-2022-1446
2022-08-08 19:20
Netty 存在HTTP请求走私漏洞
HTTP请求的解释不一致性(HTTP请求私运)
Netty是Netty社区的一款非阻塞I/O客户端-服务器框架,它主要用于开发Java网络应用程序,如协议服务器和客户端等。 Netty 4.1.43.Final版本中存在HTTP请求走私。因为它不正确地处理了传输编码空白(例如[space] Transfer-Encoding:Chunked行)和后来的Content-Length标头。由于CVE-2019-16869的修复不完整而存在此问题。
CVE-2020-7238 MPS-2020-1320
2022-08-08 19:20
Netty Bzip2Decoder资源穷尽漏洞
拒绝服务
Netty 是一个异步事件驱动的网络应用程序框架。 Netty的Bzip2 decompression decoder功能不允许对解压输出数据设置大小限制造成安全漏洞。攻击者可利用该漏洞引发DoS攻击
CVE-2021-37136 MPS-2021-28116
2022-08-08 19:20
Eclipse Jetty 输入验证不恰当漏洞
输入验证不恰当
Eclipse Jetty是Eclipse基金会的一个开源的、基于Java的Web服务器和Java Servlet容器。 Eclipse Jetty 存在安全漏洞,该漏洞源于无效的 URI 解析可能会产生无效的 HttpURI.authority。攻击者利用此漏洞会导致Proxy scenario失败。
CVE-2022-2047 MPS-2022-18060
2022-08-08 19:20
Apache Commons HttpClient Amazon FPS 输入验证错误漏洞
证书验证不恰当
HttpClient是Apache Jakarta Common下的子项目,用来提供高效的支持HTTP协议的客户端编程工具包。 Apache Commons HttpClient 3.x版本使用在Amazon Flexible Payments Service (FPS) merchant Java SDK以及其他产品中时存在漏洞,该漏洞源于在主题Common Name(CN)或X.509证书的subjectAltName字段中,程序没有对服务器主机名与域名的匹配进行校验。中间人攻击者利用该漏洞通过任意有效的证书欺骗SSL服务器。
CVE-2012-5783 MPS-2012-4618
2022-08-08 19:20
Apache Hadoop 输入验证错误漏洞
输入验证不恰当
Apache Hadoop是美国阿帕奇(Apache)软件基金会的一套开源的分布式系统基础架构,它能够对大量数据进行分布式处理,并具有高可靠性、高扩展性、高容错性等特点。 Apache Hadoop 2.7.0之前的版本中存在安全漏洞。攻击者可通过提交恶意的输入利用该漏洞绕过输入验证保护机制。
CVE-2017-3162 MPS-2017-4859
2022-08-08 19:20
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
3 评论
60 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部