2

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

所以如果我没记错的话,YSQL 和 YCQL 是否相互兼容?

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

如果不是,YSQL 和 YCQL 之间可能存在性能差异吗?我的意思是,我们应该关心在项目中选择 YSQL 还是 YCQL?

4

2 回答 2

4

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

YugabyteDB API 今天是相互隔离和独立的。这意味着一个 API 插入或管理的数据不能被另一个 API 查询。此外,没有通用的方法可以跨 API 访问数据(Presto 等外部框架可以帮助处理简单的情况)。

随着时间的推移,我们应该能够允许 YCQL 表作为使用外部数据包装器(FDW) 的外部表从 YSQL(完全兼容 PostgreSQL)“访问”。请注意,这方面的工作尚未开始,但在当前架构中完全可以做到。

性能差异

是的,正如 Jose 指出的那样,性能存在差异,但这也是目前的情况。由于各种原因,YCQL 目前比 YSQL 性能更高,我们正在迅速缩小差距。这是我们打算随着时间的推移写更多的东西。

在短期内,我会建议以下几点:

  • 如果您的应用程序需要关系特性(例如外键)或查询灵活性(例如连接),YSQL 是您的最佳选择。同样,对于大多数用例,我们希望在接下来的 3-6 个月内使其接近 YCQL。
  • 如果您不需要上述内容但正在谈论大量数据(例如超过 10TB 的数据),请关心非常低的延迟(亚毫秒)并且需要使用 TTL 功能自动数据到期等功能 - 您应该使用YCQL。

如果您有一个用例,我们很乐意通过更详细的分析帮助您做出决定。还请考虑加入社区 Slack 频道以获得实时支持。

于 2019-12-09T19:23:02.953 回答
1

YugabyteDB API 今天是相互隔离和独立的。这意味着一个 API 插入或管理的数据不能被另一个 API 查询。此外,没有通用的方法可以跨 API 访问数据(Presto 等外部框架可以帮助处理简单的情况)。

净影响是应用程序开发人员必须先选择 API,然后再进行详细的数据库模式/查询设计和实现。 查看文档

我不是 Yugabyte 专家,但根据文档:是的,YSQL 和 YCQL 之间存在性能差异。请参见此处输入链接描述的幻灯片 18

于 2019-12-09T13:33:36.500 回答