Databricks, ¿el regreso de las bases de datos SQL?

En el mundo actual es de vital importancia estar empapado de datos, desde conocer los datos que atribuye una persona "a", hasta la tendencia que marca una empresa "z". Es por eso que, los requisitos para tener una base de datos competente, han cambiado en los últimos años. Algunos de estos son: nutrir independientemente de si está estructurado o no, permitir un escalamiento horizontal, una fácil gestión y, finalmente, que permita analizar los datos. 

Esto explica por qué las bases de datos NoSQL se volvieron tendencia hace unos años dado que permitían nutrir la base de datos con cualquier fuente independientemente si está estructurado o no, también porque es muy fácil de realizar un escalamiento horizontal en vez de vertical (aunque sí es posible realizar escalamiento horizontal en Oracle desde hace unos años con Real Applications Clusters). Por ello, se volvió una tendencia en múltiples empresas, el almacenamiento de los datos en plataformas not on premise (en la nube) como lo pueden ser los RDS de AWS o mongo atlas. Y mezclar todas estas plataformas con un entorno de inteligencia de negocios, como lo puede ser power bi. Sin embargo, estos entornos ofrecen muchas modalidades como un entorno fiable y escalable, pero no es sencillo de gestionar y tampoco ofrece una incorporación nativa para realizar inteligencia de negocios. 


Databricks surge de la necesidad de unificar un modelo de delta lake, que es el modelo utilizado para poder adquirir datos de cualquier fuente, asegurar que la data sea fiable y poder desarrollar un Datawarehouse para realizar análisis de inteligencia de negocios e incluso análisis de datos y machine learning nativo; concluyendo en el desarrollo de un Datalakehouse que une lo mejor de ambos mundos. Pero, una cosa es tener una base de datos especializada en análisis e inteligencia de negocios y otra cosa muy distinta una base de datos de almacenamiento, ¿no? 


No, eso es lo que hace especial a Databricks. En primer lugar su desarrollo fue basado en Apache Spark que a su vez fue basado en Hadoop, esta tecnología permite el uso de clusters con una arquitectura de empleador - esclavo, lo que le provee la capacidad de ser horizontalmente escalable ya que solo hay que agregar clusters en caso de necesidad. Otra particularidad es que, a partir de la tecnología de Spark, permite mantener un canal abierto de streaming de manera que puede ingresar cualquier tipo de data ahí, y solo se indica cómo almacenarlo. Con este continuo almacenamiento se puede seguir una arquitectura de medallones para poder limpiar y extraer la data, de manera que se almacena en tablas bronze, silver y gold dependiendo de en qué parte del tratado de los datos esté, dado que esta arquitectura permite tener en un solo sitio la data cruda, la data un poco más enfocada en transaccionales y finalmente un Datawarehouse. Sin embargo, todo esto suena bastante inseguro dado que todos tendrían acceso a todo, ¿no? No, Databricks posee una interfaz para el manejo de la seguridad, facilitando la vida del DBA y permitiendo definir los accesos a qué tablas, esquemas, e incluso a qué clusters; esto genera que no cualquier persona pueda siquiera trabajar en qué cluster lo que es de vital ayuda para el DBA. 


Otra ventaja que permite Databricks es su entorno, como tal, debido a que en primer lugar se trabaja sobre notebooks, similares a los notebooks de jupyter. A su vez, se puede realizar un manejo de versiones de estos notebooks dado que Databricks cuenta con integración de repositorios como Github o Gitlab. Otra particularidad de este entorno es que permite una versatilidad en su uso, dado que provee de herramientas para que los amantes del SQL, python, Scala estén en un mismo lugar y logren trabajar dentro de un mismo notebook sin ninguna dificultad a partir de magic commands similares a % en jupyter. Además, tiene una integración nativa para que se desarrollen modelos predictivos hasta LLM, además que existe una integración con el ciclo de vida de una IA.



Sin embargo, para los amantes del PLSQL, se tiene un grave problema, y es que esto no existe en Databricks, lo que sí existe es algo llamado Jobs, que son flujos de trabajo que permiten transformar el PLSQL en estos jobs. Estos jobs son ejecutados en clusters especiales que luego de haber realizado el trabajo en cuestión se eliminan, esto se maneja de esta forma debido a que Databricks es una plataforma pay for what you use de manera que en caso de dejar de utilizar el job pues mejor se elimina y así no aumenta la factura. Cabe destacar que también se posee una tecnología nueva llamada Photon que utiliza paralelismo basado en un motor vectorizado que permite tener rendimientos de consultas de hasta 8 veces mejor que los clústeres normales. Sin embargo, esta tecnología presenta un costo más elevado.

Y hablando de costos, realmente Databricks se maneja por unas unidades de costo llamadas DBU que son unidades de procesamiento, por lo que realmente se cobra por lo que se utiliza y no se realizan cobros extras. Por ejemplo, si se deja de utilizar un clúster, dado que no se está utilizando para nada, pues no cobrarían nada, así de simple. 

Por lo tanto, Databricks es un mundo nuevo de posibilidades y dependiendo de cómo sea utilizado, pueda ser el regreso triunfal de las bases de datos SQL. Será de mantener en el ojo los próximos años.
 



Fuentes:

No hay comentarios:

Con la tecnología de Blogger.