Approccio 1(A): Creazione di un unico database per tutto. (Con collezione singola)
Pro:
- Meno manutenzione:backup, creazione di utenti di database, ripristino ecc.
Contro:
- Potresti vedere blocco a livello di database per la creazione di indici su database di grandi dimensioni
- Per eseguire operazioni su dati sensori specifici, è necessario aggiungere indici aggiuntivi per recuperare solo la raccolta specifica del sensore
- Sei obbligato a creare non più di 64 indici su un'unica collezione. Anche se suona male strategia di indicizzazione.
Approccio 1(B): Creazione di un unico database per tutto. (Con 1 raccolta per ogni sensore)
Pro:
- Meno manutenzione:backup, creazione di utenti di database, ripristino ecc.
- Riduce al minimo la necessità di creare indici per identificare i dati specifici del sensore dall'intera raccolta monolitica
- Ogni query specifica del sensore verrà indirizzata solo a una raccolta specifica. Non richiede il pull di un set di lavoro di grandi dimensioni in memoria rispetto a una singola raccolta di grandi dimensioni.
- Costruire l'indice su una raccolta relativamente più piccola è più fattibile rispetto a quello della raccolta di grandi dimensioni in un singolo DB
Contro:
- Potresti finire per creare troppi indici. (Somma del numero totale di indici su tutte le raccolte).
- È necessaria più manutenzione per un numero elevato di indici.
- WiredTiger crea internamente 1 file per una raccolta e 1 per l'indice. Se il tuo caso d'uso cresce con un numero elevato di sensori. Potresti finire per usare un limite di file aperti di 64.000.
Per quanto riguarda le prestazioni, è importante suddividere i dati in base a ciascun sensore o in base alle metriche?
- Ciò dipende dai modelli di accesso previsti dalla tua app di analisi.
Per quanto riguarda le prestazioni, dovrei creare una raccolta solo per le informazioni sui sensori e quindi raccolte per i dati o semplicemente unire i due nella stessa raccolta?
-
Potrebbe essere necessario creare una raccolta per i metadati e i dati dei sensori. Ridurrà al minimo la duplicazione dei metadati dei sensori in tutti i dati dei sensori raccolti.
-
Ti potrebbe piacere leggere Post del blog Williams qui sulla progettazione di questo modello.
Come sempre, è meglio progettare uno schema di esempio e testare le tue query all'interno del tuo ambiente di test.