据我所知,yugabyte 将数据存储在称为 DocDB 的东西中,并在此之上提供 YSQL API 和 YCQL API。
所以如果我没记错的话,YSQL 和 YCQL 是否相互兼容?
例如:我可以使用 YSQL 创建一个表并使用 YCQL 对其进行查询吗?
如果不是,YSQL 和 YCQL 之间可能存在性能差异吗?我的意思是,我们应该关心在项目中选择 YSQL 还是 YCQL?
据我所知,yugabyte 将数据存储在称为 DocDB 的东西中,并在此之上提供 YSQL API 和 YCQL API。
所以如果我没记错的话,YSQL 和 YCQL 是否相互兼容?
例如:我可以使用 YSQL 创建一个表并使用 YCQL 对其进行查询吗?
如果不是,YSQL 和 YCQL 之间可能存在性能差异吗?我的意思是,我们应该关心在项目中选择 YSQL 还是 YCQL?
感谢您的问题-何塞提到的是正确的(截至目前):
YugabyteDB API 今天是相互隔离和独立的。这意味着一个 API 插入或管理的数据不能被另一个 API 查询。此外,没有通用的方法可以跨 API 访问数据(Presto 等外部框架可以帮助处理简单的情况)。
随着时间的推移,我们应该能够允许 YCQL 表作为使用外部数据包装器(FDW) 的外部表从 YSQL(完全兼容 PostgreSQL)“访问”。请注意,这方面的工作尚未开始,但在当前架构中完全可以做到。
性能差异
是的,正如 Jose 指出的那样,性能存在差异,但这也是目前的情况。由于各种原因,YCQL 目前比 YSQL 性能更高,我们正在迅速缩小差距。这是我们打算随着时间的推移写更多的东西。
在短期内,我会建议以下几点:
如果您有一个用例,我们很乐意通过更详细的分析帮助您做出决定。还请考虑加入社区 Slack 频道以获得实时支持。
YugabyteDB API 今天是相互隔离和独立的。这意味着一个 API 插入或管理的数据不能被另一个 API 查询。此外,没有通用的方法可以跨 API 访问数据(Presto 等外部框架可以帮助处理简单的情况)。
净影响是应用程序开发人员必须先选择 API,然后再进行详细的数据库模式/查询设计和实现。 查看文档
我不是 Yugabyte 专家,但根据文档:是的,YSQL 和 YCQL 之间存在性能差异。请参见此处输入链接描述的幻灯片 18