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上運行不同的數據庫當然是一種選擇。這裏的權衡將要求您代表更多的主動操作,例如安裝,修補,調整等。