推荐:Cloud Spanner Emulator - 您本地的云 Spanner 开发和测试工具
项目介绍
Cloud Spanner Emulator 是 Google 提供的一款本地运行的模拟器,旨在帮助开发者在本地环境中进行 Cloud Spanner 的应用程序开发与测试。它强调正确性,确保您的应用在模拟器上运行良好,也能无缝对接到真正的 Cloud Spanner 服务,无需任何代码更改。
项目技术分析
这款模拟器基于 ZetaSQL 参考实现构建,分为三个层级:REST 网关、gRPC 前端和数据库后端。核心代码以 C++ 编写,Go 语言处理 REST 包装。通过 gRPC 和 REST API 支持与 Cloud Spanner 相同的操作,包括 DDL、SQL 查询执行、DML 顺序号以及实例和数据库管理等。
应用场景
- 本地开发 - 在不依赖云环境的情况下快速迭代和调试代码。
- 单元测试 - 为 Cloud Spanner 应用编写可靠且独立的单元测试。
- 团队协作 - 非常适合集成到 CI/CD 流程中,确保代码质量。
- 教学与学习 - 对于理解 Cloud Spanner 数据库特性和操作提供了直观的学习平台。
项目特点
- 多方式启动 - 支持通过 devcontainers、gcloud 命令行、预建 Docker 映像、Linux 完全静态二进制文件和自定义 Docker 映像等多种方式进行启动。
- 跨架构支持 - 兼容 x86 和 arm64 架构,无论您是哪种平台,都能轻松运行。
- 广泛的功能支持 - 虽然存在一些限制(见下文),但大多数 Cloud Spanner 功能如 DDL、SQL 执行、事务处理等已被成功模拟。
- 轻量级 - 由于数据仅存储在内存中,因此启动和停止快速,资源占用少。
注意事项与局限性
虽然 Cloud Spanner Emulator 提供了许多功能,但也有需要注意的局限性,例如不支持 IAM API、备份 API,且只允许一个读写事务或一次模式更改,并且错误消息可能与 Cloud Spanner 服务不同。此外,数据不持久化,当模拟器退出时会丢失所有信息。
总之,Cloud Spanner Emulator 是一款强大的工具,能够显著提升对 Cloud Spanner 平台的应用程序开发和测试效率,特别适用于希望在本地环境中优化和验证代码的开发者。立即尝试并加入到 Cloud Spanner 的本地开发旅程吧!