Esquema y mapeo de tablas RDBMS - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Esquema y mapeo de tablas RDBMS

En el siguiente diagrama, se muestran las tablas y las relaciones del esquema RDBMS de origen.

RDMS schema

Como se muestra en el diagrama anterior, la production_apps tabla tiene version columnas id y, que tienen una one-to-many relación con las tablas production_app_properties yproduction_app_configs. Por lo tanto, en el diseño de DynamoDB, production_app_properties las tablas production_app_configs y se incrustan dentro de, como se muestra en production_app item el siguiente código JSON. Como production_app_properties production_app_configs pueden tener varios valores, estas tablas se agregan como matrices en el código JSON. Las test_apps tablas changed_apps y se mapean de forma similar.

Mapping from RDMS schema to DynamoDB

Diseño de tabla única

DynamoDB no mantiene relaciones; admite un esquema de tabla fijo. Como resultado, puede almacenar distintos tipos de elementos (como tablas SQL) en una sola tabla de DynamoDB, con un atributo ItemType () que identifica el tipo de elemento.

En DynamoDB, la combinación de claves de partición (PK) y claves de clasificación (SK) debe ser única, por lo que estas claves varían según el tipo de elemento.

Single table design in DynamoDB

Índices secundarios globales

Los índices ayudan a recuperar los datos con mayor rapidez y a mejorar el rendimiento de las aplicaciones. Para la aplicación de ejemplo, se crearon los siguientes índices. Los PKs y SKs se eligieron en función de la forma en que se podían identificar los distintos elementos.

Nombre del índice Descripción Clave de partición (PK) Clave de clasificación (SK) Atributos proyectados
Version-index Obtiene todas las aplicaciones de producción de una determinada. version version id, name
Release-index Obtiene todas las aplicaciones de prueba de una determinadarelease-id. release-id id, name
Change-index Obtiene todas las aplicaciones (modificadas) asociadas a unchange-id. change-id id, modified-by, date