Indexbasierte Abfragen und Sortierung - DynamoDBJava

Java-Forum
Anonymous
 Indexbasierte Abfragen und Sortierung - DynamoDB

Post by Anonymous »

Ich komme aus einem Android -Anwendungshintergrund. Ich erforsche DynamoDB und habe einen Kotlin -Server geschrieben und ihn mit DynamoDB verknüpft. Während ich erfolgreich Verbindung, Tabelle, Partitionschlüsse und Sortierschlüssel hergestellt habe, habe ich einige Probleme mit dem globalen Sekundärindex.

Code: Select all

title, release date, genres, min rating, max rating, tags.
< /code>
Ich möchte auch sortieren, < /p>
release date, rating.
Da in meiner Assets -Tabelle IMDB_ID als Partitionschlüssel festgelegt wird. Und ich verwende Sort-Schlüssel zum Speichern von Details (enthält alle wesentlichen Informationen (nicht von Key) wie Titel, Veröffentlichungsdatum, Bewertung, Beschreibung usw.) und Empfehlungen. Also habe ich in Terraform einen globalen Sekundärindex erstellt wie SO: < /p>
global_secondary_index {
name = "ReleaseDateIndex"
hash_key = "imdb_id"
range_key = "release_date"
projection_type = "INCLUDE"
non_key_attributes = [
"posters",
"title",
"release_date",
"tmdb_rating",
"mpaRating"
]
}
< /code>
Und wenn ich die Ergebnisse in meinem DynamoDB -Client wie so abfragen: < /p>
val index = table.index("ReleaseDateIndex")

val queryCondition = QueryConditional.keyEqualTo(
Key
.builder()
.partitionValue(
type,
)
.build()
)

val queryBuilder = QueryEnhancedRequest.builder()
.queryConditional(queryCondition)
.scanIndexForward(orderBy == "asc")
.limit(limit)

// Execute query
return index.query(
queryBuilder.build()
).flatMap { page ->
page.items()
}
< /code>
Ich erhalte doppelte Objekte in meinem Abfrageergebnis. Ich verstehe, warum, es liegt daran, dass alle Objekte mit unterschiedlichem Sortierschlüssel für Details und Empfehlungen SK zurückgegeben werden. Ich möchte jedoch nur Objekte mit SK = Details. Das erhöht den Leskosten, verwendet mehr RAM und verlangsamt die Gesamtzeit.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post