2

我正在构建一个以Google Cloud为后端的移动应用程序。它存储有关餐馆的信息,包括其菜单。我需要根据菜单项和地理位置进行搜索。Google Cloud Datastore vs Cloud SQL

我对使用哪种Google云解决方案感到十分困惑。最初,我计划使用Google App Engine和Cloud Datastore来存储数据,但后来发现,它不支持地理定位搜索,即使使用App Engine搜索API,我也不会得到'like'文本搜索。关于使用云SQL,我担心它的价格。我也在考虑使用Google Compute Engine并在其中安装所需的MongoDB或SQL,并使用一些自定义搜索库。

所以我的问题是其中的下面应该是用于存储大量数据,并使用文本和地理位置搜索一个可行和经济的解决方案

  • GAE与云存储
  • GAE与云SQL
  • GCE用MongoDB中或SQL安装

任何其他可行的解决办法,也欢迎

+2

我认为您的第一个决定应该是:我的数据关系性质? 如果是这样,我个人喜欢postgres用于地理空间查询postgis。尽管这个解决方案对谷歌云平台来说不是那么容易。 对于基于文档的系统,MongoDB具有比数据存储更多的功能,您可以自行进行自然文本搜索和地理空间搜索。 GCE可能很贵,您可以看一下小型GKE节点,但它取决于您的流量,您可能必须自己查看缩放选项。 –

回答

3

Google有一个页面可以提供关于在GCP上选择哪种存储选项的高级指导,名为Choosing a storage option

专门针对云存储:

说明:可扩展的,完全管理化NoSQL文档,以供网络和移动应用程序的数据库。

适合:

  • 半结构化的应用程序数据
  • 分层数据
  • 耐用键值

日常的工作量:

  • 用户配置文件
  • 产品目录
  • 游戏状态

专门为云SQL:

说明:是建立在实力一个完全管理的MySQL数据库服务以及Google基础设施的可靠性。

适合:

  • 网络框架
  • 结构化数据
  • OLTP工作负载

日常的工作量:

  • 网站,博客和内容管理系统(CMS)
  • 商业智能(BI)应用
  • ERP,CRM和电子商务应用

正如你所看到的,你的使用情况可能边境任一选项。餐厅+菜单与产品目录非常相似。

云数据存储将需要较少的操作/想法在你身边。例如,你不需要考虑应该使用什么类型的VM实例和内存大小。但是,为了对数据进行分析而不仅仅是提供菜单,您可能需要每日转储到BigQuery中。

云端SQL在开始时需要多一点思考,而小尺寸比云端数据存储要贵一些。它确实为分析方面提供了更多的灵活性,因为它并不真的需要您将其转储到BigQuery中。

如果您想要更多的控制权,在GCE上运行不同的数据库当然是一种选择。这里的权衡将要求您代表更多的主动操作,例如安装,修补,调整等。