Ich habe eine Dynamodb-Tabelle, die nur einen Hash-Schlüssel (Partitionsschlüssel) enthält. Es gibt keinen Bereichsschlüssel (Sortierschlüssel) für diese Tabelle. Hash-Schlüssel ist ein numerischer Wert (zB: - 1,2,3 ... N) Wenn ich diese Tabelle abfrage oder scanne, in welcher Reihenfolge senden sie die Ergebnisse? Wenn ein Bereichsschlüssel vorhanden ist, sortiert er die Ergebnisse offensichtlich in aufsteigender Reihenfolge basierend auf dem Bereichsschlüsselwert. Aber in diesem Fall ohne einen RANGE KEY, wie verhält es sich?Wie kann Dynamodb die Abfrageergebnisse sortieren, wenn kein Bereichsschlüssel verfügbar ist?
Antwort
DynamoDB bietet keine Bestellgarantien (implizit oder explizit) für das Scannen von Artikeln aus einer Tabelle. Die Elemente werden mehr oder weniger in der Reihenfolge zurückgegeben, in der die interne Hash-Funktion Elemente den Partitionen der Tabelle zuordnet, aber keine impliziten oder expliziten Bestellgarantien vorliegen.
Auch bei einem Sortierschlüssel wird die Reihenfolge nur innerhalb der Elemente desselben Partitionsschlüssels angegeben. Selbst wenn Sie also einen Bereichsschlüssel in der Tabelle hätten, würden Sie nur Abfragen Elemente für einen bestimmten Hash-Schlüssel zu einem Zeitpunkt.
Wenn Sie alle Elemente in einer Tabelle bestellen müssen, dann haben Sie ein paar Optionen: - scannen alle Daten und Ordnung auf dem Client - schaffen einen globalen Sekundärindex mit einem gemeinsamen Wert für Partitionsschlüssel für alle Artikel und Abfrage dass - entwerfen Sie eine komplementäre Speicherschicht, um Bestellung bereitzustellen
Es ist wichtig zu betonen, dass die ersten beiden Optionen nur für relativ kleine Tabellen gut sind. Sobald Sie etwa 10GB in der Tabelle erreichen, wird ein GSI mit einem gemeinsamen Schlüssel als ein bedeutender Flaschenhals wirken und natürlich wird das Scannen und Ordnen des gesamten Tisches ebenfalls problematisch.
- 1. Kann der DynamoDb-Bereichsschlüssel leer sein?
- 2. Exit Wenn kein perl pm verfügbar ist
- 3. CloudKit: Abfrageergebnisse nach Erstellungsdatum sortieren
- 4. C# ASP.NET: Wie kann auf den Cache zugegriffen werden, wenn kein HttpContext.Current verfügbar ist (ist null)?
- 5. App stürzt ab, wenn kein Internet verfügbar ist
- 6. DynamoDB am effizientesten Datumstyp
- 7. Wie Abfrageergebnisse mit mehreren Datetime?
- 8. Kein EJB-Empfänger für die Verarbeitung verfügbar
- 9. DynamoDB mit einem Hash-Schlüssel und einem Bereichsschlüssel mit Boto3 abfragen
- 10. Was ist der sauberste Weg, die Abfrageergebnisse von "Tabelle beschreiben" zu sortieren?
- 11. java.net.SocketException: Kein Pufferspeicher verfügbar
- 12. DnnamoDB Tabelle mit Hash-Taste und keine Bereichsschlüssel
- 13. Dynamodb - Check Duplikat auf Bereichstaste
- 14. Kein Heap-Speicher mehr verfügbar
- 15. kann kein Tastendruckereignis auslösen, wenn die Löschtaste
- 16. Wie die Abfrageergebnisse in gewünschtem Format
- 17. Wie zeige ich Inhalte, wenn Javascript nicht verfügbar ist, verstecke es, wenn Javascript verfügbar ist und flackere in keinem Fall?
- 18. TCP-Verbindungsfehler "Kein Pufferspeicher verfügbar"
- 19. SQL Query - wählen Sie 0, wenn kein Wert verfügbar
- 20. Eindeutigkeits in DynamoDB Sekundärindex
- 21. Fehler: kein geeigneter Standardkonstruktor verfügbar
- 22. Mongoid immer kein Server verfügbar ist passend Präferenz
- 23. Kein MediaTypeFormatter ist verfügbar ein Objekt vom Typ 'InventoryItem'
- 24. Kein Paket oracle-j2sdk1.7 verfügbar?
- 25. Kein Paket php-opcache verfügbar
- 26. Umleiten, wenn Sitzung nicht verfügbar ist node.js
- 27. Kein Paket php5-gmp verfügbar
- 28. Libgdx HTML-Projekt kompiliert nicht (Kein Quellcode ist verfügbar ...)
- 29. Kaskadierung: Tupel zusammenführen, wenn die Verbindung nicht verfügbar ist
- 30. DynamoDB DocumentClient ConditionExpression - Wenn Statement