Paso 5: Crear un modelo de datos de DynamoDB - 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.

Paso 5: Crear un modelo de datos de DynamoDB

Defina las claves de partición para la tabla base y los índices secundarios globales ()GSIs:

  • Siguiendo las prácticas recomendadas de diseño de claves, ComponentId utilícelas como clave de partición para la tabla base en este ejemplo. Como es único, ComponentId puede ofrecer granularidad. DynamoDB utiliza el valor hash de la clave de partición para determinar la partición en la que se almacenan los datos de forma física. El ID de componente único genera un valor hash diferente, lo que puede facilitar la distribución de los datos dentro de la tabla. Puede consultar la tabla base mediante una clave de ComponentId partición.

  • Para encontrar los elementos secundarios inmediatos de un componente, cree un GSI donde ParentId esté la clave de partición y ComponentId sea la clave de clasificación. Puede consultar este GSI utilizándolo ParentId como clave de partición.

  • Para encontrar todos los secundarios recursivos de un componente, cree un GSI donde GraphId sea la clave de partición y Path sea la clave de clasificación. Puede consultar este GSI mediante GraphId como la clave de partición y el operador BEGINS_WITH(Path, "$path") en la clave de clasificación.

Clave de partición

Clave de clasificación

Mapeo de atributos

Tabla base

ComponentId

ParentId, GraphId, Path

GSI1

ParentId

ComponentId

GSI2

GraphId

Path

ComponentId

Almacenamiento de componentes en la tabla

El siguiente paso consiste en almacenar cada componente en la tabla base de DynamoDB. Tras insertar todos los componentes del árbol de ejemplo, se obtiene la siguiente tabla base.

ComponentId

ParentId

GraphId

Ruta

 

CM1

 

CM1#1

 

CM1

 

CM2

 

CM1

 

CM1#1

 

CM1|CM2

 

CM3

 

CM1

 

CM1#1

 

CM1|CM3

 

CM4

 

CM2

 

CM1#1

 

CM1|CM2|CM4

 

CM5

 

CM2

 

CM1#1

 

CM1|CM2|CM5

 

CM6

 

CM3

 

CM1#1

 

CM1|CM3|CM6

 

CM7

 

CM3

 

CM1#1

 

CM1|CM3|CM7

 

CM8

 

CM4

 

CM1#1

 

CM1|CM2|CM4|CM8

 

CM9

 

CM4

 

CM1#1

 

CM1|CM2|CM4|CM9

 

0 CM1

 

CM5

 

CM1#1

 

CM1| CM2 | CM5 | CM1 0

El GSI1 índice

Para comprobar todos los elementos secundarios inmediatos de un componente, cree un índice que se utilice ParentId como clave de partición y ComponentId como clave de clasificación. La siguiente tabla dinámica representa el GSI1 índice. Puede utilizar este índice para recuperar todos los componentes secundarios inmediatos mediante un ID de componente principal. Por ejemplo, puede averiguar cuántas baterías hay disponibles en un automóvil (CM1) o qué celdas hay disponibles en un módulo (CM4).

ParentId

ComponentId

CM1

CM2

CM3

CM2

CM4

CM5

CM3

CM6

CM7

CM4

CM8

CM9

CM5

0 CM1

El GSI2 índice

La siguiente tabla dinámica representa el GSI2 índice. Se configura mediante GraphId como clave de partición y Path como clave de clasificación. Si utiliza GraphI d y la begins_with operación de la tecla de clasificación (Path), puede encontrar el linaje completo de un componente en un árbol.

GraphId

Ruta

ComponentId

CM1#1

CM1

CM1|CM2

CM1|CM3

CM1|CM2|CM4

CM1|CM2|CM5

CM1|CM2|CM4|CM8

CM1|CM2|CM4|CM9

CM1| CM2 | CM5 | CM1 0

CM1|CM3|CM6

CM1|CM3|CM7

CM1

CM2

CM3

CM4

CM5

CM8

CM9

0 CM1

CM6

CM7