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 deComponentId
partición. -
Para encontrar los elementos secundarios inmediatos de un componente, cree un GSI donde
ParentId
esté la clave de partición yComponentId
sea la clave de clasificación. Puede consultar este GSI utilizándoloParentId
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 yPath
sea la clave de clasificación. Puede consultar este GSI medianteGraphId
como la clave de partición y el operadorBEGINS_WITH(Path, "$path")
en la clave de clasificación.
Clave de partición |
Clave de clasificación |
Mapeo de atributos |
|
Tabla base |
|
|
|
GSI1 |
|
|
|
GSI2 |
|
|
|
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 |