Persistencia políglota debe ser el término más feo que se nos haya ocurrido en la industria de TI. Significa que se utilizan diferentes tecnologías de persistencia (tecnologías de almacenamiento de datos de lectura) para almacenar datos. Por ejemplo, cuando una organización ha distribuido datos sobre bases de datos de Oracle, Hadoop, MongoDB, DB2 y Riak, operan en un entorno persistente políglota.
Durante mucho tiempo, el objetivo de muchos departamentos de TI fue evitar la persistencia políglota y tener el mismo servidor de base de datos predeterminado para almacenar la mayoría de los datos. Esto tuvo varios beneficios prácticos relacionados con los costos de administración, derechos de licencia, costos de capacitación, etc.
El auge de los productos NoSQL, como MongoDB, Apache HBase, Cassandra, ha cambiado nuestras opiniones. Estos productos se han vuelto tan exitosos porque pueden alcanzar niveles de transacción u ofrecer velocidades de procesamiento analítico que la mayoría de los productos SQL no pueden igualar, y porque sus costos los hacen muy atractivos.
Sin embargo, la mayoría de ellos no son servidores de bases de datos genéricos que puedan utilizarse para cualquier tipo de aplicación. Son lo que podríamos llamar servidores de bases de datos especializados. Por ejemplo, MongoDB es muy sólido en transacciones, pero no es ideal para realizar análisis complejos, y Hadoop HDFS con MapReduce es excelente para análisis, pero no es bueno para informes interactivos. Es esta especialización la que los hace sobresalir en algunas áreas de aplicación.
Es debido a su relación precio / rendimiento que las organizaciones los adquieren, pero solo para un número limitado de aplicaciones. Por ejemplo, MongoDB se puede usar para admitir una aplicación web altamente interactiva, Hadoop se puede usar para descargar algunos de los datos fríos almacenados en un almacén de datos basado en SQL y MarkLogic se usa para almacenar y analizar más información textual.
El resultado de este enfoque es claro: una organización termina con un entorno persistente políglota.
Entonces, eventualmente, la persistencia políglota tiene un precio. Múltiples productos de almacenamiento de datos significan múltiples habilidades de desarrollador, múltiples habilidades de DBA y múltiples habilidades de analista. El programador tiene que aprender nuevos lenguajes y API, el DBA tiene que aprender nuevas utilidades de respaldo / recuperación, nuevas técnicas de optimización, y el analista tiene que estudiar los nuevos conceptos de bases de datos y cómo modelarlos mejor.
Pero todos sabemos que, eventualmente, todos esos datos tienen que unirse, deben integrarse. Incluso cuando los datos producidos por una aplicación inicialmente solo los usa una aplicación, eventualmente los datos son necesarios para otras aplicaciones y otros usuarios. Por ejemplo, es posible que los datos deban integrarse con fines analíticos, o que se utilicen en aplicaciones operativas, o que se necesiten para crear vistas de 360 grados de clientes o productos. Las bases de datos nunca terminan siendo islas. Las aplicaciones pueden aparecer y desaparecer, pero los datos siempre permanecen y, con el tiempo, deben admitir un conjunto de aplicaciones en constante cambio.
Existen tecnologías para integrar datos de diferentes tecnologías de almacenamiento de datos, como la virtualización de datos, ETL y ESB. Los requisitos de integración determinan cuál es el mejor. Es importante que cuando las organizaciones tengan la intención de invertir en un entorno persistente políglota, su estudio no debe limitarse a los costos de instalación y operación de ese nuevo producto, sino que debe incluir una evaluación de los costos futuros algo ocultos involucrados en la integración de datos almacenados en un políglota. ambiente persistente. En otras palabras, además de considerar los requisitos actuales de una aplicación, también se incluyen los requisitos de integración futuros. ¿Qué se necesita para integrar los datos almacenados en esta nueva tecnología de almacenamiento de datos con el entorno existente?