1.4. Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Computación GPU
Hace mucho tiempo, las tarjetas de video se construían para dibujar escenas elaboradas para los juegos de niños, pero ahora las llamadas unidades de procesamiento de gráficos están haciendo mucho procesamiento no gráfico. La búsqueda a través de datos es solo una de las mejores operaciones no gráficas que deben abordar. Y ¿por qué no? Abrirse paso entre las interminables pilas de datos buscando una pareja, es una operación inherentemente paralela hecha de muchos trabajos rudimentarios (probando la igualdad) repetidos millones de veces. Por lo tanto, es bastante sencillo pasar el trabajo a los miles de procesadores en el GPU.
Las mayores victorias no están en responder cada consulta (que obviamente son mucho más rápidas), sino en el trabajo de preparación, porque hay poca necesidad de pre procesamiento. Muchas bases de datos ahorran tiempo manteniendo un índice, que es efectivamente un resultado precalculado de cada búsqueda posible. Si este índice es destruido o dañado, reconstruirlo puede tardar horas, días o incluso meses. Sin embargo, si los datos pueden caber dentro de la memoria del GPU, por lo general podrá seguir sin el índice. Si los datos están cambiando rápidamente y la mayor parte del índice no se utiliza nunca, saltarse el pre procesamiento puede ser muy eficaz.
Memoria no volátil (NVRAM)
Los programadores novatos hace cincuenta años la tenían fácil. No tenían que hacer malabares con los datos entre la RAM y el disco con protocolos elaborados para asegurar la consistencia. Eso se debe a que la memoria en ese entonces tenía núcleo de hierro, y no se borraba cuando se apagaba la energía. Esos buenos tiempos podrían regresar pronto, porque los fabricantes de chips están discutiendo para reemplazar la RAM con NVRAM o memoria no volátil.
Este es un gran cambio de juego para los programadores de bases de datos, porque uno de sus mayores desafíos (e incluso su mayor razón para vivir) está desapareciendo. Algunos sugieren que las bases de datos pueden ser mucho más rápidas, porque la semántica de las transacciones puede ser más sencilla. Otros tienen la idea de construir el registro de recuperación después de que los datos sean escritos en los medios, no antes.
Nadie sabe qué pasará. ¿La gente seguirá una base de datos, aunque no necesiten un registro permanente o la búsqueda y la indexación los hará volver? Todos los algoritmos y arquitecturas tienen que ser repensadas. Sabremos la mejor manera de usar NVRAM en una década aproximadamente.
Amplíe SQL
Cuando el movimiento de NoSQL comenzó, una de las principales características era la capacidad de dispersar el almacenamiento de sus datos a través de múltiples nodos. Las bases de datos NoSQL como Cassandra y MongoDB hicieron parecer que conseguir todas las lindas características del almacenamiento de gran escala significaba abandonar el cómodo mundo de SQL.
En la realidad no necesita haber una compensación. Aunque los primeros experimentos de bases de datos de gran escala eran fáciles de crear porque dejaban atrás todo el bagaje de SQL, no hay razón por la cual éste no pueda funcionar bien en múltiples máquinas operando a gran escala. De hecho, empresas como Oracle han venido haciéndolo por años.
Las nuevas bases de datos a gran escala le permiten usar todo su conocimiento y conveniencia de SQL con un conjunto de datos distribuidos en un gran clúster. CockroachDB, por ejemplo, ofrece un motor de consulta SQL estándar que tiene acceso a los datos replicados en múltiples nodos, todos con garantías de ACID. Sí, pagará por algunos de estos apoyos para la coherencia de los datos, pero tal vez menos de lo que esperaba.
Bases de datos geoespaciales
Las bases de datos tradicionales están hechas para conjuntos de datos unidimensionales, no las dos coordenadas dimensionales de la geografía. Puede falsificarlo y usar una base de datos estándar para realizar tareas básicas con coordenadas geográficas. Si pega la latitud y longitud en columnas separadas, no es difícil buscar las filas que caen dentro de un cuadro definido por un rango de latitudes y longitudes. Sin embargo, una vez que quiera ir más allá, las consultas SQL estándar no serán efectivas.
Las bases de datos geoespaciales añaden algunas funciones adicionales que hacen que la búsqueda, clasificación e intersección sean mucho más fáciles en el espacio bidimensional. Los índices espaciales, por ejemplo, usualmente funcionan añadiendo una cuadrícula encima del espacio de coordenadas para hacer que sea mucho más rápido buscar las filas adyacentes en mundos bidimensionales y tridimensionales.
Estos índices hacen posible escribir consultas con operaciones como “contener”, “superponer”, e incluso “tocar” con conjuntos definidos por polígonos. Todo esto hace que el razonamiento sobre el mundo real sea mucho más eficiente.
Bases de datos gráficas
Las tablas son un buen repositorio para muchas estructuras de datos, pero no hacen un muy buen trabajo al momento de modelar una gran estructura de datos emergentes que ha impulsado los últimos diez años de evolución de la Internet: la red. A medida que el llamado “gráfico social” explota, estamos llenando nuestra computadora con más y más nodos con enlaces entre ellos, y las conexiones entre estos son a menudo más importantes que los datos en ellos. De hecho, almacenar y recuperar un enlace entre un par de nodos es fácil de hacer en una base de datos relacional clásica, pero las consultas más complicadas se hacen imposibles. ¿Bob está a dos o tres pasos de Chris en la red de amistad? ¿Mary está saliendo con el ex de una de sus amigas?
Las bases de datos gráficas hacen que consultas como estas sean más fáciles de ejecutar. No hay una búsqueda sin fin de tablas porque la consulta sabe cómo buscar en el barrio especificado por los enlaces. Herramientas como Neo4J, OrientDB, y DataStax son solo algunas de las pocas opciones que pueden ser contadas con los dedos de las manos y de los pies. Estas tienen sus propios lenguajes de consulta también.
Bases de datos en la nube
Uno de los principales cambios radica en la forma en la que compramos el software de base de datos. En el pasado, comprábamos nuestras propias máquinas y firmábamos acuerdos de licencia para ejecutar el software en ellas. Ahora las empresas de nube están ofreciendo servicios que almacenan blobs de datos en algún lugar que no podemos ni ver ni tocar. Lo único que nos dicen es que los datos van a estar ahí para cuando los queramos.
Las ventajas son evidentes. No hay necesidad de mantener el servidor que la sostiene ni de preocuparse por la concesión de licencias, la configuración o instalación de parches. Otro se ocupa de todo ese quebradero de cabeza. La solución es más barata también -especialmente si no tiene una tonelada de datos que almacenar. Los servicios generalmente cobran por byte.
Sin embargo, los peligros, si es que hay alguno, están en las sombras. ¿Alguien más tiene acceso a los datos? ¿El servidor está protegido de las sobretensiones eléctricas, las tormentas o las inundaciones? ¿Los datos tienen una copia de seguridad en una ubicación externa confiable? Necesita confiar totalmente en el proveedor de nube.
Los principales proveedores de servicios en la nube, tales como Google, Microsoft, y Amazon ofrecen una larga lista de servicios de bases de datos. Actualmente, Oracle, MongoDB, y DataStax también hacen que sus bases de datos estén disponibles en la nube.
Inteligencia Artificial (AI)
Algunos dicen que la inteligencia artificial es solo un término para la última generación de investigación que está saliendo de los laboratorios y yendo a producción. Si es así, hay una serie de nuevos productos y soluciones adornados con palabras de moda, tales como “aprendizaje automático”, “redes neuronales” o “aprendizaje profundo”. Pueden no parecer una base de datos, pero las llena de datos y les hace preguntas. ¿Por qué no? La buena noticia de las soluciones de inteligencia artificial es que no tiene que saber lo que está buscando. Puede simplemente agitar su mano y pedir algo nebuloso como la “más interesante” o “más cercana”. No hay necesidad de la clave correcta, el número de referencia infernal que los del servicio al cliente siempre le piden que escriba.
La mala noticia es que no sabrá si obtuvo la respuesta correcta, debido a que no especificó con precisión la pregunta. ¿Esa publicación en el blog es realmente la más interesante? El más grande secreto del éxito de Google es que no hay una respuesta correcta absoluta. Si está en el estadio, nadie se puede quejar.
La lista de las herramientas de aprendizaje automático es demasiado larga. Siempre puede preguntarle a su motor de búsqueda favorito por la AI “más interesante”, o consultar nuestros artículos sobre el tema.
Blockchain
La palabra blockchain puede estar enredada con unas complicadas economía y política de Bitcoin, pero debajo de toda esa charla sobre el dinero, hay un almacén de datos distribuidos sumamente estable y práctico. Todos tienen la oportunidad de actualizar los datos y todos llegan a compartir la respuesta. La gran emoción es el hecho de que todos compartan las mismas respuestas. Es perfecto para los negocios que son frenemies.
Algunos desarrolladores llevan esto aún más lejos y hablan sobre los “contratos inteligentes”, que es otra manera de decir que los bits en la base de datos son lo suficientemente confiables como para que la gente base las cuestiones legales, tales como la propiedad, sobre ellos. Eso no lo puede hacer con una base de datos regular, que puede ser modificada por cualquiera con privilegios administrativos.
Sin embargo, hay puntos débiles. Cada usuario debe mantener una clave de cifrado, porque todas las transacciones deben ser firmadas de manera digital. Si la pierde o se la olvida, los datos en esas filas serán congelados para siempre; y si le roban la clave, no se sabe. El blockchain no es perfecto, pero es mucho más confiable que el modelo estándar.
R3, Ripple e IBM son solo tres de los muchos competidores explorando ese espacio. Muchos de los principales bancos tienen sus propios proyectos internos. Además, están las empresas como Bitcoin o Altcoin, las cuales también son una gran parte de este ecosistema.
Aplicaciones de los sistemas de bases de datos
SAP S/4HANA Cloud
SAP S/4HANA Cloud es una aplicación desarrollada por la firma alemana SAP. Esta herramienta es un sistema Enterprise Resource Planning (ERP) con capacidad de despliegue en la nube cuyas funciones de gestión de datos permite, entre otros:
• Consolidar datos de múltiples áreas en una sola fuente
• Administrar el ciclo de vida de datos históricos y actuales
• Compartir en tiempo real los datos entre departamentos
• Definir y gestionar indicadores de analítica de datos
• Modelar datos complejos para su fácil visualización
Oracle Autonomous Database
Oracle Autonomous Database es una novedosa herramienta de Oracle Cloud que permite crear una base de datos completamente autónoma. Es decir, con capacidades de autogestión, autoprotección y autorreparación.
Algunas de sus ventajas son:
• Permite desplegar la base de datos al 100% en minutos
• Dispone de escalabilidad de recursos de manera inmediata
• Posee un sistema de aprendizaje automática para suplir la gestión manual
• Brinda autonomía en el procesamiento y almacenamiento de datos
Azure Cosmos DB
Azure Cosmos DB es una solución proporcionada por Microsoft Azure para bases de datos multimodelo. Su principal función es el desarrollo de aplicaciones globales, rápidas y potentes, cuya disponibilidad es del 99,999%.
Entre sus características, están:
• API multimodelo compatible NoSQL, SQL, JavaScript y MongoDB.
• Opciones de coherencia bien definidas: segura, obsolescencia limitada, prefijo coherente, sesión y posible.
• Distribución global con alta disponibilidad y baja latencia.
• Escalabilidad elástica e inmediata para evitar pérdidas de rendimiento.
IBM Hybrid Data Management Platform
IBM Hybrid Data Management Platform es una suite consolidada por IBM Cloud para gestionar datos estructurados y no estructurados en entornos locales y en clouds públicos y privados.
Dicho producto es tan completo y robusto, que incluye dentro de sí siete aplicaciones Db2 de IBM Cloud anteriormente individualizadas, las cuales son:
• Database
• Warehouse
• Big SQL
• Event Store
• Hosted
• Db2 on Cloud
• Warehouse on Cloud
Amazon Relational Database Service
Amazon Relational Database Service (RDS) es un servicio de Amazon Web Services para configurar, gestionar y escalar una base de datos relacional en un entorno cloud. Este servicio ofrece escalabilidad, automatización y aprovisionamiento en el uso de recursos.
RDS está conformado por los seis motores de base de datos más potentes a los que se puede acceder mediante Amazon Web Services, los cuales son:
• Amazon Aurora
• PostgreSQL
• MySQL
• MariaDB
• Oracle Database
• SQL Server
Google Cloud Datalab
Cloud Datalab es una herramienta de Google Cloud para la exploración avanzada de datos. Está basada en Jupyter y permite examinar, analizar, transformar y visualizar datos de manera sencilla.
Cloud Datalab es de código abierto y compatible con Python, SQL y JavaScript, así como también con la biblioteca scikit–learn y con modelos de aprendizaje automático profundo.
Esta solución optimiza el procesamiento de datos mediante su integración con:
• Cloud BigQuery
• Stackdriver Monitoring
• Cloud Machine Learning Engine
• Cloud Storage
Tableau Server
Tableau Server es uno de los productos estrella de Tableau Software para el análisis, gobernanza y control de datos complejos. Fue catalogada por Gartner como una de las soluciones más importantes del mercado sobre la gestión de datos.
Algunas de sus ventajas son:
• Permite compartir los datos (y su análisis) entre toda la organización
• Simplifica los métodos de visualización haciéndolos muy intuitivos
• Facilita la capacidad de consulta mediante preguntas con lenguaje natural
• Ofrece seguridad en todas las fuentes de datos tanto on premise como en cloud
SAS Data Management
SAS Data Management es una potente suite creada por la firma SAS que engloba múltiples funciones en la gestión de base de datos. Su estructura es modular para poder controlar cada componente de manera individual, aunque toda su configuración está pensada para satisfacer necesidades tanto tecnológicas como de negocios.
Entre los beneficios que aporta están:
• Aceleración de los procesos de integración en más del 60%
• Depuración de la base de datos según la calidad de los mismos
• Preparación de los datos para su análisis y posterior creación de reportes
• Optimización de los procesos ETL (extract – transform – load)
• Gestión de procesos mediante una GUI basada en roles
La mayoría de estas herramientas ofrecen capacidad de gestión mediante el cloud computing. De hecho, una investigación de Statista revela que el 69% de las organizaciones realiza las actividades de almacenamiento y respaldo de datos en la nube, y el 56% accede al cloud para funciones de análisis de datos.
No hay comentarios.:
Publicar un comentario