从 SQLAlchemy 管理 Google Cloud Bigtable

Managing Google Cloud Bigtable from SQLAlchemy

SQL Alchemy 似乎可以连接到 Google Cloud SQL 上的 MySQL table 运行。然而,我花了时间寻找Google Cloud Bigtable的包装器,一个NoSQL数据库,并没有找到足够成熟的东西。

只是想知道如何从 SQL Alchemy 管理 Google Cloud Bigtable。

有一些 Python API 连接到大 Table 云: https://googlecloudplatform.github.io/google-cloud-python/stable/

The google-cloud library is pip install-able:
$ pip install google-cloud

Cloud Datastore
from google.cloud import datastore

client = datastore.Client()
key = client.key('Person')
entity = datastore.Entity(key=key)
entity['name'] = 'Your name'
entity['age'] = 25
client.put(entity)

不过这个还是没有通过SQLAlchemy集成,这个不清楚Schema是否可以轻松集成。

这是不可能的,因为SQLAlchemy只能管理基于SQL的RDBMS类型的系统,而Bigtable(和HBase)是NoSQL,非关系型系统.

这是我对 Google 云 Python 图书馆项目的 feature request that was filed 的详细回复,其中包含更多上下文和替代建议:

The integration between SQLAlchemy and Google Cloud Bigtable would have to be done in SQLAlchemy. I was going to file a bug on SQLAlchemy on your behalf, but looks like you've already filed a feature request and it was closed as wontfix:

unfortunately Google bigtable is non-relational and non-SQL, SQLAlchemy does not have support for key/value stores.

sqlalchemy@ 上的 上一个电子邮件线程 名单 关于添加对像 HBase 这样的 NoSQL 数据库的支持(这非常 类似于 Bigtable)最终没有得到任何答案。

因此,恐怕我们无法帮助您一起使用SQLAlchemy 使用 Bigtable。


也就是说,作为替代方案,请考虑使用 Apache Hue,与 Apache HBase 一起工作,可以是 与 Bigtable 类似地工作。我们没有简单的操作方法 如何将 Apache Hue 连接到 Cloud Bigtable,但我想它可以 做如下:

  1. Apache Hue -> (a: Thrift API) -> Apache HBase Thrift 代理 -> (b: gRPC API) -> Google Cloud大表

    第一个连接 (a) 对于 Hue 和 数据库。第二个连接可以使用 Google Cloud Bigtable Java 客户 HBase. 这并不像看起来那么复杂,尽管有几个 零件连接在一起以使其正常工作。

  2. Apache Hue -> (gRPC API) -> Google Cloud Bigtable

    这可以使用 Google Cloud Bigtable Java 客户端来完成 HBase,但是 它需要 Apache Hue 使用 HBase 1.x API(我相信这是 还不是这样,我相信它正在使用 0.9x API and/or Thrift),所以我 建议暂时使用上面的选项 (1)。

希望这对您有所帮助。