16

HintergrundGoogle Bigtable vs BigQuery für große Anzahl von Ereignissen zu speichern

Wir möchten unsere unveränderlichen Ereignisse in einem (vorzugsweise) zum Speichern von Managed-Service. Die durchschnittliche Größe eines Ereignisses beträgt weniger als 1 KB und wir haben zwischen 1-5 Ereignisse pro Sekunde. Der Hauptgrund für das Speichern dieser Ereignisse besteht darin, sie erneut wiedergeben zu können (z. B. mit Tabellenscan), wenn wir zukünftige Dienste erstellen, die an diesen Ereignissen interessiert sein könnten. Da wir uns in der Google Cloud befinden, betrachten wir die Google-Dienste offensichtlich als erste Wahl.

Ich vermute, dass Bigtable eine gute Passform für diese wäre aber nach dem price calculator wird es uns mehr als 1400 USD pro Monat kosten (das ist für uns eine große Deal):

enter image description here

ein Blick auf etwas wie BigQuery macht einen Preis von 3 USD pro Monat (wenn ich nicht etwas Wesentliches fehlt bin):

enter image description here

Obwohl eine schemalose Datenbank für uns besser geeignet wäre, würden wir unsere Ereignisse im Wesentlichen als Blob mit einigen Metadaten speichern.

Fragen

Könnten wir verwenden BigQuery da statt Bigtable für die Kosten zu senken? Zum Beispiel hat BigQuery etwas, das streaming inserts genannt wird, was mir scheint, dass wir etwas verwenden könnten. Gibt es irgendetwas, das uns kurz- oder langfristig beißen wird, was mir vielleicht nicht bewusst ist, wenn ich diesen Weg hinunter gehe?

+1

Sie fehlen nicht essentiell, BQ ist extrem "billig". – Pentium10

+2

BigQuery ist für die Langzeitspeicherung und Analyse optimiert, BigTable für die starke Nutzung durch eine Online-App –

+1

Nicht sicher, aber in Bezug auf den Betrieb könnten Grenzen gesetzt sein. ZB kannst du nur 1k pro Tag an eine Tabelle anhängen (das war ein BQ-API-Limit, das ich vor einer Weile getroffen habe). Obwohl ich denke, die Streaming-API ist nachsichtiger. Es könnte einfach eine andere Dimension sein, die es zu berücksichtigen gilt. – andrewm4894

Antwort

7

Bigtable ist ideal für große (> = 1 TB) veränderbare Datensätze. Es hat eine geringe Latenz unter Last und wird von Google verwaltet. In Ihrem Fall denke ich, dass Sie mit BigQuery auf dem richtigen Weg sind.

1

Fest besser zusammenfassen als es ohnehin schon von Google gemacht wird - https://cloud.google.com/bigtable/docs/
prüfen Cloud Bigtable und andere Speicheroptionen Abschnitt

Ich glaube, Sie brauchen, um herauszufinden, wie Sie (Wiederholung) verwenden werden Ihre Daten (Ereignisse) und dies kann Ihnen bei der endgültigen Entscheidung helfen.

Bisher sieht BigQuery wie eine beste Wahl für Sie

5

Die Gesamtkosten läuft darauf hinaus, wie oft werden Sie ‚query‘ die Daten. Wenn es sich um ein Backup handelt und Sie Ereignisse nicht zu oft wiederholen, ist es spottbillig. Wenn Sie es jedoch einmal täglich wiederholen müssen, beginnen Sie, die 5 $/TB, die zu leicht gescannt wurden, auszulösen. Wir waren auch überrascht, wie billig Inserts und Storage waren, aber das ist Ofc, weil Google erwartet, dass Sie teure Abfragen zu einem bestimmten Zeitpunkt auf ihnen ausführen. Sie müssen jedoch ein paar Dinge entwerfen. Z.B. AFAIK-Streaming-Einfügungen haben keine Garantie, in die Tabelle geschrieben zu werden, und Sie müssen häufig am Ende der Liste abfragen, um zu sehen, ob sie wirklich geschrieben wurde. Tailing kann jedoch effizient mit dem Zeitbereichs-Dekorierer durchgeführt werden (nicht für das Scannen des gesamten Datensatzes).

Wenn Sie nicht auf Bestellung kümmern, können Sie sogar eine Tabelle kostenlos auflisten. Keine Notwendigkeit, eine "Abfrage" dann auszuführen.

6

FYI

Cloud Bigtable ist keine relationale Datenbank. Es unterstützt keine SQL-Abfragen oder Joins und unterstützt auch keine Transaktionen mit mehreren Zeilen. Auch ist es keine gute Lösung für kleine Datenmengen (< 1 TB).

Betrachten Sie diese Fälle: - Wenn Sie die volle SQL-Unterstützung für eine Online-Transaktionsverarbeitung (OLTP) System benötigen, sollten Google Cloud SQL.

Wenn Sie interaktive Abfrage in einem Online-Analyse-Prozess (OLAP) System benötigen, betrachten Sie Google BigQuery.

Wenn Sie unveränderliche Blobs größer als 10 MB sind, wie große Bilder oder Filme speichern müssen, sollten Sie Google Cloud Storage.

Wenn Sie stark strukturierte Objekte zu speichern, oder wenn Sie Unterstützung für ACID-Transaktionen und SQL-ähnliche Abfragen benötigen, sollten Wolke Datastore.

+2

warteten auf den zusammenfassenden Anwendungsfall für BigTable. – cdock

Verwandte Themen