我对基于地理位置的应用程序没有经验,并且希望构建基于geolaction的应用程序,并在后端以nodejs编写并在Google云上运行。地理定位应用程序Google Cloud
我的主要问题是如何设计数据库,我应该使用哪个数据库(Bigtable的或数据存储)?主要查询是查询给定位置和半径处的地点。我已经阅读了很多关于geohash的内容,但是nodejs librarys现在不太好。
那么你有什么建议我选择和设计数据库?
我对基于地理位置的应用程序没有经验,并且希望构建基于geolaction的应用程序,并在后端以nodejs编写并在Google云上运行。地理定位应用程序Google Cloud
我的主要问题是如何设计数据库,我应该使用哪个数据库(Bigtable的或数据存储)?主要查询是查询给定位置和半径处的地点。我已经阅读了很多关于geohash的内容,但是nodejs librarys现在不太好。
那么你有什么建议我选择和设计数据库?
如果你想将数据存储在关系格式,执行频繁 加入位置/坐标和数据是 处理量之间较少(> 50 GB),然后去Google Cloud SQL。
Cloud Bigtable非常适用于存储非常大量的具有非常低延迟的单键数据的 数据。它与大多数Apache项目有很好的整合 服务。
如果要在关系格式,
和频繁的插入和updations需要对大量数据 没有数据的要求,去Google Cloud Datastore。查询过程将是
略有不同,很难让天真的人理解。
如果不需要频繁的插入和更新,您也可以使用Google BigQuery来处理 几秒钟内的TB数据。
它更像是一个数据存储。
看一看在以下网址获得更好的见解:https://cloud.google.com/storage-options/
谷歌还宣布Cloud Spanner这是一个关系型数据库 服务,提供了极大的一致性和速度(仍然是 测试版)。它还处于早期阶段,但是可以彻底改变SQL vs NoSQL的概念 。
上述所有数据库都查询为NodeJS编写的库。
GeoMesa,Apache许可的开源工具套件,支持大规模地理空间分析,works with Cloud Bigtable。我不知道这会与node.js交互如何,但是值得考虑像GeoMesa这样的框架,因为它可能使您能够更专注于核心产品。