PERF04-BP01 Comprender las características de los datos - AWS Well-Architected Framework

PERF04-BP01 Comprender las características de los datos

Elija sus soluciones de administración de datos para que se ajusten de forma óptima a las características, los patrones de acceso y los requisitos de sus conjuntos de datos de carga de trabajo. A la hora de seleccionar e implementar una solución de administración de datos, debe asegurarse de que las características de consulta, escalado y almacenamiento admiten los requisitos de datos de la carga de trabajo. Obtenga información sobre cómo las distintas opciones de bases de datos se ajustan a sus modelos de datos y qué opciones de configuración son las mejores para su caso de uso. 

AWS proporciona numerosos motores de bases de datos personalizadas, entre los que se incluyen bases de datos relacionales, de valor clave, de documentos, en memoria, de gráficos, de serie temporal y de libro mayor. Cada solución de administración de datos tiene opciones y configuraciones a su disposición para admitir sus casos de uso y modelos de datos. Su carga de trabajo podría utilizar varias soluciones de bases de datos diferentes, en función de las características de los datos. Al seleccionar las mejores soluciones de bases de datos para un problema específico, puede prescindir de las bases de datos monolíticas, con el enfoque de solución única que resulta restrictiva, y centrarse en la administración de los datos para satisfacer las necesidades de su cliente.

Resultado deseado: Las características de datos de la carga de trabajo se documentan con suficiente detalle para facilitar la selección y la configuración de las soluciones de bases de datos de asistencia y proporcionan información sobre posibles alternativas.

Patrones de uso no recomendados comunes:

  • No considerar formas de segmentar grandes conjuntos de datos en colecciones más pequeñas de datos que tengan características similares, lo que hace que se pierdan oportunidades de utilizar bases de datos más personalizadas que se ajusten mejor a las características de los datos y del crecimiento.

  • No identificar los patrones de acceso a los datos por adelantado, lo que conduce a una costosa y compleja repetición posterior del trabajo.

  • Limitar el crecimiento mediante el uso de estrategias de almacenamiento de datos que no se escalan tan rápidamente como se necesita.

  • Elegir un tipo de base de datos y un proveedor para todas las cargas de trabajo.

  • Limitarse a una solución de base de datos porque se tiene experiencia y conocimiento interno de un tipo concreto de solución de base de datos.

  • Mantener una solución de base de datos porque funcionaba bien en un entorno local.

Beneficios de establecer esta práctica recomendada: familiarícese con todas las soluciones de bases de datos de AWS para poder determinar la solución de base de datos correcta para sus diversas cargas de trabajo. Después de seleccionar la solución de base de datos adecuada para su carga de trabajo, puede experimentar rápidamente con cada una de esas ofertas de bases de datos para determinar si siguen satisfaciendo sus necesidades de carga de trabajo.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: Alto

  • Es posible que no se identifique el ahorro potencial de costes.

  • Los datos pueden no estar protegidos en el nivel requerido.

  • Es posible que el acceso a los datos y el rendimiento del almacenamiento no sean óptimos.

Guía para la implementación

Defina las características de los datos y los patrones de acceso de su carga de trabajo. Revise todas las soluciones de bases de datos disponibles para identificar cuál es la que respalda sus necesidades de datos. En una carga de trabajo determinada, pueden seleccionarse varias bases de datos. Evalúe cada servicio o grupo de servicios y valórelos individualmente. Si se identifican posibles soluciones alternativas de administración de datos para una parte o la totalidad de los datos, experimente con las implementaciones alternativas que podrían desbloquear los beneficios de coste, seguridad, rendimiento y fiabilidad. Actualice la documentación existente, en caso de que se adopte un nuevo enfoque de administración de datos.

