Ho provato i documenti DynamoDB e ho lavorato con l'esempio utilizzando QueryResult
, non ho trovato alcuna fonte su come utilizzare min, max e avg in DynamoDB (sto usando l'API Java).DynamoDB supporta funzioni di aggregazione come AVG, MAX, MIN?
risposta
Questi non sono forniti. Dovresti implementarli eseguendo una query o eseguendo la scansione con un filtro e calcolando tu stesso i valori. Per semplificare un po 'le cose, è possibile utilizzare Count
parameter per restituire solo il conteggio degli elementi che verrebbero restituiti da tale query/scansione anziché gli elementi effettivi. (Tieni presente che il conteggio restituisce solo un conteggio parziale: potrebbe essere necessario sommare i conteggi su più pagine di query/scansioni).
In alternativa, è possibile mantenere una tabella separata che memorizza questi valori mentre le tabelle principali vengono aggiornate (si noti che può essere difficile mantenere la sincronizzazione, sarà necessario utilizzare una qualche forma di gestione delle transazioni e tenere in considerazione il modello di consistenza finale della dinamo).
Ho avuto lo stesso problema come te, e poi ho avuto 2 idee per risolvere quel problema. 1o: consiste nell'interrogare tutti i dati utilizzando query/scansione e quindi aggregare i dati nel codice java. 2o: utilizzare Hive SQL, è possibile utilizzare Hive e DyanmoDB insieme e aggregare i dati in Hivql.
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.Tutorial.html
- 1. SQLAlchemy: ottenere max/min/avg valori da una tabella
- 2. C#: funzioni matematiche generiche (Min, Max etc.)
- 3. Come presentare le funzionalità delle funzioni di aggregazione (NULL)?
- 4. Come utilizzare una variabile @ con funzioni min/max?
- 5. Crossfilter - come trovare min/max
- 6. Python: funzioni built-max/min dipendono ordine parametro
- 7. chiave predefinita per Python incorporato max/min funzioni
- 8. TSQL Selezionare Min & Max riga quando il raggruppamento
- 9. C#: sequenza min a max
- 10. Linq (MIN && MAX)
- 11. Utilizzo delle funzioni min e max in C++
- 12. La funzione di aggregazione avg JPQL funziona con Integers?
- 13. Funzione di aggregazione "mediana" mancante in Django?
- 14. jQuery DatePicker Min Max date
- 15. Generale min e max - C++
- 16. più recente valore max/min
- 17. x86 max/min istruzioni asm?
- 18. SQL perché SELECT COUNT (*), MIN (col), MAX (col) più veloce di SELECT MIN (col), MAX (col)
- 19. Python trovare min & max di due liste
- 20. Numero di telefono internazionale max e min?
- 21. Restituisce min/max di multidimensionale in Python?
- 22. SQLAlchemy semplice esempio di `sum`,` average`, `min`,` max`
- 23. Come limitare Min-Max Tempo in datetimepicker bootstrap
- 24. SELEZIONE min min e max min valore da una parte di una tabella in MySQL
- 25. Errore Tesseract. min illegale o specifiche max
- 26. multipla valore Min e Max per testo
- 27. min/max larghezza/altezza con più valori
- 28. Specificare max e min per Random.nextInt()?
- 29. Come si annullano i valori min-max di UISlider?
- 30. NumPy min/max assegnazione sul posto
Solo conteggio è supportato https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#Count – cjungel
Non proprio - contare restituisce solo risultati parziali da quella query - ancora bisogno di assemblare il conteggio totale te stesso. Ho copiato e incollato le note del documento pertinente dal tuo link qui: "* Se gli elementi corrispondenti per un'espressione filtro o una condizione di query sono superiori a 1 MB, Count contiene un conteggio parziale del numero totale di elementi corrispondenti alla richiesta. ottenere il conteggio completo degli elementi corrispondenti, prendere il valore LastEvaluatedKey dalla richiesta precedente e utilizzare tale valore come ExclusiveStartKey nella richiesta successiva. Ripetere l'operazione finché DynamoDB non restituisce più LastEvaluatedKey. * " – Krease
Hai ragione, potresti sommare tutti i conteggi parziali per ottenere il conteggio totale. Ma è ancora più efficiente del recupero dei singoli articoli e del loro conteggio nel lato dell'applicazione. Naturalmente ciò funzionerebbe solo per i conteggi e non per qualsiasi altra funzione aggregata. – cjungel