16

SfondoGoogle BigTable vs BigQuery per memorizzare gran numero di eventi

Vorremmo memorizzare i nostri eventi immutabili in un (preferibilmente) servizio gestito. La dimensione media di un evento è inferiore a 1 Kb e abbiamo tra 1-5 eventi al secondo. La ragione principale per archiviare questi eventi è essere in grado di riprodurli (magari usando la scansione delle tabelle) una volta creati servizi futuri che potrebbero essere interessati a questi eventi. Dato che siamo su Google Cloud, stiamo ovviamente esaminando i servizi di Google come prima scelta.

Ho il sospetto che Bigtable sarebbe una buona misura per questo, ma secondo il price calculator ci costerà più di 1400 dollari al mese (che per noi è un affare grande):

enter image description here

Guardando qualcosa come BigQuery rende un prezzo di 3 dollari al mese (se non mi manca qualcosa di essenziale):

enter image description here

Anche se un database senza schema sarebbe più adatto per noi, andrebbe bene con l'archiviazione dei nostri eventi come un blob con alcuni metadati.

Domande

Potremmo usare BigQuery per dal momento che invece di BigTable per ridurre i costi? Per esempio BigQuery ha qualcosa chiamato streaming inserts che a me sembra qualcosa che potremmo usare. C'è qualcosa che ci morderà a breve o lungo termine che potrei non essere a conoscenza se percorrendo questa strada?

+1

Non ti manca essenziale, BQ è estremamente "economico". – Pentium10

+2

BigQuery è ottimizzato per l'archiviazione e l'analisi a lungo termine, BigTable per l'utilizzo intensivo da parte di un'app online –

+1

Non sicuro, ma potrebbe essere un limite in termini di operazioni. Penso che puoi fare solo 1k append di un tavolo al giorno (era un limite di BQ api che ho colpito qualche tempo fa). Anche se penso che lo streaming API sia più indulgente. Potrebbe essere solo un'altra dimensione da considerare. – andrewm4894

risposta

7

Bigtable è ottimo per grandi (> = 1 TB) set di dati mutabili. Ha una bassa latenza sotto carico ed è gestito da Google. Nel tuo caso, penso che tu sia sulla strada giusta con BigQuery.

1

Difficile riassumere meglio di quello che è già stato fatto da Google - https://cloud.google.com/bigtable/docs/
check Cloud BigTable e altre opzioni di archiviazione sezione

Penso che avete bisogno di capire come si intende utilizzare (riproduzione) la tua dati (eventi) e questo può aiutarti a prendere una decisione finale.

Finora, BigQuery sembra una scelta migliore per voi

5

Il costo complessivo si riduce a come spesso si 'query' i dati. Se si tratta di un backup e non si ripetono gli eventi troppo spesso, sarà sporco a poco prezzo. Tuttavia, se è necessario riprodurlo una volta al giorno, si inizia a scansionare troppo facilmente la scansione $ 5/TB. Siamo rimasti sorpresi anche dal modo in cui sono stati introdotti inserimenti e archiviazione economici, ma questo è perché Google si aspetta che tu esegua query costose ad un certo punto nel tempo. Dovrai disegnare attorno ad alcune cose però. Per esempio. Gli inserimenti di streaming AFAIK non hanno alcuna garanzia di essere scritti sul tavolo e si deve eseguire il polling frequentemente in coda all'elenco per vedere se è stato realmente scritto. Il tailing può essere fatto in modo efficiente con il decoratore della tabella dell'intervallo di tempo, sebbene (non paghi per la scansione di tutto il set di dati).

Se non ti interessa di ordine, è possibile anche elencare un tavolo gratis. Non c'è bisogno di eseguire una "query" allora.

6

FYI

Cloud Bigtable non è un database relazionale; non supporta query o join SQL, né supporta transazioni su più righe. Inoltre, non è una buona soluzione per piccole quantità di dati (< 1 TB).

Considerare questi casi: - Se avete bisogno di supporto completo SQL per un sistema di elaborazione di transazioni online (OLTP), in considerazione Google Cloud SQL.

Se è necessaria l'interrogazione interattiva in un sistema di elaborazione analitica online (OLAP), considerare Google BigQuery.

Se avete bisogno di memorizzare blob immutabili più grandi di 10 MB, come i grandi immagini o filmati, in considerazione Google Cloud Storage.

Se avete bisogno di memorizzare oggetti altamente strutturati, o se avete bisogno di supporto per le transazioni ACID e query SQL-like, considera Nuvola Datastore.

+2

era in attesa di sentire il caso d'uso riepilogativo per BigTable .. – cdock