PERF03-BP01 Uso de un almacén de datos personalizado que se adapte mejor a los requisitos de acceso y almacenamiento de datos - Performance Efficiency Pillar

PERF03-BP01 Uso de un almacén de datos personalizado que se adapte mejor a los requisitos de acceso y almacenamiento de datos

Debe saber cuáles son las características de los datos (por ejemplo, si se pueden compartir, su tamaño, los patrones de acceso, la latencia, el rendimiento y su persistencia) para seleccionar los almacenes de datos personalizados acordes a su carga de trabajo (almacenamiento o base de datos).

Patrones comunes de uso no recomendados:

  • Utiliza exclusivamente un almacén de datos porque la experiencia y los conocimientos internos se limitan a un tipo concreto de solución de base de datos.

  • Presupone que todas las cargas de trabajo tienen unos requisitos similares en relación con el almacenamiento de datos y el acceso a la información.

  • No ha implementado un catálogo de datos para inventariar sus activos de datos.

Beneficios de establecer esta práctica recomendada: comprender las características y los requisitos de los datos le permite determinar la tecnología de almacenamiento más eficiente y funcional para las necesidades de su carga de trabajo.

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

Guía para la implementación

Al seleccionar e implementar el almacenamiento de datos, asegúrese de que las características de consulta, escalado y almacenamiento se ajusten a los requisitos de datos de la carga de trabajo. AWS ofrece un gran número de tecnologías de almacenamiento y bases de datos, como el almacenamiento en bloques, el almacenamiento de objetos, el almacenamiento en streaming, los sistemas de archivos, las bases de datos relacionales, las bases de datos de clave-valor, las bases de datos de documentos, las bases de datos en memoria, las bases de datos de grafos, las bases de datos de series temporales y las bases de datos de libro mayor. Cada solución de administración de datos tiene opciones y configuraciones a su disposición que se ajustan a los casos de uso y a los modelos de datos. Si conoce las características y los requisitos de los datos, puede dejar atrás la tecnología de almacenamiento monolítica y los enfoques restrictivos de “una misma cosa vale para todo”, y centrarse en gestionar correctamente los datos.

