2

Ich baue eine mobile App mit Google Cloud als Back-End. Es speichert Informationen über Restaurants einschließlich ihrer Speisekarte. Ich müsste anhand der Menüpunkte und des geografischen Standorts suchen.Google Cloud Datastore vs Cloud SQL

Ich bin ziemlich verwirrt, welche Google Cloud-Lösungen zu verwenden. Ursprünglich hatte ich geplant, Google App Engine mit Cloud Datastore zum Speichern von Daten zu verwenden. Später fand ich heraus, dass die Geolocation-Suche nicht unterstützt wird und selbst wenn ich die App Engine-Such-API verwende, werde ich keine "ähnliche" Textsuche erhalten . Über die Verwendung von Cloud SQL mache ich mir Sorgen um den Preis. Ich denke auch darüber nach, Google Compute Engine zu verwenden und erforderliche MongoDB oder SQL zu installieren und einige benutzerdefinierte Suchbibliotheken zu verwenden.

So ist meine Frage, welche der unten sollte für die Speicherung großer Datenmengen eine machbare und wirtschaftliche Lösung sein und

  • GAE mit Cloud Datastore
  • GAE mit Text und Geo-Location-Suche mit Cloud SQL
  • GCE mit MongoDB oder SQL installiert

anderen möglichen Lösungen sind auch willkommen

+2

Ich denke, Ihre erste Entscheidung sollte sein: Ist meine Daten in der Natur relational? Wenn es ist, mag ich persönlich Postgre mit Postgis für Geospatial Querying. Diese Lösung ist für die Google-Cloud-Plattform allerdings weniger geeignet. Für dokumentenbasierte Systeme hat MongoDB wesentlich mehr Funktionen als der Datenspeicher. Sie können die Suche nach natürlichen Texten und die Suche nach Geodaten aus der Box heraus durchführen. GCE kann teuer sein, Sie können stattdessen einen kleinen GKE-Knoten betrachten, aber es hängt von Ihrem Datenverkehr ab, Sie müssen sich möglicherweise Ihre Skalierungsoptionen selbst ansehen. –

Antwort

3

Google verfügt über eine Seite, die eine allgemeine Anleitung zur Auswahl der Speicheroption auf GCP gibt, die Choosing a storage option genannt wird.

Speziell für Cloud Datastor:

Beschreibung: Eine skalierbare, vollständig verwaltete NoSQL Dokumentendatenbank für Ihre Web und mobile Anwendungen.

Geeignet für:

  • Halbstrukturierte Anwendungsdaten
  • Hierarchical Daten
  • Durable Schlüssel-Wert-

Gemeinsame Workloads:

  • Benutzerprofile
  • Produktkataloge
  • Spiel Zustand

speziell für Cloud SQL:

Beschreibung: Eine vollständig verwaltete MySQL-Datenbank-Dienst, der auf die Stärke gebaut und Zuverlässigkeit der Google-Infrastruktur.

Geeignet für:

  • Web-Frameworks
  • Strukturierte Daten
  • OLTP-Workloads

Gemeinsame Workloads:

  • Websites, Blogs und Content-Management-Systeme (CMS)
  • Business Intelligence (BI) Anwendungen
  • ERP, CRM und eCommerce-Anwendungen

Wie Sie sehen können, könnte Ihr Anwendungsfall angrenzen eine Option. Restaurants + Menüs ist Produktkatalogen sehr ähnlich.

Cloud Datastore würde weniger Arbeitsaufwand/Gedanken auf Ihrer Seite erfordern. Sie müssen beispielsweise nicht darüber nachdenken, welche Art von VM-Instanz und Speichergröße verwendet werden soll. Um Analysen für Daten durchzuführen und nicht nur die Menüs zu bedienen, möchten Sie wahrscheinlich tägliche Dumps in BigQuery durchführen.

Cloud SQL erfordert zu Beginn etwas mehr Überlegungen und ist bei kleinen Größen ein wenig teurer als Cloud Datastore. Es bietet Ihnen auf der Analytikseite mehr Flexibilität, da Sie nicht wirklich in BigQuery dumpen müssen.

Das Ausführen einer anderen Datenbank auf GCE ist sicherlich eine Option, wenn Sie mehr Kontrolle möchten. Die Abwägung hier wird erfordern viel mehr aktive Ops Arbeit in Ihrem Namen, wie Installation, Patching, Tuning, etc.

Verwandte Themen