Yugabyte的YCQL和YSQL之间的区别

时间:2019-12-26 07:22:13

标签: yugabyte-db

在了解YSQL与YCQL之间的真正区别时,我可以得到一些帮助吗?根据文档,我了解到YUGABYTE的基础存储的当前实现是DOCS DB,并使用RAFT进行复制。

基于此,我可以假定YSQL vs YCQL的唯一区别是我们有触发器,存储的proc?和SQL功能在YSQL中而不在YCQL中?

1 个答案:

答案 0 :(得分:0)

很好的问题。计划是随着时间的流逝,YSQL将具有YCQL中的大多数功能,但是今天情况并非如此。这是因为要实现奇偶校验,YSQL尚需完成大量工作,其中一些工作正在进行中。

YSQL功能

YSQL重复使用PostgreSQL的上半部分和一个水平扩展的下半部分,称为DocDB。因此,YSQL将支持PostgreSQL的所有功能-包括存储过程,触发器,公用表表达式,扩展名和外部数据包装器(最后一个功能尚未完成)。

YCQL功能不在YSQL中

这是YSQL中没有的YCQL功能列表。

  • 集群感知:客户端驱动程序是集群感知,这意味着,只要有一个联系点,客户端就可以发现集群的所有节点。这些客户端驱动程序还会收到节点添加/删除的通知,因此应用程序不需要负载平衡器即可使用分布式群集。作为jdbc-yugabytedb项目的一部分,正在将这项功能整合到YSQL中的工作正在进行。

  • 拓扑感知:客户端驱动程序也具有拓扑感知,这意味着它们会被告知部署了群集各个节点的区域/区域。 。他们可以执行诸如从最近的区域/数据中心读取等操作。

  • 自动数据到期::YCQL使用TTL功能支持数据自动到期-您可以为表或行级别的数据设置保留策略,并从中自动清除较旧的数据数据库。

  • 集合数据类型: YCQL支持集合数据类型,例如集合,地图,列表。请注意,虽然YCQL和YSQL都支持JSONB,但是可以使用JSONB对其进行建模。

  • Cassandra API兼容 YCQL与Cassandra API兼容,因此支持Cassandra生态系统项目。示例包括Spark和Kafka连接器,JanusGraph和KairosDB支持等。请注意,尽管这些生态系统集成可以在YSQL的基础上构建,但今天不存在,这是优先事项。