使用 Google Cloud SQL

Google 最近宣布 我们希望尝试他们下一代基于 Cloud SQL 的托管 MySQL 服务,并创建一个基于云的 SQL 数据库,以便将其用作移动应用程序的后端,或者甚至用于我们桌面应用程序的高级数据分析。

根据谷歌的说法,第二代Cloud SQL的主要目标是:性能更好 表演可扩展性 每美元的价格。 看起来他们在这方面取得了成功:第二代 Cloud SQL 的速度是第一代的七倍以上。 并且,它可以扩展到 10TB 的数据存储、15,000 次 IOPS 读写速度,以及每个实例配备 104GB 的内存,远远超过第一代产品。 因此,它看起来是移动应用程序的理想、可扩展的云数据库后端解决方案。

If you follow the instructions on the the [Google blog post](http://googlecloudplatform.blogspot.com/2015/12/the-next-generation-of-managed-MySQL-offerings-on-Cloud-SQL.html), you will first have to create a trial account for Google Cloud. Then, once you are logged into the Google Developer Console, click on the top-left menu button and select SQL under the storage section. This will enable you to create a new second generation Cloud SQL instance:

强烈建议您更改您的 root 密码,并且仅允许来自授权网络的访问您的云实例。这些网络应该用于托管您的开发机器,或者用于您正在构建的移动应用程序的后端服务器。例如,在未来的博文中,我们将探讨如何基于此数据库构建移动应用程序,而为我们的移动应用程序提供所有服务器功能和工作流程的 MobileTogether 后端服务器 需要能够访问此 Cloud SQL 实例。

为了在您的开发机器上使用 Cloud SQL 实例,您需要 下载适用于您机器的 MySQL 工具,这将使您能够使用 mysql 命令行工具。此外,为了在您计算机上的其他应用程序中使用 Cloud SQL 数据库,您需要下载相应的 MySQL 连接器。 在这篇博文中,我们将使用 Altova DatabaseSpy 来访问 SQL 实例,上传一些数据,然后进行一些分析,因此您需要 下载适用于 Windows 的 MySQL Connector/ODBC。 基本上,DatabaseSpy 类似于 Toad,但它允许您同时连接到多个不同的数据库实例,这些实例位于不同的数据库服务器上。 这样,您可以在一个工作空间中同时保持一个连接到 Cloud SQL,一个连接到本地 SQL Server,以及第三个连接到 Oracle 数据库。 非常方便。

需要注意的是,请务必下载正确的 Connector/ODBC 驱动程序。如果您使用的是 DatabaseSpy 的 64 位版本,那么您也需要 MySQL Connector/ODBC 驱动程序的 64 位版本。或者,更好的方法是,您可以同时下载 Connector/ODBC 的 32 位和 64 位版本,并将它们都安装上。这样,您就可以在您的计算机上,从 32 位和 64 位软件中都使用 Cloud SQL。

为了在我们的 Cloud SQL 实例中填充一些有用的数据,以便进行实验和进一步分析,我们下载了以下优秀的数据集: 拉曼棒球数据库, 它以压缩的 MySQL 数据库备份文件形式提供,非常方便。下载到我们的电脑后,我们得到了一份完整的 SQL 数据库表结构描述,以及所有的数据,所有内容都包含在一个 SQL 文件中,因此可以轻松地上传到我们的 Cloud SQL 实例。

第一步是 在您的 Cloud SQL 中创建一个新的数据库 例如,您可以通过命令行工具 mysql、Google 开发者控制台或 cURL 来执行此操作。有关更多详细信息,请参阅本段开头提供的链接。我们将简单地将此数据库命名为 "lahman"。

现在,我们可以通过DatabaseSpy连接到这个数据库。选择“连接到数据库”命令,然后按照连接向导的步骤进行操作。首先,我们选择MySQL作为数据库类型:

接下来,我们将确认之前下载的 MySQL Connector/ODBC 驱动程序是否已正确安装并可用

最后,但同样重要,我们需要指定我们的 Cloud SQL 实例的 IP 地址、用户名和密码,然后点击“测试”按钮以验证连接。如果连接成功,我们就可以创建一个数据源,为其指定一个名称,并指定我们之前创建的 "lahman" 数据库

现在,我们已经准备好将所有数据导入到我们新数据库中的表格中。为此,我们只需打开之前下载和解压的 Lahman Baseball 数据库的 SQL 导出文件,在 DatabaseSpy 中它会显示如下:

正如您所看到的,该数据库的 SQL 导出文件包含了所有必要的命令,可以用来在我们的新 Cloud SQL 实例上重新创建所有表。现在,我们只需要点击“执行”按钮,然后耐心等待。根据您的网络连接速度,这个过程可能需要一些时间,因为您现在正在创建 24 个表,这些表包含了从 1871 年到 2014 年的详细棒球统计数据,其中一些表包含超过 16 万行。在我这边,完成这个过程大约需要 8 分钟。

现在,您可以在DatabaseSpy的在线数据库浏览器中点击“刷新”按钮,然后浏览所有表及其包含的数据,以及Lahman数据库的结构。 您可以使用这个数据库来计算有趣的历史数据,进行统计分析,并应用其他常用于棒球数据分析(Sabermetrics)的工具,从而更好地了解球员的水平。

举例来说,我们将探讨 大卫·奥蒂兹该分析将计算球员整个职业生涯中,每次上场击出的本垒打(HR)的百分比,并将其作为年龄的函数进行绘制。 您可以在“打击”表格中找到球员的每次上场表现,以及在“球员信息”表格中找到他的姓名、出生日期等信息。 通过SQL将这两个表格连接起来,并选择大卫·奥蒂兹的数据非常简单。 之后,我们可以简单地计算他的职业生涯本垒打率,即本垒打数/上场次数,并将该数值与他在特定年份的年龄进行对比,从而绘制出他的职业生涯本垒打趋势图

SELECT yearID-birthYear AS Age, HR/AB AS CareerHRTrajectory FROM Batting, `Master` 
WHERE Batting.playerID = `Master`.playerID AND nameLast='Ortiz' AND nameFirst='David'
ORDER BY Age ASC

一旦您点击“执行”按钮,此查询将发送到 Cloud SQL 实例,并且结果数据几乎可以立即以表格形式返回。然后,您可以在结果表格视图中点击“图表”按钮,以图形化地展示数据,并绘制该员工的职业发展轨迹与年龄之间的关系

正如您所看到的,使用 Altova DatabaseSpy,或者其他 Altova 开发工具,包括 XMLSpy、MapForce、MobileTogether、StyleVision 和 UModel,连接并使用新的 Google Cloud SQL 实例非常简单。此外,您还可以轻松地利用 MapForce 服务器上的 Cloud SQL 实例,用于数据集成和转换项目。

在未来的博文中,我们将从一个移动应用程序连接到这个 Cloud SQL 实例,并探讨如何轻松地在 Lahman 棒球数据库之上构建一个便捷的移动应用程序前端。