- Transazioni atomiche: esegui un insieme di operazioni in cui tutte vanno a buon fine o nessuna viene eseguita.
- Alta affidabilità di letture e scritture: i database vengono eseguiti nei data center di Google, che utilizzano la ridondanza per ridurre al minimo l'impatto dei punti di errore.
- Scalabilità massiccia con prestazioni elevate: un'architettura distribuita gestisce automaticamente la scalabilità e mantiene le prestazioni in condizioni di carico elevato.
- Archiviazione e query flessibili dei dati: il modello dei dati dei documenti viene mappato naturalmente ai linguaggi di scripting e orientati agli oggetti ed è esposto alle applicazioni tramite più client. L'API compatibile con Datastore di Firestore fornisce anche un linguaggio di query simile a SQL.
- Coerenza elevata: le query sono a elevata coerenza.
- Crittografia at-rest: i dati vengono criptati automaticamente prima di essere scritti su disco e decriptati automaticamente quando vengono letti da un utente autorizzato. Per maggiori informazioni, consulta 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 Firestore 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 di alto livello 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. Puoi utilizzare queste caratteristiche uniche per progettare e gestire i dati in modo da scalare automaticamente.
Poiché tutte le query vengono gestite da indici creati in precedenza, i tipi di query che l'API Datastore può eseguire 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. Se la tua applicazione richiede funzionalità di query avanzate, tra cui join e subquery, valuta la possibilità di utilizzare l'API Firestore Native o l'API compatibile con MongoDB.
A differenza dei database relazionali che applicano uno schema, Datastore è senza schema. 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).
Altre opzioni di archiviazione e database
L'API compatibile con Datastore di Firestore è pensata per supportare le applicazioni App Engine legacy. Se cerchi un database NoSQL orientato ai documenti per una nuova applicazione, ti consigliamo di utilizzare una delle API Firestore anziché l'API Datastore per usufruire di funzionalità più avanzate. Scopri di più sulle opzioni a tua disposizione.
Firestore è un database di documenti altamente scalabile che potrebbe non essere ideale per ogni caso d'uso. Ad esempio, potrebbe non essere la sostituzione migliore per un database relazionale. Ecco alcuni scenari comuni in cui potresti prendere in considerazione un database alternativo:
- 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 saperne di più su altre opzioni di database, consulta la panoramica dei servizi di database.
Passaggi successivi
- Scopri come archiviare ed eseguire query sui dati utilizzando la console Google Cloud
- Scopri di più sul modello di dati Datastore
- Visualizza le best practice per Datastore