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的分布式数据库供应商之间的互操作性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。