Utilizzo delle viste in Amazon DocumentDB 8.0 - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo delle viste in Amazon DocumentDB 8.0

  • Amazon DocumentDB 8.0 ora supporta le visualizzazioni. Le viste funzionano come raccolte virtuali che presentano dati in base a operazioni di aggregazione specificate. Quando si crea una vista, si definisce una query che trasforma i dati da una o più raccolte di fonti. Amazon DocumentDB 8.0 esegue questa query ogni volta che si accede alla vista, senza consumare risorse di storage aggiuntive. A differenza delle raccolte standard, le viste in Amazon DocumentDB 8.0 non archiviano documenti su disco, il che le rende una soluzione efficiente per presentare dati trasformati o filtrati alle applicazioni. Per creare una vista in Amazon DocumentDB, puoi utilizzare il comando createView o il metodo helper db.createView ():

    db.createView("viewName","sourceCollection", [ { $match: { status: "active" } }, { $project: { _id: 1, name: 1, email: 1 } } ] )

    Questo crea una vista denominata «viewName» basata su «SourceCollection» che include solo documenti e progetti attivi, solo i campi _id, name ed email. Le viste in Amazon DocumentDB sono di sola lettura. Le operazioni di scrittura sulle viste restituiranno un errore. Per prestazioni ottimali con set di dati di grandi dimensioni, puoi strutturare le tue pipeline di visualizzazione per massimizzare l'efficienza. Per pipeline di aggregazione complesse, si consiglia di utilizzare la fase $match come prima fase o all'inizio della pipeline per ridurre il numero di documenti che le fasi successive devono elaborare, migliorando così le prestazioni delle query.

Best practice

Di seguito sono elencate alcune best practice da seguire con Views.

  • Filtra in anticipo: utilizza $match Stages nelle prime fasi di visualizzazione delle pipeline per ridurre la quantità di dati elaborati.

  • Evita le aggregazioni complesse: per viste ad accesso frequente con aggregazioni complesse, prendi in considerazione la creazione di una raccolta separata con risultati precalcolati che vengono aggiornati periodicamente.

  • Pianificazione dell'indice: assicurati che i campi utilizzati nelle pipeline di visualizzazione, specialmente nelle operazioni $match e $sort, siano indicizzati correttamente nella raccolta di origine.

  • Ottimizzazione delle query: utilizza il comando explain per capire come vengono eseguite le query di visualizzazione e ottimizzarle di conseguenza.

  • Alternative per le visualizzazioni: date le differenze funzionali tra le viste di Amazon DocumentDB e MongoDB, prendi in considerazione l'utilizzo di raccolte regolari con aggiornamenti pianificati come alternativa alle viste in caso di limitazioni.

Compatibilità con gli operatori di aggregazione

Amazon DocumentDB supporta molti operatori di aggregazione nelle definizioni delle viste, pur continuando a espandere la compatibilità. Quando usi le viste, concentrati su questi operatori supportati:

  • $match per filtrare i documenti

  • $project per la selezione e la trasformazione dei campi

  • $addFields per aggiungere campi calcolati

  • $sort per ordinare i risultati

  • $limit e $skip per l'impaginazione

Alcuni operatori specializzati come $currentOp, $replaceRoot e $geoEar attualmente lavorano su query di aggregazione diretta anziché visualizzare le definizioni.

Sfruttamento di indici e visualizzazioni

Le viste in Amazon DocumentDB 8.0 utilizzano gli indici della raccolta sottostante. Di conseguenza, non è possibile creare, eliminare o ricostruire gli indici direttamente su una vista. Tuttavia, indici ben progettati nella raccolta di sorgenti possono migliorare in modo significativo le prestazioni delle query di visualizzazione Di seguito sono riportati alcuni passaggi per ottimizzare le prestazioni delle query sulle viste:

  • Assicurati che esistano indici appropriati nei campi di raccolta dei sorgenti utilizzati nella pipeline della vista, specialmente nelle operazioni $match e $sort

  • Utilizzate il metodo explain () per analizzare i piani di esecuzione delle query e verificare l'utilizzo dell'indice. Ad esempio db.viewName.find({...}).explain()