Tipo Servicios de AWS Características clave Casos de uso comunes
Relacionales Amazon RDS, Amazon Aurora Integridad referencial, transacciones ACID, esquema en escritura ERP, CRM, software comercial
De clave-valor Amazon DynamoDB Alto rendimiento, baja latencia, escalabilidad casi infinita Carros de la compra (comercio electrónico), catálogos de productos, aplicaciones de chat
Documento Amazon DocumentDB Almacenar documentos JSON y consultar sobre cualquier atributo Administración de contenidos (CMS), perfiles de clientes, aplicaciones móviles
En memoria Amazon ElastiCache, Amazon MemoryDB Latencia de microsegundos Caché, tablas de clasificación de juegos
Gráfico Amazon Neptune Datos muy relacionales en los que las relaciones entre los datos tienen significado Redes sociales, motores de personalización, detección de fraude
Serie temporal Amazon Timestream Datos en los que la dimensión principal es el tiempo DevOps, IoT, supervisión
Columnas anchas Amazon Keyspaces Cargas de trabajo de Cassandra. Mantenimiento de equipos industriales, optimización de enrutamiento
Libro mayor Amazon QLDB Libro mayor inmutable y criptográficamente verificable de los cambios Sistemas de registro, sanidad, cadenas de suministro, instituciones financieras

