据我所知,yugabyte将数据存储在称为DocDB的东西中,它在此之上提供YSQL API和YCQL API。
因此,如果我没记错,YSQL和YCQL是否彼此兼容?
例如:我可以使用YSQL创建表并使用YCQL对其进行查询吗?
如果不是,那么YSQL和YCQL之间会有性能差异吗?我的意思是,我们应该在项目中选择YSQL还是YCQL吗?
答案 0 :(得分:3)
感谢您提出的问题-何塞提到的是正确的(截至目前):
YugabyteDB API相互隔离并且彼此独立。这意味着一个API不能查询由一个API插入或管理的数据。此外,没有通用的方法可以跨API访问数据(Presto之类的外部框架可以帮助解决简单情况)。
随着时间的流逝,我们应该能够允许使用外部数据包装器(FDW)从YSQL(完全与PostgreSQL兼容)从YSQL“访问” YCQL表作为外部表。请注意,尚未完成此工作,但是在当前体系结构中完全有可能做到。
性能差异
是的,正如Jose指出的那样,在性能上存在差异,但这也是目前的状况。由于各种原因,YCQL在使用YSQL时表现较高,我们正在迅速缩小差距。随着时间的推移,这是我们打算写的更多内容。
短期内,我将建议以下内容:
如果您有用例,我们很乐意帮助您做出更详细的分析。也请考虑加入社区闲散渠道以获取实时支持。
答案 1 :(得分:1)
YugabyteDB API相互隔离并且彼此独立。这意味着一个API不能查询由一个API插入或管理的数据。此外,没有通用的方法可以跨API访问数据(Presto之类的外部框架可以帮助解决简单情况)。
最终的影响是,应用程序开发人员必须在进行详细的数据库架构/查询设计和实现之前首先选择一个API。 See the docs
我不是Yugabyte专家,但是根据docs:是的,YSQL和YCQL之间存在性能差异。请参见幻灯片enter link description here上的幻灯片18