Modelado de datos para tablas de DynamoDB - Amazon DynamoDB

Modelado de datos para tablas de DynamoDB

Antes de profundizar en el modelado de datos, es importante comprender algunos fundamentos de DynamoDB. DynamoDB es una base de datos NoSQL de clave-valor que permite esquemas flexibles. El conjunto de atributos de los datos, aparte de los atributos clave de cada elemento, puede ser uniforme o discreto. El esquema de claves de DynamoDB tiene la forma de una clave principal simple en la que una clave de partición identifica de forma exclusiva un elemento o la forma de una clave primaria compuesta en la que una combinación de una clave de partición y una clave de clasificación define de forma exclusiva un elemento. Se crea un hash de la clave de partición para determinar la ubicación física de los datos y recuperarlos. Por lo tanto, es importante elegir un atributo de alta cardinalidad y escalable horizontalmente como clave de partición para garantizar una distribución uniforme de los datos. El atributo de clave de clasificación es opcional en el esquema de claves y disponer de una clave de clasificación permite modelar relaciones de uno a varios y crear colecciones de elementos en DynamoDB. Además, las claves de clasificación también se denominan claves de intervalo: se utilizan para clasificar elementos de una colección de elementos y también permiten realizar operaciones flexibles basadas en intervalos.

Para obtener más detalles y las prácticas recomendadas acerca del esquema de claves de DynamoDB, puede consultar lo siguiente:

Los índices secundarios suelen ser necesarios para admitir patrones de consulta adicionales en DynamoDB. Los índices secundarios son tablas sombra en las que los mismos datos se organizan mediante un esquema de claves distinto al de la tabla base. Un índice secundario local (LSI) comparte la misma clave de partición que la tabla base y permite tener una clave de clasificación alternativa con la que puede compartir la capacidad de la tabla base. Un índice secundario global (GSI) puede tener una clave de partición y un atributo de clave de clasificación diferentes a los de la tabla base, lo que significa que la administración del rendimiento de un GSI es independiente de la tabla base.

Para obtener más detalles sobre los índices secundarios y las prácticas recomendadas, puede consultar lo siguiente:

Analicemos ahora el modelado de datos un poco más. El proceso de diseñar un esquema flexible y altamente optimizado en DynamoDB, o en cualquier base de datos NoSQL, puede ser una habilidad difícil de aprender. El objetivo de este módulo es ayudarlo a desarrollar un diagrama de flujo mental para diseñar un esquema que lo lleve del caso de uso a la producción. Empezaremos con una introducción a la elección fundamental de cualquier diseño: diseño de tabla única frente a diseño de tabla múltiple. A continuación, revisaremos la multitud de patrones de diseño (componentes) que se pueden utilizar para lograr diversos resultados organizativos o de rendimiento para la aplicación. Por último, incluimos una variedad de paquetes completos de diseño de esquemas para diferentes casos de uso y sectores.

Imagen que muestra la relación conceptual entre los datos, los bloques que se encuentran debajo de ellos y, a continuación, la base que se encuentra debajo de los bloques.