SQL Alchemy 似乎可以连接到在 Google Cloud SQL 上运行的 MySQL 表。但是,我花了一些时间寻找 NoSQL 数据库 Google Cloud Bigtable 的包装器,但找不到足够成熟的东西。
只是想知道如何从 SQL Alchemy 管理 Google Cloud Bigtable。
SQL Alchemy 似乎可以连接到在 Google Cloud SQL 上运行的 MySQL 表。但是,我花了一些时间寻找 NoSQL 数据库 Google Cloud Bigtable 的包装器,但找不到足够成熟的东西。
只是想知道如何从 SQL Alchemy 管理 Google Cloud Bigtable。
有一些 Python API 可以连接到 Big Table Cloud: 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)
但是,这仍然没有通过 SQL Alchemy 集成,尚不清楚 Schema 是否可以轻松集成。
这是不可能的,因为 SQLAlchemy 只能管理基于 SQL 的 RDBMS 类型的系统,而 Bigtable(和 HBase)是 NoSQL、非关系系统。
这是我对为 Google Cloud Python 库项目提交的功能请求的详细回复,其中包含更多上下文和替代建议:
SQLAlchemy 和 Google Cloud Bigtable 之间的集成必须在 SQLAlchemy 中完成。我打算代表你在 SQLAlchemy 上提交一个错误,但看起来你已经提交了一个功能请求 并且它被关闭为
wontfix
:不幸的是,Google bigtable 是非关系型和非 SQL 的,SQLAlchemy 不支持键/值存储。
列表中之前的一个关于添加对 NoSQL 数据库(如 HBase(与 Bigtable 非常相似)非常相似)的支持的电子邮件线程
sqlalchemy@
最终没有任何答案。因此,恐怕我们无法帮助您将 SQLAlchemy 与 Bigtable 一起使用。
也就是说,作为替代方案,可以考虑使用Apache Hue,它与 Apache HBase 一起工作,并且可以与 Bigtable 类似地工作。我们还没有一个简单的如何将 Apache Hue 连接到 Cloud Bigtable 的方法,但我想它可以按如下方式完成:
Apache Hue -> (a: Thrift API) -> Apache HBase Thrift 代理 -> (b: gRPC API) -> Google Cloud Bigtable
第一个连接 (a) 对于 Hue 和 HBase 应该是开箱即用的。第二个连接可以使用HBase 的 Google Cloud Bigtable Java 客户端。这并不像看起来那么复杂,尽管有几个部分可以连接在一起以使其全部工作。
Apache Hue -> (gRPC API) -> Google Cloud Bigtable
这可以使用 HBase 的Google Cloud Bigtable Java 客户端来完成,但它需要 Apache Hue 使用 HBase 1.x API(我相信还不是这样,我相信它使用的是 0.9x API 和/或 Thrift),所以我现在建议使用上面的选项(1)。
希望这会有所帮助。