地理位置应用 Google Cloud
Posted
技术标签:
【中文标题】地理位置应用 Google Cloud【英文标题】:Geolocation App Google Cloud 【发布时间】:2017-03-03 07:44:07 【问题描述】:我没有使用基于地理位置的应用程序的经验,我想构建一个基于 geolaction 的应用程序,其后端用 nodejs 编写并在谷歌云上运行。
我的主要问题是如何设计数据库以及我应该使用哪个数据库(Bigtable 或 Datastore)?主要查询是查询给定位置和半径的地点。我已经阅读了很多关于 geohash 的内容,但是 nodejs 库现在不太好。
那么你对我选择和设计数据库有什么建议?
【问题讨论】:
【参考方案1】:如果要以关系格式存储数据,请频繁执行 连接位置/坐标和数据量 处理的更少(>50 GB),然后去Google Cloud SQL。
Cloud Bigtable 非常适合存储大量 具有极低延迟的单键数据。它具有很好的集成性 为大多数 Apache 项目提供服务。
如果不要求数据采用关系格式, 并且需要大量的频繁插入和更新 数据,去Google Cloud Datastore。查询过程将是 有点不同,对于一个天真的人来说很难理解。
您还可以使用Google BigQuery,它在一个 几秒钟,如果不需要频繁插入和更新。 它更像是一个数据存储。
查看以下 URL 以获得更好的见解:https://cloud.google.com/storage-options/
Google 还宣布了Cloud Spanner,这是一个关系型 提供高度一致性和速度的数据库服务(仍然是 贝塔)。它仍处于早期阶段,但可以彻底改变概念 SQL 与 NoSQL 的对比。
以上所有数据库都有为 NodeJS 编写的查询库。
【讨论】:
【参考方案2】:GeoMesa,一个 Apache 许可的开源工具套件,支持大规模地理空间分析,works with Cloud Bigtable。我不知道这将如何与 node.js 交互,但值得考虑使用 GeoMesa 之类的框架,因为它可能使您能够更专注于您的核心产品。
【讨论】:
以上是关于地理位置应用 Google Cloud的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:无法从“google.cloud”(未知位置)导入名称“bigquery”
保存Google Cloud Platform服务帐户凭据的位置
创建全局 HTTPS Google Cloud 负载均衡器时,位置有啥影响?
在自定义位置的 Google Cloud Storage 中创建存储桶