Solución:
Tiene razón, DynamoDB no está diseñado como una base de datos relacional y no admite operaciones de unión. Puede pensar en DynamoDB simplemente como un conjunto de pares clave-valor.
Puede tener las mismas claves en varias tablas (por ejemplo, ID_de_documento), pero DynamoDB no las sincroniza automáticamente ni tiene funciones de clave externa. Los document_ID en una tabla, aunque tienen el mismo nombre, son técnicamente un conjunto diferente a los de una tabla diferente. Depende de su software de aplicación asegurarse de que esas claves estén sincronizadas.
DynamoDB es una forma diferente de pensar sobre las bases de datos y es posible que desee considerar el uso de una base de datos relacional administrada como Amazon Aurora: https://aws.amazon.com/rds/aurora/
Una cosa a tener en cuenta, Amazon EMR permite unir tablas de DynamoDB, pero no estoy seguro de que sea eso lo que está buscando: http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/EMRforDynamoDB.html
Con DynamoDB, en lugar de unirse, creo que la mejor solución es almacenar los datos en la forma que desea leer más adelante.
Si necesita consultas de lectura complejas, es posible que haya caído en la trampa de esperar que DynamoDB se comporte como un RDBMS, lo cual no es así. Transforme y dé forma a los datos que escribe, mantenga la lectura simple.
El disco es mucho más barato que la informática en estos días, no tenga miedo de desnormalizar.
Debe consultar la primera tabla, luego iterar a través de cada elemento con una solicitud de obtención en la siguiente tabla.
Las otras respuestas no son satisfactorias ya que 1) no responde la pregunta y, lo que es más importante, 2) ¿cómo puede diseñar sus tablas antes de conocer su aplicación futura? La deuda técnica es demasiado alta para cubrir razonablemente posibilidades futuras ilimitadas.
Mi respuesta es terriblemente ineficaz, pero esta es la única solución actual a la pregunta planteada.
Espero ansiosamente una mejor respuesta.