今天一觉起来,发现
Google Cloud SQL发布了。
这一产品对Google App Engine来说意义重大,因为终于可以使用关系型数据库了,可以join了,可以无限制地使用事务了,对索引和字段有更多的控制了,可以运用自己早已掌握的关系数据库理论知识和经验了。
而和Datastore一样,Google Cloud SQL也无需开发者维护。
同时,它还是个web服务。尽管目前还只能通过Google App Engine和一些工具来访问,但未来可能对外提供REST接口。
值得一提的是,目前它还处于Limited Preview阶段,在2011年是完全免费的,并且在收费前会提前30天通知。
它的主要特性和能力包括:
- 在云端运行MySQL数据库。
- 10GB容量。
- 异步或同步复制(指在多个数据中心保持同步)。
- 与Google App Engine datastore的性能相当。
- 用mysqldump导入和导出数据库。(备份数据存放在Google Cloud Storage。)
- 兼容Java和Python。
- 命令行工具(需要JDK,版本最好是1.6)。(还有SQuirrel SQL Client这个第三方的图形客户端。)
- 在Google APIs Console运行SQL命令。
部分限制(未来可能会解除某些限制):
- 只有3种instance大小。(暂时没找到详细说明,只看到10GB这个限制。)
- 支持MySQL的所有特性(版本是5.1.59),但不包括文件和插件等命令。
- 不能导出指定的数据库,只能导出整个instance。
- 不与Django兼容。
- 一条语句和它的响应不能超过16MB。(针对外部请求,App Engine无限制。)
- 每秒最多5次查询。(针对外部请求,App Engine无限制。)
如果对这些特性感兴趣,且不在乎这些限制的话,就可以去申请了。
目前它只对有限的用户开放,可以去
Google APIs Console找到SQL Service,填写注册表单,并等待Google的审核。
申请通过后就可以在Google APIs Console创建instance了。
名称只能包含小写字母和数字,可以设置域名,并隶属于一个项目。
这里还需要授权Google App Engine应用使用,看上去一个instance可以被多个应用访问。
目前,Python SDK中提供了google.appengine.api.rdbms这个模块用于与Google Cloud SQL交互。
这个API遵循
DB-API 2.0,所以Python开发者应该很熟悉。
要在本地开发的话,还需要安装MySQL Community Server和
MySQLdb。
由于我的申请还没通过,因此后续的测试只能延后了。就以往的申请经验来说,中国开发者是不受信任的,因此优先级很低。