Sie haben Recht, DynamoDB ist nicht als relationale Datenbank konzipiert und unterstützt keine Join-Vorgänge. Sie können sich DynamoDB als eine Gruppe von Schlüssel/Wert-Paaren vorstellen.
Sie können dieselben Schlüssel für mehrere Tabellen (z. B. document_IDs) verwenden, aber DynamoDB synchronisiert sie nicht automatisch oder verfügt über Fremdschlüsselfunktionen. Die document_IDs in einer Tabelle haben, obwohl sie den gleichen Namen haben, technisch eine andere Menge als die in einer anderen Tabelle. Es liegt an Ihrer Anwendungssoftware, sicherzustellen, dass diese Schlüssel synchronisiert werden.
DynamoDB ist eine andere Art und Weise über Datenbanken zu denken und Sie könnten mit einer verwalteten relationalen Datenbank wie Amazon Aurora betrachten wollen: https://aws.amazon.com/rds/aurora/
Eine Sache zu beachten, Amazon EMR erlaubt es DynamoDB Tabellen verknüpft werden, aber Ich bin mir nicht sicher, dass Sie das suchen: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html
Vielen Dank! Ein Join zu haben wäre eher eine Ausnahme als eine Designregel/Anforderung. Haben Sie irgendwelche Gedanken zu Leistung/Abrechnung/.. Strafen bei der Abfrage von Dokumenten nach einem und dann Beitritt auf der Anwendungsseite? Ich denke immer noch, dass DynamoDB in meinem Fall besser passt, aber ich weiß nicht, ob es einen signifikanten Nachteil für Ausnahmefälle wie diesen geben wird. – Centurion
@Centurion, wenn Sie Ihre document_id (oder eine ähnliche) vorher kennen, können Sie nur diesen zugehörigen Datensatz aus jeder Tabelle abrufen. Einen einzelnen Datensatz von jeder Tabelle zu bekommen, ist nicht teuer, und es scheint sehr vernünftig, sie zu verbinden. Die kostspieligen Dinge passieren, wenn Sie abfragen oder scannen müssen: DynamoDB berechnet für jeden in der Abfrage/Abfrage abgerufenen Datensatz Gebühren, selbst wenn Sie sie nicht tatsächlich an die Anwendung zurückgeben. Wann immer Sie abfragen oder scannen, bietet dies eine Gelegenheit, diese Operation genauer zu untersuchen, um die Abfrage/Überprüfung zu eliminieren. –