El mundo se ha vuelto “sensorizado”.
Los sensores en todo, incluidos automóviles, maquinaria de fábrica, motores de turbina y naves espaciales, recopilan continuamente datos que los desarrolladores aprovechan para optimizar la eficiencia y alimentar los sistemas de inteligencia artificial. Por lo tanto, no sorprende que las series temporales (el tipo de datos que recopilan estos sensores) sean una de las de más rápido crecimiento. categorías de bases de datos en los últimos cinco años o más.
Sin embargo, las bases de datos relacionales siguen siendo, con diferencia, el tipo de base de datos más utilizado. Las bases de datos vectoriales también han visto un aumento en el uso gracias al ascenso de IA generativa y grandes modelos de lenguaje (LLM). Con tantas opciones disponibles para las organizaciones, ¿cómo seleccionan la base de datos adecuada para satisfacer sus necesidades comerciales?
Aquí, examinaremos qué hace que las bases de datos funcionen de manera diferente, los factores de diseño clave que se deben buscar y cuándo los desarrolladores deben usar bases de datos especializadas para sus aplicaciones.
Comprender las compensaciones para maximizar el rendimiento de la base de datos
Para empezar, es importante comprender que no existe una fórmula única que garantice la superioridad de la base de datos. Elegir una base de datos implica equilibrar cuidadosamente las compensaciones en función de requisitos y casos de uso específicos. Comprender sus pros y sus contras es crucial. Un excelente punto de partida para los desarrolladores es explorar el teorema CAPque explica las compensaciones entre coherencia, disponibilidad y tolerancia de partición.
Por ejemplo, la aparición de Bases de datos NoSQL generó un gran revuelo en torno a la escalabilidad, pero esa escalabilidad a menudo se produjo a expensas de renunciar a las garantías de coherencia de los datos que ofrecen las bases de datos relacionales tradicionales.
Algunas consideraciones de diseño que afectan significativamente el rendimiento de la base de datos incluyen:
- Formato de almacenamiento: La organización y el formato de almacenamiento de los datos en los discos duros influyen en gran medida en el rendimiento. Con un número cada vez mayor de empresas que almacenan grandes volúmenes de datos para cargas de trabajo analíticas, la adopción de formatos basados en columnas como Parquet apache Esta en lo alto.
- Compresión de datos: La elección de los algoritmos de compresión afecta directamente los costos de almacenamiento y el rendimiento de las consultas. Algunos algoritmos priorizan minimizar el tamaño de los datos, mientras que otros priorizan una descompresión más rápida, mejorando el rendimiento de las consultas.
- Estructura de datos del índice: El mecanismo de indexación utilizado por una base de datos es fundamental para lograr el máximo rendimiento. Mientras que los índices primarios ayudan al motor de almacenamiento, los índices secundarios definidos por el usuario mejoran el rendimiento de lectura, aunque también podrían introducir una sobrecarga adicional para escribir nuevos datos.
- Almacenamiento en caliente versus en frío: Los sistemas de bases de datos modernos facilitan el movimiento de datos entre un almacenamiento “caliente” más rápido y costoso y un almacenamiento “frío” más lento y económico. Este enfoque por niveles optimiza el rendimiento de los datos a los que se accede con frecuencia y al mismo tiempo economiza los costos de almacenamiento de los datos que se utilizan con menos frecuencia.
- Recuperación de desastres: Los mecanismos de recuperación ante desastres presentes en una arquitectura de base de datos influyen inherentemente en el rendimiento. Si bien las sólidas funciones de recuperación ante desastres mejoran la seguridad de los datos, también podrían generar una sobrecarga de rendimiento. Para casos de uso que no son de misión crítica, las bases de datos pueden intercambiar ciertas garantías de seguridad por un mejor rendimiento.
Estos y otros factores dan forma colectivamente al rendimiento de la base de datos. La manipulación estratégica de estas variables permite a los equipos adaptar las bases de datos para cumplir con los requisitos de desempeño específicos de la organización. Sacrificar ciertas características se vuelve viable para un escenario determinado, lo que crea una optimización del rendimiento ajustada.
Consideraciones clave sobre bases de datos especializadas
Seleccionar la base de datos adecuada para su aplicación implica sopesar varios factores críticos. Hay tres consideraciones principales que los desarrolladores deben tener en cuenta al tomar una decisión.
Tendencias en el acceso a los datos
El principal determinante a la hora de elegir una base de datos es comprender cómo se accederá y utilizará los datos de una aplicación. Un buen punto de partida es clasificar las cargas de trabajo como procesamiento analítico en línea (OLAP) o procesamiento de transacciones en línea (OLTP). Las cargas de trabajo OLTP, tradicionalmente manejadas por bases de datos relacionales, implican el procesamiento de una gran cantidad de transacciones por parte de una gran cantidad de usuarios simultáneos. Las cargas de trabajo OLAP se centran en el análisis y tienen patrones de acceso distintos en comparación con las cargas de trabajo OLTP. Además, mientras que las bases de datos OLTP funcionan con filas, las consultas OLAP a menudo implican acceso selectivo a columnas para los cálculos. Los almacenes de datos suelen aprovechar las bases de datos orientadas a columnas por sus ventajas de rendimiento.
El siguiente paso es considerar factores como los requisitos de latencia de consultas y la frecuencia de escritura de datos. Para las necesidades de consultas casi en tiempo real, en particular para tareas como la supervisión, las organizaciones podrían considerar bases de datos de series temporales diseñadas para un alto rendimiento de escritura y capacidades de consulta de baja latencia.
Alternativamente, para cargas de trabajo OLTP, la mejor opción suele ser entre bases de datos relacionales y bases de datos de documentos, según los requisitos del modelo de datos. Los equipos deben evaluar si necesitan la flexibilidad del esquema de las bases de datos de documentos NoSQL o prefieren las garantías de coherencia de las bases de datos relacionales.
Por último, una consideración crucial es evaluar si una carga de trabajo muestra patrones consistentes o muy activos a lo largo del día. En este escenario, suele ser mejor optar por bases de datos que ofrezcan soluciones de hardware escalables para adaptarse a cargas de trabajo fluctuantes sin incurrir en tiempo de inactividad ni costos de hardware innecesarios.
Conocimiento tribal existente
Otra consideración a la hora de seleccionar una base de datos es la experiencia existente del equipo interno. Evalúe si los beneficios de adoptar una base de datos especializada justifican invertir en educar y capacitar al equipo y si aparecerán posibles pérdidas de productividad durante la fase de aprendizaje. Si la optimización del rendimiento no es fundamental, puede ser suficiente utilizar la base de datos con la que su equipo esté más familiarizado. Sin embargo, para aplicaciones críticas para el rendimiento, puede valer la pena adoptar una nueva base de datos a pesar de los desafíos y contratiempos iniciales.
Sofisticación arquitectónica
Mantener la simplicidad arquitectónica en el diseño de software es siempre un objetivo. Los beneficios de una base de datos especializada deberían superar la complejidad adicional que introduce la integración de un nuevo componente de base de datos en el sistema. La adición de una nueva base de datos para un subconjunto de datos debería justificarse por mejoras de rendimiento significativas y tangibles, especialmente si la base de datos principal ya cumple con la mayoría de los demás requisitos.
Al evaluar cuidadosamente estos factores, los desarrolladores pueden tomar decisiones educadas e informadas al seleccionar una base de datos que se alinee con los requisitos de su aplicación, la experiencia del equipo y las consideraciones arquitectónicas, optimizando en última instancia el rendimiento y la eficiencia de sus soluciones de software.
Optimización para aplicaciones de IoT
Los entornos de IoT tienen características y demandas distintas para implementar bases de datos. Específicamente, las implementaciones de IoT deben garantizar un funcionamiento perfecto tanto en el borde como en la nube. A continuación se ofrece una descripción general de los requisitos de las bases de datos en estos dos contextos críticos.
Requisitos para servidores perimetrales
El borde Es donde los datos se generan y procesan localmente antes de su transmisión al nube. Para ello, las bases de datos deben manejar la ingesta, el procesamiento y el análisis de datos a un nivel altamente eficiente, lo que requiere dos cosas:
- Alta tasa de ingesta: Los servidores perimetrales deben admitir capacidades de escritura rápida para los enormes flujos de datos producidos por los sensores de IoT sin pérdidas, incluso cuando experimentan latencia. De manera similar, las bases de datos deben manejar ráfagas de datos y al mismo tiempo mantener la ingesta en tiempo real para evitar la pérdida de datos.
- Lecturas y análisis rápidos: Las bases de datos en el borde también requieren capacidades de lectura rápida y herramientas analíticas. El procesamiento de datos local permite la toma de decisiones en tiempo real, que se optimiza mediante bases de datos con funcionalidades de análisis integradas para transformar, clasificar y agregar datos de sensores.
Requisitos para centros de datos en la nube
En los centros de datos en la nube, las bases de datos desempeñan un papel crucial en la recopilación, transformación y análisis de datos agregados desde servidores perimetrales. Los requisitos clave incluyen:
- Comandos de análisis: Los sistemas de gestión de bases de datos deben incorporar comandos de análisis integrados para agilizar el procesamiento y análisis de datos, minimizando la complejidad operativa y los gastos generales.
- Políticas de reducción de resolución y retención: La implementación de técnicas de reducción de resolución y políticas de retención ayuda a gestionar de manera eficiente los datos históricos. La reducción de resolución garantiza que los datos de alta precisión se conserven durante períodos cortos, mientras que los datos menos precisos se almacenan para capturar tendencias a más largo plazo. Las políticas de retención de datos automatizadas facilitan la eliminación oportuna de datos, optimizando la utilización del almacenamiento.
- Motor de visualización: Un motor de visualización robusto es crucial para monitorear el estado del sistema de IoT. Puede proporcionar información sobre el rendimiento del sistema, ayudando a los equipos a tomar decisiones informadas basadas en la visualización de datos en tiempo real.
- Mecanismo de publicación y suscripción: Una capacidad eficiente de publicación y suscripción permite una comunicación y un intercambio de datos fluidos entre los dispositivos perimetrales y la nube, lo que garantiza la integridad de los datos y las actualizaciones oportunas.
Debido a que el panorama de las bases de datos evoluciona rápidamente, los desarrolladores deben mantenerse informados sobre las últimas tendencias y tecnologías. Si bien es confiable apegarse a bases de datos conocidas, explorar opciones especializadas puede ofrecer ventajas que incluyen ahorro de costos, mejor rendimiento del usuario, escalabilidad y mayor eficiencia del desarrollador.
En última instancia, equilibrar los requisitos comerciales, las necesidades de almacenamiento, el conocimiento interno y (como siempre) las restricciones presupuestarias de la organización brinda a los equipos la mejor oportunidad de éxito a largo plazo.
Anais Dotis-Georgiou es defensora principal de desarrolladores en Afluencia de datos.
—
New Tech Forum ofrece un lugar para que los líderes tecnológicos, incluidos proveedores y otros contribuyentes externos, exploren y debatan la tecnología empresarial emergente con una profundidad y amplitud sin precedentes. La selección es subjetiva y se basa en nuestra elección de las tecnologías que creemos que son importantes y de mayor interés para los lectores de InfoWorld. InfoWorld no acepta garantías de marketing para su publicación y se reserva el derecho de editar todo el contenido aportado. Envia todo consultas a doug_dineley@foundryco.com.
Copyright © 2024 IDG Communications, Inc.