KubeCon 2018: SQL的回归

KubeCon 2018 上的分布式数据库与SQL支持

在KubeCon 2018上,多家分布式数据库供应商都强调了他们对SQL的支持。以下是主要供应商及其SQL支持策略的总结:

CouchBase

  • N1QL:CouchBase提供了N1QL(发音为“nickel”),这是对ANSI SQL的扩展,支持JSON结构。除了特定平台的自定义客户端外,还提供了JDBC和ODBC驱动。

YugaByte

  • YSQL:YugaByte自称是“事务性NoSQL”数据库,提供“行星级SQL”。它使用PostgreSQL的传输协议和其专有的SQL扩展YSQL,允许用户利用现有的PostgreSQL驱动。YugaByte选择PostgreSQL作为其SQL标准,主要是因为其开放性、成熟性和功能完整性。

CockroachDB

  • PostgreSQL兼容性:CockroachDB实现了PostgreSQL的传输协议和SQL方言。选择PostgreSQL的原因是其开源许可和良好的文档支持。为了确保最大兼容性,CockroachDB甚至使用了PostgreSQL的语法解析器,并在必要时进行扩展。

MongoDB

  • ODBC驱动:MongoDB通过新的ODBC驱动重新推出了其SQL支持,这是一个商业扩展,旨在允许将MongoDB作为Tableau、Excel、MicroStrategy、Microsoft Power BI和Qlik等BI工具的数据源。

SQL需求的驱动因素

简化采用

  • 代码迁移:将现有关系数据库迁移到云数据库时,如果代码几乎不需要更改,项目更容易获得批准。

商业智能工具

  • 跨数据库支持:尽管SQL方言存在差异,但所有数据库都使用SQL而不是完全专有的查询语言时,构建支持多个数据库的BI工具要容易得多。

培训

  • 标准化培训:开发人员和非技术人员通常接受标准SQL的培训,许多大学提供相关课程。这使得在企业系统中使用SQL比学习每个数据库的独特查询语言更具优势。

ANSI SQL与JSON

SQL 2016标准

  • JSON支持:ANSI SQL在SQL 2016标准中定义了JSON操作,但支持情况因供应商而异。Markus Winand在去年的报告中详细介绍了主要关系数据库供应商对JSON的支持情况。

部分更新缺失

  • 未来需求:SQL 2016标准中缺少对JSON文档部分更新的支持(如MySQL、PostgreSQL和SQLite中的json_set或SQL Server中的json_modify)。未来的版本需要解决这一问题,以实现各种基于JSON的分布式数据库供应商之间的互操作性。
阅读 24
0 条评论