Cloud Spanner是否有类似Java的C++版ORM?C++如何操作Spanner?
Cloud Spanner C++ 生态ORM使用相关解答
现有C++版Spanner ORM现状
- 目前无论官方还是开源社区,都没有成熟度可对标Java生态中Spring Data Spanner的专用C++ ORM框架,稳定可用的通用开源C++ Spanner ORM工具基本处于空白状态。
C++ Spanner开发者的常规交互方式
目前行业内用C++开发Spanner相关业务的从业者,主流采用两种交互方式:
- 直接编写原生SQL配合官方客户端使用:谷歌官方维护的
google-cloud-cpp库已经封装了完整的Spanner交互能力,包括参数绑定、事务管理、读写路由、特殊特性适配等生产级能力,绝大多数场景下开发者会直接基于该库编写原生SQL完成数据操作,这种方式性能损耗最低,也能完整支持Spanner的所有原生特性(比如交错表、分区查询、变更流等)。 - 自研业务向轻量封装:部分有大量重复CRUD需求的团队,会针对内部业务场景自研薄封装层,实现简单的对象与Spanner行数据的映射、常用CRUD语句的自动生成,这类封装仅适配内部业务逻辑,通常不会作为通用ORM对外开源。
注意事项
不建议直接使用适配传统关系型数据库的通用C++ ORM(如ODB、sqlpp11等)对接Spanner,这类框架对Spanner的分布式架构、特殊SQL语法、事务模型兼容性很差,极易出现性能问题或功能异常。
内容的提问来源于stack exchange,提问作者user2637692
相关产品推荐
相关产品推荐

