Panoramica di Datastore

Firestore in modalità Datastore (Datastore) è un database di documenti NoSQL creato per offrire scalabilità automatica, prestazioni elevate e facilità di sviluppo delle applicazioni. Le funzionalità di Datastore includono:

  • Transazioni atomiche. Datastore può eseguire un insieme di operazioni in cui tutte hanno esito positivo o nessuna viene eseguita.
  • Alta disponibilità di letture e scritture. Datastore viene eseguito nei data center di Google, che utilizzano la ridondanza per ridurre al minimo l'impatto dei punti di errore.
  • Scalabilità elevata con prestazioni elevate. Datastore utilizza un'architettura distribuita per gestire automaticamente lo scaling. Datastore utilizza un mix di indici e vincoli di query, in modo che le query vengano scalate in base alle dimensioni del set di risultati, non del set di dati.
  • Archiviazione e query flessibili dei dati. Datastore esegue il mapping in modo naturale ai linguaggi di scripting e orientati agli oggetti ed è esposto alle applicazioni tramite più client. Fornisce anche un linguaggio di query simile a SQL.
  • Elevata coerenza. Datastore garantisce che tutte le query siano fortemente coerenti.
  • Crittografia at-rest. Datastore cripta automaticamente tutti i dati prima che vengano scritti su disco e li decripta automaticamente quando vengono letti da un utente autorizzato. Per saperne di più, vedi Crittografia lato server.
  • Completamente gestito senza tempi di inattività pianificati. Google gestisce l'amministrazione del servizio, così puoi concentrarti sulla tua applicazione. La tua applicazione può comunque utilizzare Datastore quando il servizio riceve un upgrade pianificato.

Confronto con i database relazionali

Sebbene l'interfaccia Datastore abbia molte delle stesse funzionalità simili ai database relazionali, in quanto database NoSQL, varia nel modo in cui descrive le relazioni tra gli oggetti di dati. Ecco un confronto generale tra i concetti di Datastore e dei database relazionali:

Concetto Datastore Firestore Database relazionale
Categoria dell'oggetto Tipo Gruppo di raccolte Tabella
Un oggetto Entità Documento Riga
Dati individuali per un oggetto Proprietà Campo Colonna
ID univoco per un oggetto Chiave ID documento Chiave primaria

A differenza delle righe di una tabella di database relazionale, le entità Datastore dello stesso tipo possono avere proprietà diverse e entità diverse possono avere proprietà con lo stesso nome ma tipi di valori diversi. Queste caratteristiche uniche implicano un modo diverso di progettare e gestire i dati per sfruttare la possibilità di scalare automaticamente. In particolare, Datastore si differenzia da un database relazionale tradizionale nei seguenti aspetti importanti:

  • Datastore è progettato per scalare automaticamente a set di dati molto grandi, consentendo alle applicazioni di mantenere prestazioni elevate quando ricevono più traffico:
    • Le scritture di Datastore vengono scalate distribuendo automaticamente i dati in base alle necessità.
    • Le letture di Datastore vengono scalate perché le uniche query supportate sono quelle il cui rendimento aumenta in base alle dimensioni del set di risultati (anziché del set di dati). Ciò significa che una query il cui insieme di risultati contiene 100 entità viene eseguita allo stesso modo, indipendentemente dal fatto che la ricerca venga eseguita su 100 entità o su un milione. Questa proprietà è il motivo principale per cui alcuni tipi di query non sono supportati.
  • Poiché tutte le query vengono gestite da indici creati in precedenza, i tipi di query che possono essere eseguiti sono più restrittivi di quelli consentiti in un database relazionale con SQL. In particolare, Datastore non include il supporto per le operazioni di unione, il filtro di disuguaglianza su più proprietà o il filtro dei dati in base ai risultati di una sottoquery.
  • A differenza dei database relazionali che applicano uno schema, Datastore non ha schemi. Non richiede che le entità dello stesso tipo abbiano un insieme coerente di proprietà (anche se puoi scegliere di applicare questo requisito nel codice dell'applicazione).

A cosa serve

Datastore è ideale per le applicazioni che si basano su dati strutturati ad alta disponibilità su larga scala. Puoi utilizzare Datastore per archiviare ed eseguire query su tutti i seguenti tipi di dati:

  • Cataloghi di prodotti che forniscono inventario e dettagli dei prodotti in tempo reale per un rivenditore.
  • Profili utente che offrono un'esperienza personalizzata in base alle attività e alle preferenze passate dell'utente.
  • Transazioni basate sulle proprietà ACID. Ad esempio, il trasferimento di fondi da un conto bancario a un altro.

Altre opzioni di archiviazione e database

Datastore non è ideale per tutti i casi d'uso. Ad esempio, Datastore non è un database relazionale e non è una soluzione efficace per i dati analitici.

Ecco alcuni scenari comuni in cui probabilmente dovresti prendere in considerazione un'alternativa a Datastore:

  • Se hai bisogno di un database relazionale con supporto SQL completo per un sistema di elaborazione delle transazioni online (OLTP), prendi in considerazione Cloud SQL.
  • Se non hai bisogno del supporto per le transazioni ACID o se i tuoi dati non sono altamente strutturati, prendi in considerazione Bigtable.
  • Se hai bisogno di query interattive in un sistema di elaborazione analitica online (OLAP), prendi in considerazione BigQuery.
  • Se devi archiviare BLOB immutabili di grandi dimensioni, come immagini o filmati di grandi dimensioni, valuta l'utilizzo di Cloud Storage.

Per ulteriori informazioni su altre opzioni di database, consulta la panoramica dei servizi di database.

Passaggi successivi