YSQL和YCQL是否彼此兼容?

时间:2019-12-09 11:44:06

标签: yugabyte-db

据我所知,yugabyte将数据存储在称为DocDB的东西中,它在此之上提供YSQL API和YCQL API。

因此,如果我没记错,YSQL和YCQL是否彼此兼容?

例如:我可以使用YSQL创建表并使用YCQL对其进行查询吗?

如果不是,那么YSQL和YCQL之间会有性能差异吗?我的意思是,我们应该在项目中选择YSQL还是YCQL吗?

2 个答案:

答案 0 :(得分:3)

感谢您提出的问题-何塞提到的是正确的(截至目前):

  

YugabyteDB API相互隔离并且彼此独立。这意味着一个API不能查询由一个API插入或管理的数据。此外,没有通用的方法可以跨API访问数据(Presto之类的外部框架可以帮助解决简单情况)。

随着时间的流逝,我们应该能够允许使用外部数据包装器(FDW)从YSQL(完全与PostgreSQL兼容)从YSQL“访问” YCQL表作为外部表。请注意,尚未完成此工作,但是在当前体系结构中完全有可能做到。

性能差异

是的,正如Jose指出的那样,在性能上存在差异,但这也是目前的状况。由于各种原因,YCQL在使用YSQL时表现较高,我们正在迅速缩小差距。随着时间的推移,这是我们打算写的更多内容。

短期内,我将建议以下内容:

  • 如果您需要在应用程序中使用关系功能(例如外键)或查询灵活性(例如联接),则可以使用YSQL。再次,对于大多数用例,我们希望在接下来的3-6个月内使其接近YCQL。
  • 如果您不需要上面的内容,但是谈论的是大量数据(例如,超过10TB的数据),请考虑非常低的延迟(不到毫秒),并且需要使用TTL自动终止数据等功能功能-您应该使用YCQL。

如果您有用例,我们很乐意帮助您做出更详细的分析。也请考虑加入社区闲散渠道以获取实时支持。

答案 1 :(得分:1)

YugabyteDB API相互隔离并且彼此独立。这意味着一个API不能查询由一个API插入或管理的数据。此外,没有通用的方法可以跨API访问数据(Presto之类的外部框架可以帮助解决简单情况)。

最终的影响是,应用程序开发人员必须在进行详细的数据库架构/查询设计和实现之前首先选择一个API。 See the docs

我不是Yugabyte专家,但是根据docs:是的,YSQL和YCQL之间存在性能差异。请参见幻灯片enter link description here上的幻灯片18