Pasos para la aplicación

  1. ¿Cómo están estructurados los datos? (por ejemplo, no estructurados, clave-valor, semiestructurados, relacionales)

    1. Si los datos no están estructurados, considere la posibilidad de usar un almacén de objetos como Amazon S3 o una base de datos NoSQL como Amazon DocumentDB.

    2. Para los datos de valor clave, considere la posibilidad de usar DynamoDB, ElastiCache para Redis o bien MemoryDB.

    3. Si los datos tienen una estructura relacional, ¿qué nivel de integridad referencial se requiere?

      1. Para las restricciones de clave externa, las bases de datos relacionales como Amazon RDS y Aurora pueden proporcionar este nivel de integridad.

      2. Normalmente, dentro de un modelo de datos NoSQL, se anularía la normalización de los datos en un único documento o colección de documentos para recuperarlos en una única solicitud en lugar de unirlos en diferentes documentos o tablas. 

  2. ¿Se requiere el cumplimiento de ACID (atomicidad, coherencia, aislamiento, durabilidad)?

    1. Si se requieren las propiedades ACID asociadas a las bases de datos relacionales, considere la posibilidad de usar una base de datos relacional como Amazon RDS y Aurora.

  3. ¿Qué modelo de coherencia se requiere?

    1. Si su aplicación puede tolerar una coherencia eventual, considere una implementación NoSQL. Revise las demás características como ayuda para elegir qué base de datos NoSQL es la más adecuada.

    2. Si se requiere una coherencia fuerte, puede utilizar lecturas con coherencia fuerte con DynamoDB o una base de datos relacional como Amazon RDS.

  4. ¿Qué formatos de consulta y de resultados se deben admitir? (por ejemplo, SQL, CSV, Parque, Avro, JSON, etc.)

  5. ¿Qué tipos de datos, tamaños de campo y cantidades globales hay? (por ejemplo, texto, numérico, espacial, serie temporal calculada, binario o blob, documento)

  6. ¿Cómo cambiarán las necesidades de almacenamiento con el tiempo? ¿Cómo afecta esto a la escalabilidad?

    1. Las bases de datos sin servidor, como DynamoDB y Amazon Quantum Ledger Database se escalarán dinámicamente hasta llegar a un almacenamiento casi ilimitado.

    2. Las bases de datos relacionales tienen límites máximos de almacenamiento aprovisionado y, a menudo, se deben hacer particiones horizontalmente mediante mecanismos como la fragmentación una vez que alcanzan estos límites.

  7. ¿Cuál es la proporción de consultas de lectura en relación con las de escritura? ¿Es probable que el almacenamiento en caché mejore el rendimiento?

    1. Las cargas de trabajo con mucha lecturas pueden beneficiarse de una capa de caché, que podría ser ElastiCache o bien DAX si la base de datos es DynamoDB.

    2. Las lecturas también pueden descargarse en réplicas de lectura con bases de datos relacionales como Amazon RDS.

  8. ¿Tiene mayor prioridad el almacenamiento y la modificación (OLTP, procesamiento de transacciones en línea) o la recuperación y la elaboración de informes (OLAP, procesamiento analítico en línea)?

    1. Para el procesamiento transaccional de alto rendimiento, considere una base de datos NoSQL como DynamoDB o Amazon DocumentDB.

    2. Para las consultas analíticas, considere una base de datos en columnas como Amazon Redshift o la exportación de los datos a Amazon S3 y la realización de análisis mediante Athena o bien QuickSight.

  9. ¿Qué grado de confidencialidad tienen estos datos y qué nivel de protección y cifrado requieren?

    1. Todos los motores Amazon RDS y Aurora admiten el cifrado de datos en reposo mediante AWS KMS. Microsoft SQL Server y Oracle también admiten el cifrado transparente de datos (TDE) nativo cuando se utiliza Amazon RDS.

    2. Para DynamoDB, puede utilizar el control de acceso detallado con IAM para controlar quién tiene acceso a determinados datos en el nivel de clave.

  10. ¿Qué nivel de durabilidad requieren los datos?

    1. Aurora replica automáticamente sus datos en tres zonas de disponibilidad en una región, lo que significa que sus datos son muy duraderos con menos posibilidades de pérdida.

    2. DynamoDB se replica automáticamente en varias zonas de disponibilidad, lo que proporciona alta disponibilidad y durabilidad de los datos.

    3. Amazon S3 proporciona 11 nueves de durabilidad. Muchos servicios de bases de datos, como Amazon RDS y DynamoDB, admiten la exportación de datos a Amazon S3 para la retención y el archivo a largo plazo.

  11. ¿Los requisitos de objetivo de tiempo de recuperación (RTO) u objetivo de punto de recuperación (RPO) influyen en la solución?

    1. Amazon RDS, Aurora, DynamoDB, Amazon DocumentDB y Neptune admiten la recuperación puntual y la copia de seguridad y restauración bajo demanda. 

    2. En el caso de los requisitos de alta disponibilidad, las tablas de DynamoDB se pueden replicar globalmente mediante la característica de tablas globales y los clústeres de Aurora pueden replicarse en varias regiones con la característica de base de datos global. Además, los buckets de S3 pueden replicarse entre Regiones de AWS mediante la replicación entre regiones. 

  12. ¿Existe el deseo de evitar los motores de bases de datos comerciales o costes de licencia?

    1. Considere la posibilidad de utilizar motores de código abierto como PostgreSQL y MySQL en Amazon RDS o Aurora

    2. Use AWS DMS y AWS SCT para realizar migraciones de los motores de bases de datos comerciales a los de código abierto

  13. ¿Cuál es la expectativa operativa de la base de datos? ¿El cambio a los servicios administrados es una preocupación principal?

    1. El uso de Amazon RDS en lugar de Amazon EC2 y DynamoDB o Amazon DocumentDB en lugar de alojar una base de datos NoSQL puede reducir la carga operativa.

  14. ¿Cómo se accede actualmente a la base de datos? ¿Se trata solo del acceso a la aplicación, o hay usuarios de inteligencia empresarial (BI) y otras aplicaciones comerciales conectadas?

    1. Si tiene dependencias de herramientas externas, es posible que deba mantener la compatibilidad con las bases de datos que soportan. Amazon RDS es completamente compatible con las diferentes versiones de motores que soporta, como Microsoft SQL Server, Oracle, MySQL y PostgreSQL.

  15. A continuación, se presenta una lista de posibles servicios de administración de datos y dónde pueden utilizarse mejor:

    1. Las bases de datos relacionales almacenan datos con esquemas predefinidos y relaciones entre ellos. Estas bases de datos se han diseñado para respaldar las transacciones ACID (atomicidad, coherencia, aislamiento, durabilidad) y mantener la integridad referencial y una coherencia fuerte de los datos. Muchas aplicaciones tradicionales, la planificación de recursos empresariales (ERP), la administración de las relaciones con los clientes (CRM) y el comercio electrónico utilizan bases de datos relacionales para almacenar sus datos. Puede ejecutar muchos de estos motores de bases de datos en Amazon EC2 o elegir uno de los servicios de base de datos gestionados por AWSAmazon AuroraAmazon RDSAmazon Redshift.

    2. Las bases de datos de clave-valor están optimizadas para patrones de acceso comunes, normalmente para almacenar y recuperar grandes volúmenes de datos. Estas bases de datos ofrecen tiempos de respuesta rápidos, incluso en volúmenes extremos de solicitudes simultáneas. Las aplicaciones web con mucho tráfico, los sistemas de comercio electrónico y las aplicaciones de juegos son casos de uso típicos para las bases de datos de clave-valor. En AWS, puede utilizar Amazon DynamoDB, una base de datos duradera, completamente administrada, multirregión y multimaestro, con seguridad integrada, copia de seguridad y restauración, y almacenamiento en memoria para aplicaciones a escala de Internet.

    3. Las bases de datos en memoria se utilizan para aplicaciones que requieren acceso a los datos en tiempo real, menor latencia y mayor rendimiento. Al almacenar los datos directamente en la memoria, estas bases de datos ofrecen una latencia de microsegundos a las aplicaciones en las que la latencia de milisegundos no es suficiente. Puede utilizar las bases de datos en memoria para el almacenamiento en caché de aplicaciones, la administración de sesiones, las tablas de clasificación de juegos y las aplicaciones geoespaciales. Amazon ElastiCache es un almacén de datos en memoria completamente administrado, compatible con Redis o bien Memcached. En el caso de que las aplicaciones también requieran una mayor durabilidad, Amazon MemoryDB para Redis ofrece esto además de ser un servicio de base de datos duradero y en memoria para ofrecer un rendimiento ultrarrápido.

    4. Una base de datos de documentos se ha diseñado para almacenar datos semiestructurados como documentos de tipo JSON. Estas bases de datos ayudan a los desarrolladores a crear y actualizar rápidamente aplicaciones como la administración de contenidos, catálogos y perfiles de usuario. Amazon DocumentDB es un servicio de base de datos de documentos escalable, de alta disponibilidad y completamente administrado que admite cargas de trabajo de MongoDB.

    5. Un almacén de columnas anchas es un tipo de base de datos NoSQL. Utiliza tablas, filas y columnas, pero, a diferencia de una base de datos relacional, los nombres y el formato de las columnas pueden variar de una fila a otra en la misma tabla. Por lo general, un almacén de columnas anchas está en aplicaciones industriales a gran escala para el mantenimiento de equipos, la administración de flotas y la optimización de rutas. Amazon Keyspaces (para Apache Cassandra) es un servicio de base de datos de columnas anchas compatible con Apache Cassandra, escalable, altamente disponible y administrado.

    6. Las bases de datos de grafos se utilizan para aplicaciones que deben navegar y consultar millones de relaciones entre conjuntos de datos de grafos con un alto grado de conexión y con una latencia de milisegundos a gran escala. Muchas empresas utilizan las bases de datos de grafos para la detección de fraude, redes sociales y motores de recomendaciones. Amazon Neptune es un servicio de base de datos de grafos de confianza y completamente administrado que facilita la creación y ejecución de aplicaciones que funcionan con conjuntos de datos con un nivel alto de conexión.

    7. Las bases de datos de serie temporal recopilan, sintetizan y obtienen información de forma eficaz a partir de datos que cambian con el tiempo. Las aplicaciones de IoT, DevOps y telemetría industrial pueden utilizar bases de datos de serie temporal. Amazon Timestream es un servicio de base de datos de serie temporal rápido, escalable y completamente administrado para aplicaciones operativas y de IoT que facilita el almacenamiento y el análisis de billones de eventos al día.

    8. Las bases de datos de libro mayor proporcionan una autoridad centralizada y de confianza para mantener un registro de transacciones escalable, inmutable y verificable criptográficamente para cada aplicación. Las bases de datos de libro mayor se utilizan para sistemas de registro, cadena de suministro, registros e incluso transacciones bancarias. Amazon Quantum Ledger Database (Amazon QLDB) es una base de datos de libro mayor completamente administrada que proporciona un registro de transacciones transparente, inmutable y criptográficamente verificable, propiedad de una autoridad central de confianza. Amazon QLDB realiza un seguimiento de cada cambio de datos de la aplicación y mantiene un historial completo y verificable de los cambios a lo largo del tiempo.

Nivel de esfuerzo para el plan de implementación: Si una carga de trabajo se desplaza de una solución de base de datos a otra, podría haber un nivel de esfuerzo alto implicado en la refactorización de los datos y la aplicación.  

Recursos

Documentos relacionados:

Vídeos relacionados:

Ejemplos relacionados: