Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-05 UTC."],[[["\u003cp\u003eDatastore is a NoSQL document database designed for automatic scaling, high performance, and easy application development, offering features like atomic transactions and high availability.\u003c/p\u003e\n"],["\u003cp\u003eUnlike relational databases, Datastore is schemaless, automatically scales to large datasets, and supports queries that scale with the result set size, not the dataset size.\u003c/p\u003e\n"],["\u003cp\u003eDatastore excels in applications requiring highly available structured data at scale, such as product catalogs, user profiles, and ACID-compliant transactions.\u003c/p\u003e\n"],["\u003cp\u003eDatastore is not ideal for relational database needs, analytic data, or storing large, immutable blobs; alternatives like Cloud SQL, Bigtable, BigQuery, and Cloud Storage are recommended for these use cases.\u003c/p\u003e\n"],["\u003cp\u003eDatastore provides a fully managed service, encrypts data at rest, and offers strong consistency across all queries.\u003c/p\u003e\n"]]],[],null,["# Datastore Overview\n\nFirestore in Datastore mode (Datastore) is a NoSQL document database built for automatic scaling, high performance,\nand ease of application development. Datastore features include:\n\n- **Atomic transactions**. Datastore can execute a set of operations where either all succeed, or none occur.\n- **High availability of reads and writes**. Datastore runs in Google data centers, which use redundancy to minimize impact from points of failure.\n- **Massive scalability with high performance**. Datastore uses a distributed architecture to automatically manage scaling. Datastore uses a mix of indexes and query constraints so your queries scale with the size of your result set, not the size of your dataset.\n- **Flexible storage and querying of data** . Datastore maps naturally to object-oriented and scripting languages, and is exposed to applications through multiple clients. It also provides a SQL-like [query language](/datastore/docs/apis/gql/gql_reference).\n- **Strong consistency**. Datastore ensures that all queries are strongly consistent.\n- **Encryption at rest** . Datastore automatically encrypts all data before it is written to disk and automatically decrypts the data when read by an authorized user. For more information, see [Server-Side Encryption](/datastore/docs/concepts/encryption-at-rest).\n- **Fully managed with no planned downtime**. Google handles the administration of the service so you can focus on your application. Your application can still use Datastore when the service receives a planned upgrade.\n\nComparison with relational databases\n------------------------------------\n\nWhile the Datastore interface has many of the same features\nsimilar to relational databases, as a NoSQL database, it varies in how it\ndescribes the relationships between data objects. Here's a high-level comparison\nof Datastore and relational database concepts:\n\nUnlike rows in a relational database table, Datastore entities of\nthe same kind can have different properties, and different entities can have\nproperties with the same name but different value types. These unique\ncharacteristics imply a different way of designing and managing data to take\nadvantage of the ability to scale automatically. In particular,\nDatastore differs from a traditional relational database in the\nfollowing important ways:\n\n- Datastore is designed to automatically scale to very large data sets, allowing applications to maintain high performance as they receive more traffic:\n - Datastore writes scale by automatically distributing data as necessary.\n - Datastore reads scale because the only queries supported are those whose performance scales with the size of the result set (as opposed to the data set). This means that a query whose result set contains 100 entities performs the same whether it searches over a hundred entities or a million. This property is the key reason some types of queries are not supported.\n- Because all queries are served by previously built indexes, the types of queries that can be executed are more restrictive than those allowed on a relational database with SQL. In particular, Datastore does not include support for join operations, inequality filtering on multiple properties, or filtering on data based on results of a subquery.\n- Unlike relational databases which enforce a schema, Datastore is schemaless. It doesn't require entities of the same kind to have a consistent set of properties (although you can choose to enforce such a requirement in your own application code).\n\nWhat it's good for\n------------------\n\nDatastore is ideal for applications that rely on highly available structured data at scale. You can use Datastore to store and query all of the following types of data:\n\n- Product catalogs that provide real-time inventory and product details for a retailer.\n- User profiles that deliver a customized experience based on the user's past activities and preferences.\n- Transactions based on [ACID](https://en.wikipedia.org/wiki/ACID) properties. For example, transferring funds from one bank account to another.\n\nOther storage and database options\n----------------------------------\n\nDatastore is not ideal for every use case. For example, Datastore is not a relational database, and it is not an effective solution for analytic data.\n\nHere are some common scenarios where you should probably consider an alternative to Datastore:\n\n- If you need a relational database with full SQL support for an online transaction processing (OLTP) system, consider [Cloud SQL](/sql).\n- If you don't require support for ACID transactions or if your data is not highly structured, consider [Bigtable](/bigtable).\n- If you need interactive querying in an online analytical processing (OLAP) system, consider [BigQuery](/bigquery).\n- If you need to store large immutable blobs, such as large images or movies, consider [Cloud Storage](/storage).\n\n\nFor more information about other database options, see the [overview\nof database services](/products/databases).\n\nWhat's next\n-----------\n\n- [Learn how to store and query data using the Google Cloud console](/datastore/docs/store-query-data)\n- [Learn about the Datastore data model](/datastore/docs/concepts/entities)\n- [View best practices for Datastore](/datastore/docs/best-practices)"]]