Pasos para la implementación

  • Haga un inventario de los distintos tipos de datos que existen en su carga de trabajo.

  • Estudie y documente las características y los requisitos de los datos, como:

    • Tipo de datos (no estructurados, semiestructurados o relacionales)

    • Volumen y crecimiento de los datos

    • Durabilidad de los datos: persistentes, efímeros o transitorios

    • Requisitos de ACID (atomicidad, consistencia, aislamiento, durabilidad)

    • Patrones de acceso a los datos (lectura o escritura intensivas)

    • Latencia

    • Rendimiento

    • IOPS (operaciones de entrada/salida por segundo)

    • Periodo de retención de datos

  • Obtenga información sobre los diferentes almacenes de datos (servicios de almacenamiento y base de datos) disponibles en AWS para su carga de trabajo que se ajustan a las características de los datos, tal y como se describe en PERF01-BP01 Descubrimiento y comprensión de los servicios y las características disponibles en la nube. Estos son algunos ejemplos de tecnologías de almacenamiento de AWS y sus principales características:

    Tipo Servicios de AWS Características clave
    Almacenamiento de objetos Amazon S3 Escalabilidad ilimitada, alta disponibilidad y múltiples opciones de accesibilidad. La transferencia y el acceso a objetos dentro y fuera de Amazon S3 puede utilizar un servicio, como Aceleración de transferencias o Puntos de acceso, para respaldar su ubicación, sus necesidades de seguridad y sus patrones de acceso.
    Almacenamiento de archivos Amazon S3 Glacier Diseñado para archivar datos.
    Almacenamiento en streaming

    Amazon Kinesis

    Amazon Managed Streaming para Apache Kafka (Amazon MSK)

    Ingesta y almacenamiento eficientes de datos de streaming.
    Sistema de archivos compartidos

    Amazon Elastic File System (Amazon EFS)

    Sistema de archivos montable al que pueden acceder varios tipos de soluciones de computación.

    Sistema de archivos compartidos Amazon FSx Se basa en las últimas soluciones de computación de AWS para admitir cuatro sistemas de archivos de uso común: NetApp ONTAP, OpenZFS, Windows File Server y Lustre. La latencia, el rendimiento y las E/S por segundo de Amazon FSx varían según el sistema de archivos y deben tenerse en cuenta a la hora de seleccionar el sistema de archivos adecuado para sus necesidades de carga de trabajo.
    Almacenamiento en bloque Amazon Elastic Block Store (Amazon EBS) Servicio de almacenamiento en bloque de alto rendimiento, escalable y fácil de usar diseñado para Amazon Elastic Compute Cloud (Amazon EC2). Amazon EBS incluye almacenamiento respaldado por SSD para cargas de trabajo transaccionales y de IOPS intensivas, así como almacenamiento respaldado por HDD para cargas de trabajo de rendimiento intensivo.
    Base de datos relacional Amazon AuroraAmazon RDSAmazon Redshift. Se han diseñado para respaldar las transacciones ACID (atomicidad, coherencia, aislamiento, durabilidad) y mantener la integridad referencial y una sólida coherencia de datos. Muchas aplicaciones tradicionales, la planificación de recursos empresariales (ERP), la administración de relaciones con los clientes (CRM) y el comercio electrónico utilizan bases de datos relacionales para almacenar sus datos.
    Base de datos de clave-valor Amazon DynamoDB Optimizada para patrones de acceso comunes, normalmente para almacenar y recuperar grandes volúmenes de datos. 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.
    Base de datos de documentos Amazon DocumentDB Diseñada para almacenar datos semiestructurados como documentos tipo JSON. Estas bases de datos ayudan a los desarrolladores a crear y actualizar de forma rápida aplicaciones como la administración de contenido, catálogos y perfiles de usuario. 
    Base de datos en memoria Amazon ElastiCache, Amazon MemoryDB para Redis Se utilizan para aplicaciones que requieren acceso a los datos en tiempo real, menor latencia y mayor rendimiento. Puede usar bases de datos en memoria para el almacenamiento en caché de aplicaciones, la administración de sesiones, las tablas de clasificación de juegos, el almacén de características de ML de baja latencia, el sistema de mensajería de microservicios y un mecanismo de streaming de alto rendimiento.
    Base de datos de gráficos Amazon Neptune Se utiliza 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 gráficos para detección de fraude, redes sociales y motores de recomendaciones.
    Base de datos de serie temporal Amazon Timestream Se usa para recopilar, sintetizar y obtener 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.
    Columna ancha Amazon Keyspaces (para Apache Cassandra) 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. 
    Libro mayor Amazon Quantum Ledger Database (Amazon QLDB) Proporciona 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, la cadena de suministro, registros e incluso transacciones bancarias.  
  • Si está creando una plataforma de datos, aproveche la arquitectura de datos moderna en AWS para integrar su lago de datos, su almacenamiento de datos y sus almacenes de datos personalizados.

  • Las principales preguntas que debe hacerse al elegir un almacén de datos para su carga de trabajo son las siguientes:

    Pregunta Aspectos que deben tenerse en cuenta
    ¿Cómo se estructuran los datos?
    ¿Qué nivel de integridad referencial se requiere?
    • Para las restricciones de claves externas, las bases de datos relacionales como Amazon RDS y Aurora pueden proporcionar este nivel de integridad.

    • Normalmente, en un modelo de datos NoSQL, los datos se desnormalizarían en un documento o una colección de documentos en lugar de combinarse en diferentes documentos o tablas, lo que permitiría recuperarlos en una única solicitud. 

    ¿Se requiere el cumplimiento de ACID (atomicidad, coherencia, aislamiento, durabilidad)?
    • Si se requiere cumplir 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.

    • Si se requiere una coherencia sólida para la base de datos NoSQL, puede utilizar lecturas altamente coherentes con DynamoDB.

    ¿Cómo cambiarán los requisitos de almacenamiento con el tiempo? ¿Cómo afecta esto a la escalabilidad?
    • Las bases de datos sin servidor, como DynamoDB y Amazon Quantum Ledger Database (Amazon QLDB), se escalarán de forma dinámica.

    • Las bases de datos relacionales tienen límites máximos de almacenamiento aprovisionado y, a menudo, cuando alcanzan estos límites, es necesario hacer particiones horizontales a través de diversos mecanismos, como el particionamiento.

    ¿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?
    • Las cargas de trabajo de lectura intensiva pueden beneficiarse de una capa de almacenamiento en caché, como ElastiCache o DAX si la base de datos es de DynamoDB.

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

    ¿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)?
    • Para el procesamiento transaccional de lecturas de alto rendimiento sin hacer cambios, considere la posibilidad de usar una base de datos NoSQL, como DynamoDB.

    • En el caso de los patrones de lectura complejos y de alto rendimiento (como una combinación) que tienen coherencia, use Amazon RDS.

    • Para las consultas analíticas, considere utilizar una base de datos en columnas como Amazon Redshift o exportar los datos a Amazon S3 y llevar a cabo análisis con Athena o Amazon QuickSight.

    ¿Qué nivel de durabilidad requieren los datos?
    • Aurora replica los datos automáticamente en tres zonas de disponibilidad de una región, lo que significa que los datos tendrán una gran durabilidad y menos posibilidades de sufrir pérdidas.

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

    • Amazon S3 proporciona un nivel de durabilidad de once nueves. Muchos servicios de bases de datos, como Amazon RDS y DynamoDB, permiten exportar datos a Amazon S3 para retenerlos y archivarlos durante largos periodos de tiempo.

    ¿Existe el deseo de evitar los motores de bases de datos comerciales o los costos de licencia?
    ¿Cuál es la expectativa operativa de la base de datos? ¿El cambio a los servicios administrados es una preocupación principal?
    • Si usa Amazon RDS en lugar de Amazon EC2 y utiliza DynamoDB o Amazon DocumentDB en lugar de alojar una base de datos NoSQL en sus propios sistemas, puede reducir los costos operativos.

    ¿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?
    • Si tiene dependencias en herramientas externas, es posible que deba mantener la compatibilidad con las bases de datos que admiten. Amazon RDS es totalmente compatible con las diferentes versiones de motores que admite, como Microsoft SQL Server, Oracle, MySQL y PostgreSQL.

  • Lleve a cabo experimentos y pruebas comparativas en un entorno que no sea de producción para identificar qué almacén de datos se ajusta a los requisitos de su carga de trabajo.

Recursos

Documentos relacionados:

Videos relacionados:

Ejemplos relacionados: