|

Prezzi di Firestore

Questo documento spiega i dettagli sui prezzi di Firestore.

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Panoramica dei prezzi

Quando utilizzi Firestore, ti viene addebitato quanto segue:

  • Il numero di documenti che leggi, scrivi ed elimini.
  • Il numero di voci di indice lette per soddisfare una query. Scopri di più sulle letture dell'indice.
  • Lo spazio di archiviazione utilizzato dal tuo database, incluso l'overhead per metadati e indici.
  • La quantità di larghezza di banda di rete utilizzata.

L'utilizzo dello spazio di archiviazione e della larghezza di banda è misurato in gibibyte (GiB), dove 1 GiB = 230 byte. Tutti gli addebiti vengono sommati ogni giorno.

Le sezioni che seguono forniscono dettagli sul modo in cui viene addebitato l'utilizzo di Firestore.

Quota gratuita

Firestore offre una quota gratuita che ti consente di iniziare a utilizzare il tuo database (default) senza costi. Di seguito viene riportata la quantità di quote gratuite. Se hai bisogno di quote superiori, devi abilitare la fatturazione per il tuo progetto Google Cloud.

Le quote sono applicate giornalmente e reimpostate alla mezzanotte del fuso orario del Pacifico.

Solo il database (default) è idoneo per la quota gratuita.

Livello gratuito Quota
Dati archiviati 1 GiB
Operazioni di lettura documenti 50.000 al giorno
Operazioni di scrittura documenti 20.000 al giorno
Operazioni di eliminazione documenti 20.000 al giorno
Trasferimento di dati in uscita 10 GiB al mese

Le seguenti operazioni e funzionalità non includono l'utilizzo gratuito. Devi abilitare la fatturazione per utilizzare queste funzionalità:

  • Utilizzo di database denominati (non predefiniti)
  • Eliminazioni TTL
  • Dati PITR
  • Backup dei dati
  • Operazioni di ripristino

Per ulteriori informazioni su come vengono fatturate queste funzionalità, consulta la pagina Prezzi di Storage.

Prezzi per località

La tabella riportata di seguito elenca i prezzi per letture, scritture, eliminazioni e spazio di archiviazione per ciascuna località Firestore:

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Nessuna quota gratuita per i database denominati

Per creare un database denominato (non predefinito), devi abilitare la fatturazione.

Non sono previsti costi aggiuntivi per la creazione o l'eliminazione dei database denominati, ma questi database non sono idonei per la quota gratuita. Ti verrà invece addebitato l'utilizzo sostenuto per i database denominati.

Operazioni di lettura, scrittura ed eliminazione

Ti viene addebitato il costo della lettura di documenti e voci di indice per soddisfare una query. Ti viene addebitata ogni operazione di scrittura ed eliminazione di documenti.

Gli addebiti per le operazioni di scrittura ed eliminazione sono semplici. Per la scrittura, ogni operazione set o update conta come un'unica scrittura.

Gli addebiti per le operazioni di lettura possono presentare alcune sottigliezze di cui devi tenere conto. Tali sottigliezze vengono spiegate in dettaglio nelle sezioni che seguono.

Letture voce indice

Ti viene addebitata un'operazione di lettura per ogni batch di massimo 1000 voci di indice lette da una query, ad eccezione dei seguenti casi:

  • Per le query di ricerca vettoriale K-Nearest Neighbor, ti viene addebitata un'operazione di lettura per ogni batch di massimo 100 voci di indice vettoriale kNN lette dalla query.

    Ad esempio, se la seguente query di ricerca vettoriale con limit: 5 restituisce 5 documenti e legge 1550 voci di indice vettoriale k-NN, ti vengono addebitate 5 operazioni di lettura per i documenti restituiti e 16 operazioni di lettura per le voci dell'indice:

    // Requires single-field vector index
    const vectorQuery: VectorQuery = db.collection('cities').findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
      limit: 5,
      distanceMeasure: 'EUCLIDEAN'
    });
    
  • Le query che hanno un massimo di un campo di intervallo non sono soggette a costi per la lettura delle voci dell'indice.

    Ad esempio, la seguente query contiene un campo di uguaglianza (age) e un campo di intervallo (start_date) e non prevede costi per la lettura delle voci dell'indice:

    db.collection("employees").whereEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    La query seguente contiene due campi di intervallo (age e start_date) ed è soggetta a lettura delle voci dell'indice:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .whereGreaterThanOrEqualTo("start_date", new Date(2020, 1, 1))
    

    Un campo che compare nella clausola order by è considerato un campo di intervallo quando nella query è presente almeno un altro campo di intervallo. Pertanto, la query seguente contiene due campi di intervallo (age e start_date) e viene addebitato il costo per la lettura delle voci dell'indice:

    db.collection("employees").whereGreaterThanOrEqualTo("age", 35)
                              .orderBy("start_date")
    

    Il campo __name__ è sempre considerato un campo intervallo, anche se viene utilizzato solo in un filtro di uguaglianza. Pertanto, la query seguente contiene due campi di intervallo (age e __name__) e viene addebitato il costo per la lettura delle voci dell'indice:

    db.collection("employees").whereIn("__name__", Arrays.asList("/employees/Alice", "/employees/Bob"))
                              .orderBy("age")
    

Query di aggregazione

Per le query di aggregazione come count(), sum() e avg(), viene addebitato il costo delle voci di indice lette dalla query, come descritto sopra. Per le query di aggregazione che leggono 0 voci di indice, è previsto un addebito minimo pari alla lettura di un documento.

Ad esempio, le operazioni count() che leggono tra 0 e 1000 voci di indice vengono fatturate come una lettura di documento. Per un'operazione count() che legge 1500 voci di indice, ti viene addebitato il costo di 2 letture di documenti.

Per scoprire di più sugli indici utilizzati e sulle voci di indice lette, utilizza Query Explain.

Ascolto dei risultati delle query

Firestore ti consente di rimanere in ascolto dei risultati di una query e ricevere aggiornamenti in tempo reale quando i risultati della query cambiano.

Quando esegui l'ascolto dei risultati di una query, ti viene addebitata una lettura ogni volta che viene aggiunto o aggiornato un documento nel set di risultati. Ti viene addebitata una lettura anche quando un documento viene rimosso dal set di risultati perché è stato modificato (invece, quando un documento viene eliminato, non viene addebitata una lettura).

La fatturazione degli ascoltatori negli SDK mobile e web dipende anche dal fatto che la persistenza offline sia abilitata o meno:

  • Se la persistenza offline è abilitata e il listener viene disconnesso per più di 30 minuti (ad esempio, se l'utente va offline), vengono addebitate le letture di documenti e voci di indice come se avessi inviato una nuova query.

  • Se la persistenza offline è disattivata, ti verranno addebitati i documenti e le letture delle voci dell'indice come se avessi inviato una nuova query ogni volta che il listener si disconnette e si riconnette.

Gestione di grandi set di risultati

Firestore include numerose funzionalità per la gestione delle query che restituiscono un numero elevato di risultati:

  • Cursori, che consentono di riprendere una query a lunga esecuzione.
  • Token di pagina, che consentono di impaginare i risultati della query.
  • Limiti, che specificano il numero di risultati da recuperare.
  • Offset, che consentono di saltare un numero fisso di documenti.

Non sono previsti costi aggiuntivi per l'uso di cursori, token di pagina e limiti. In effetti, queste funzionalità contribuiscono a conseguire risparmi in termini di costi poiché vengono letti solo i documenti effettivamente necessari.

Invece, quando invii una query che comprende un offset, ti viene addebitata una lettura per ciascun documento saltato. Ad esempio, se la tua query utilizza un offset di 10, e la query restituisce 1 documento, ti vengono addebitate 11 letture. A causa di questo costo aggiuntivo, ove possibile si dovrebbero utilizzare i cursori, anziché gli offset.

Query diverse dalla lettura di documenti

Per le query diverse dalla lettura di documenti, come la richiesta di un elenco di ID raccolta, ti verrà addebitato il costo della lettura di un documento. Se il recupero del set completo di risultati richiede più di una richiesta (ad esempio, se si utilizza l'impaginazione), viene eseguito un unico addebito per ogni richiesta.

Addebito minimo per le query

È previsto un addebito minimo, corrispondente alla lettura di un documento, per ogni query eseguita, anche se la query non restituisce risultati.

Regole di sicurezza di Firestore

Nel caso delle librerie client per applicazioni web o per dispositivi mobili, se le regole di sicurezza di Firestore utilizzano exists(), get() o getAfter() per leggere uno o più documenti del database, le letture aggiuntive vengono addebitate come segue:

  • Vengono addebitate le letture necessarie per valutare le regole di sicurezza di Firestore.

    Ad esempio, se le regole fanno riferimento a tre documenti, ma Firestore deve leggerne solo due per valutare le regole, verranno addebitate due letture aggiuntive per i documenti dipendenti.

    Viene addebitata una sola lettura per ogni documento dipendente, anche se le regole fanno riferimento più volte a quel documento.

  • La valutazione delle regole viene addebitata una sola volta per ogni richiesta.

    Di conseguenza, può costare meno leggere più documenti che leggere i documenti uno alla volta, perché la lettura di più documenti comporta meno richieste.

  • Quando esegui l'ascolto dei risultati di una query, ti viene addebitato il costo della valutazione delle regole in tutti i casi seguenti:

    • Quando invii la query.
    • Ogni volta che i risultati della query vengono aggiornati.
    • Ogni volta che il dispositivo dell'utente passa offline, quindi torna online.
    • Ogni volta che aggiorni le regole.
    • Ogni volta che aggiorni i documenti dipendenti nelle regole.

Dimensioni dello spazio di archiviazione del database

Ti viene addebitata la quantità di dati archiviati in Firestore, incluso l'overhead di archiviazione. L'overhead comprende metadati, indici automatici e indici composti.

Ogni documento archiviato in Firestore richiede i seguenti metadati:

  • L'ID del documento, compresi l'ID raccolta e il nome del documento.
  • Il nome e il valore di ogni campo. Poiché Firestore è privo di schemi, il nome di ogni campo di un documento deve essere archiviato insieme al valore del campo.
  • Tutti gli indici a campo singolo e composti che fanno riferimento al documento. Ogni voce di indice contiene l'ID raccolta, qualsiasi numero di valori di campo, a seconda della definizione dell'indice, e il nome del documento.

I costi di archiviazione sono in GiB/mese e vengono calcolati giornalmente. Firestore misura la dimensione del database ogni giorno. Nell'arco di un mese, la media di questi punti campione viene utilizzata per calcolare le dimensioni dello spazio di archiviazione del database. Questo valore medio viene moltiplicato per il prezzo unitario dello spazio di archiviazione (GiB-mese)

Scopri come viene calcolata la capacità di archiviazione di Firestore in Calcoli dello spazio di archiviazione.

Dati PITR

Se attivi PITR, ti vengono addebitati i costi di archiviazione dei dati PITR. La maggior parte dei clienti noterà che il costo complessivo dell'archiviazione dei dati con PiTR è simile al costo di archiviazione del database.

I costi di archiviazione per PITR sono in GiB/mese e vengono calcolati giornalmente. Firestore misura le dimensioni del database giornalmente. Nell'arco di un mese, questi punti campione vengono calcolati come media per calcolare le dimensioni dello spazio di archiviazione del database. Questo valore medio viene moltiplicato per il prezzo unitario di PITR (GiB-mese).

Ad esempio, se la dimensione media del tuo database durante un mese è 1 GiB e PITR è abilitato per l'intero mese, anche la dimensione dei dati PITR fatturabili è 1 GiB.

Fatturazione minima: ti verranno addebitati i costi di archiviazione PITR fino a 1 giorno anche se disabiliti PITR entro 1 giorno dall'attivazione.

Operazioni di backup e ripristino dei dati

Se attivi i backup, ti viene addebitato il costo dell'archiviazione dei backup del database. La dimensione dello spazio di archiviazione per un backup è uguale alla dimensione dello spazio di archiviazione del database al momento dell'esecuzione del backup.

I costi di archiviazione per i backup sono in GiB/mese. Nell'arco di un mese, viene calcolato anche il numero di giorni di conservazione medio di ogni backup nel corso del mese. Il costo di ogni backup viene calcolato utilizzando la dimensione dello spazio di archiviazione del backup moltiplicata per la proporzione del mese in cui viene conservato il backup, moltiplicata per il prezzo unitario. I confini del giorno sono definiti dal fuso orario America/Los_Angeles per finiti di fatturazione.

Quando esegui un'operazione di ripristino, Firestore misura le dimensioni del backup per l'operazione. Le dimensioni del backup sono moltiplicate per il prezzo unitario delle operazioni di ripristino (GiB).

Query Explain

L'uso di Explica query Firestore comporta costi.

Quando una query viene spiegata con l'opzione predefinita, non vengono eseguite operazioni di lettura dell'indice. Indipendentemente dalla complessità della query, viene addebitata un'operazione di lettura.

Quando una query viene spiegata con l'opzione di analisi, vengono eseguite operazioni di indicizzazione e lettura, quindi ti verrà addebitato il costo della query come di consueto. Non è previsto alcun costo aggiuntivo per l'attività di spiegazione e analisi, ma solo il costo standard per l'esecuzione della query.

Larghezza di banda della rete

Ti viene addebitata la larghezza di banda della rete utilizzata dalle richieste Firestore, come mostrato nelle sezioni seguenti. Il costo della larghezza di banda della rete di una richiesta Firestore dipende dalle dimensioni della risposta alla richiesta, dalla località del database Firestore e dalla destinazione della risposta.

Firestore calcola le dimensioni della risposta in base a un formato di messaggio serializzato. L'overhead del protocollo, come l'overhead SSL, non conta ai fini dell'utilizzo della larghezza di banda della rete. Le richieste rifiutate in base alle regole di sicurezza di Firestore non contano ai fini dell'utilizzo della larghezza di banda della rete.

Per conoscere la larghezza di banda della rete che hai utilizzato, puoi utilizzare la console Google Cloud per esportare i dati di fatturazione in un file.

Prezzi generali di rete

Per le richieste che provengono da Google Cloud Platform (ad esempio, da un'applicazione in esecuzione su Google Compute Engine), ti vengono addebitati i seguenti costi:

Tipo di traffico Prezzo
Trasferimento di dati in entrata Gratis
Trasferimento di dati all'interno di una regione Gratis
Trasferimento di dati tra regioni nella stessa località a più regioni Gratis
Trasferimento di dati tra regioni negli Stati Uniti (per GiB) 0,01 ($ per i primi 10 GiB di ogni mese non viene addebitato alcun costo)
Trasferimento di dati tra regioni, escluso il traffico tra regioni negli Stati Uniti Tariffe per il trasferimento di dati internet in uscita della piattaforma Google Cloud

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Velocità di trasferimento di dati su internet

Ti verrà addebitato il costo del trasferimento di dati su internet per quanto segue:

  • Richieste tra regioni, escluso il traffico tra regioni degli Stati Uniti
  • Richieste dall'esterno di Google Cloud (ad esempio, dal dispositivo mobile di un utente)

Se la valuta utilizzata per il pagamento è diversa da USD, si applicano i prezzi elencati nella tua valuta negli SKU di Cloud Platform.

Monitoraggio dell'utilizzo

Per scoprire come monitorare l'utilizzo di Firestore, consulta la sezione Monitoraggio dell'utilizzo.

Gestione della spesa

Per gestire la spesa, imposta budget mensili e avvisi.

Budget e avvisi Google Cloud

Google Cloud ti consente di impostare un budget mensile per tutti i servizi Google Cloud. Utilizza il budget mensile per monitorare i costi globali di Google Cloud, inclusi i costi della larghezza di banda della rete per Firestore. Dopo aver impostato un budget, puoi impostare gli avvisi in modo da ricevere notifiche via email man mano che i costi si avvicinano al budget.

Segui queste istruzioni per impostare un budget mensile e creare avvisi nella console Google Cloud.

Esempio di prezzi

Per vedere come si accumulano i costi di fatturazione di Firestore in un'applicazione di esempio realistica, guarda l'esempio di fatturazione di Firestore.

Passaggi successivi

Richiedi un preventivo personalizzato

Con i prezzi con pagamento a consumo di Google Cloud, paghi solo per i servizi che utilizzi. Per ricevere un preventivo personalizzato per la tua organizzazione, contatta il nostro team di vendita.
Contatta il team di vendita