对于很多熟悉关系型数据库,又想尝试Google App Engine的开发者来说,Datastore成了他们的梦魇,而且要把现有应用移植到 Google App Engine 的最大问题也是 Datastore。我尝试了建立Google Cloud SQL数据库,并往其中导入数据,操作不难,感觉还不错!
前言:还不了解Google Cloud SQL的,可以先读一下这篇文章;。
传统的应用大多使用关系型数据库作数据存储,但由于关系型数据库对做系统扩展时通常需要进行大量的修改,所以这类系统起初都会靠升级系统硬件来增加性能,但如果硬件升级愈高,性价比会愈低,所以对这种系统做扩展很困难。而 Google App Engine 的 Datastore 是 NoSQL Database,这种数据库扩展系统是比较简单的,比如可以买 10 台中级机器去组成一个高级的系统,如果不够可以再添加机器,理论上系统可以无限伸延。NoSQL Database 是没有 Join Table 之类的语法的,你只能靠应用程序层面来实现 Join Table,当然这会从某种程度上增加程序开发的难度。
对于很多熟悉关系型数据库,又想尝试Google App Engine的开发者来说,Datastore成了他们的梦魇,而且要把现有应用移植到 Google App Engine 的最大问题也是 Datastore,很多人因此却步。
但一切都会因为Google Cloud SQL的推出而有所好转,上次介绍了GOOGLE CLOUD SQL 主要特性和功能限制,并介绍了申请步骤,经过差不多三天的等待后,申请通过,之后我尝试了建立Google Cloud SQL数据库,并往其中导入数据,操作不难,感觉还不错!
1.Google Cloud SQL 的 Console 的主界面是这样的,你会发现左边的导航栏会比之前多两个链接:Google Cloud SQL 和 Google Cloud Storage
2.Google Cloud SQL实例容量选择有3种,分別是 1GB, 5GB 和 10GB,最大是10GB,Google Cloud SQL 主要特性和功能限制一文中已经说明
3.新增 mysql实例,目前只有 Google App Engine 可以访问,在下面的输入框填写需要使用该实例的 GAE 的 ID 就可以了
4.进入实例的控制面板,显示数据库正在创建中
5.注意到”DashBoard”Tab页旁边还有“Logs”和“SQL Prompt”两个Tab页,点击“SQL Prompt”就能看到SQL语句运行界面
6.新建一个数据库”mydb”
7.新建一个表”User”
8.可以使用数据库导入功能”Import”,但要导入的文件一定要存放在 Google Cloud Storage 上
9.导入后,执行SQL语句,查询数据库中的”customers”表
虽然Google Cloud SQL现在还不是非常完善,比如SQL执行界面一次只能执行一个SQL语句,即使加上分割号也不管用。但对于只有关系型数据库使用经验或者想方便移植现有应用到Google App Engine的程序员来说,使用 MySQL 来做地产实现的Google Cloud SQL是个不错的选择。