1

我目前正在使用我的本地机器来操作数据,谷歌应用引擎来托管我的网络服务和谷歌云 sql 来处理数据库。但是,我需要先将我的数据上传到 gae,然后在 gae 上运行一个后端作业,以便稍后将所有数据上传到谷歌云 sql。两次上传数据是浪费时间。我想直接从我的本地机器导入/更新一些日期到谷歌云 sql。

目前,google cloud sql仅完全支持google app engine作为其客户端。

Google Cloud SQL 目前仅适用于 Google App Engine 应用程序。要开发 Google App Engine 应用程序,您需要安装 Python 或 Java 版本的 App Engine SDK:

但是,由于 google cloud sql 提供了一个jar db 驱动程序以允许从本地计算机访问命令行客户端/SQuirrel SQL 客户端。看起来我可以编写一些 java 代码来通过本地机器中的这个 jar 与云 sql 进行交互。或者我可以使用jpype 之类的工具通过 python 访问谷歌云 sql。

那可能吗?我应该从哪里开始?或者有没有其他方法可以在本地机器上使用 python 来访问谷歌云 sql?

https://developers.google.com/cloud-sql/docs/commandline

http://jpype.sourceforge.net/

4

3 回答 3

1

这个工具对我来说是新的!

如果有这个工具,为什么不使用它来将数据上传到 Cloud SQL?

在撰写本文时,没有官方支持从外部连接到 Google Cloud SQL。谷歌表示计划在不久的将来允许从任何地方访问。

总之,尝试使用此工具上传您的数据。根据数据的大小,使用 appengine 作为中间件可能会很昂贵。

于 2012-03-02T04:00:21.193 回答
1

我找到了一种通过 SDK 从 python 连接谷歌云 sql 的方法

def connect_sql(instance, database = None):
    from google.storage.speckle.python.tool import google_sql    
    database = google_sql.DatabaseConfig(instance, database)

    sql_cmd_config = google_sql.config.SQLCmdConfig(None)
    sql_cmd_config.add('__googlesql__', instance, None, None, database,
                    google_sql.GoogleSqlDriver.NAME, None, None)
    sql_cmd = google_sql.GoogleSqlCmd(sql_cmd_config)
    sql_cmd.set_database(instance)

    sql_cmd.preloop()
    return sql_cmd._SQLCmd__db
于 2012-03-22T00:19:13.453 回答
0

Cloud SQL 现在支持原生 MySQL 有线协议 [1],因此您可以使用标准连接器,例如 Connector/Python [2]

  1. https://developers.google.com/cloud-sql/docs/external#wireprotocol
  2. http://dev.mysql.com/downloads/connector/python/
于 2014-01-03T19:34:21.520 回答